PiolotTH_ReportFrom/派诺报表SQL文件/销售执行统计表存储过程.sql
2025-10-22 16:45:32 +08:00

370 lines
34 KiB
Transact-SQL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--EXEC [GetOrderData] 'Ö麣ĹÉĹľ','2025-01-01','2025-06-30'
ALTER PROCEDURE [dbo].[GetOrderData]
(
@FSaleOrgIdName nvarchar(1000),
@FSDate nvarchar(1000),
@FEDate nvarchar(1000),
@FPaperContract NVARCHAR(500)='',
@QuYu NVARCHAR(500)='' ,
@KH NVARCHAR(500)
)
as
DECLARE @FSaleOrgId nvarchar(1000);
DECLARE @FSDateDate DATE;
DECLARE @FEDateDate DATE;
SELECT @FSaleOrgId = FORGID
FROM T_ORG_ORGANIZATIONS_L WHERE
FNAME = @FSaleOrgIdName
SET @FSDateDate = CONVERT(DATE, @FSDate);
SET @FEDateDate = CONVERT(DATE, @FEDate);
-- @FEDate + 1Ěě
SET @FEDateDate = DATEADD(DAY, 1, @FEDateDate);
SELECT D.FENTRYID,SUM(b.fqty) AS 'FQTY',SUM(E.FAllAmount_LC) AS 'FAMOUNT'
INTO #SAL
FROM T_SAL_DELIVERYNOTICE A
INNER JOIN T_SAL_DELIVERYNOTICEENTRY B ON A.FID = B.FID
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID
INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
WHERE A.FDOCUMENTSTATUS= 'C'
AND (@FSaleOrgIdName = '' OR A.FSALEORGID = @FSaleOrgId)
AND (ISNULL(@FSDate,'') = '' OR A.FAPPROVEDATE > @FSDateDate)
AND (ISNULL(@FEDate,'') = '' OR A.FAPPROVEDATE < @FEDateDate)
AND (a.F_PAPERCONTRACT=@FPaperContract OR @FPaperContract='')
GROUP BY D.FENTRYID
SELECT D.FENTRYID,SUM(b.fqty) AS 'FQTY',SUM(E.FAllAmount_LC) AS 'FAMOUNT'
INTO #RETURN
FROM T_SAL_RETURNNOTICE A
INNER JOIN T_SAL_RETURNNOTICEENTRY B ON A.FID = B.FID
INNER JOIN T_SAL_RETURNNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID
INNER JOIN T_SAL_RETURNNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID
INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
WHERE A.FDOCUMENTSTATUS= 'C'
AND (@FSaleOrgIdName = '' OR A.FSALEORGID = @FSaleOrgId)
AND (ISNULL(@FSDate,'') = '' OR A.FAPPROVEDATE > @FSDateDate)
AND (ISNULL(@FEDate,'') = '' OR A.FAPPROVEDATE < @FEDateDate)
AND (a.F_PAPERCONTRACT=@FPaperContract OR @FPaperContract='')
GROUP BY D.FENTRYID
SELECT F.FENTRYID,SUM(b.FREALQTY) AS 'FQTY',SUM(G.FALLAMOUNT_LC) AS 'FAMOUNT'
INTO #OUTSTOCK
FROM T_SAL_OUTSTOCK A
INNER JOIN T_SAL_OUTSTOCKENTRY B ON A.FID = B.FID
INNER JOIN T_SAL_OUTSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID
INNER JOIN T_SAL_OUTSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID
INNER JOIN T_SAL_DELIVERYNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID
INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID
WHERE A.FDOCUMENTSTATUS= 'C'
AND (@FSaleOrgIdName = '' OR A.FSALEORGID = @FSaleOrgId)
AND (ISNULL(@FSDate,'') = '' OR A.FAPPROVEDATE > @FSDateDate)
AND (ISNULL(@FEDate,'') = '' OR A.FAPPROVEDATE < @FEDateDate)
AND (a.F_CONTRACTNUMBER=@FPaperContract OR @FPaperContract='')
GROUP BY F.FENTRYID
SELECT F.FENTRYID,SUM(b.FREALQTY) AS 'FQTY',SUM(G.FALLAMOUNT_LC) AS 'FAMOUNT'
INTO #RETURNSTOCK
FROM T_SAL_RETURNSTOCK A
INNER JOIN T_SAL_RETURNSTOCKENTRY B ON A.FID = B.FID
INNER JOIN T_SAL_RETURNSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID
INNER JOIN T_SAL_RETURNSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID
INNER JOIN T_SAL_RETURNNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
INNER JOIN T_SAL_RETURNNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID
INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID
WHERE A.FDOCUMENTSTATUS= 'C'
AND (@FSaleOrgIdName = '' OR A.FSALEORGID = @FSaleOrgId)
AND (ISNULL(@FSDate,'') = '' OR A.FAPPROVEDATE > @FSDateDate)
AND (ISNULL(@FEDate,'') = '' OR A.FAPPROVEDATE < @FEDateDate)
AND (a.F_CONTRACTNUMBER=@FPaperContract OR @FPaperContract='')
GROUP BY F.FENTRYID
--SELECT b.FORDERENTRYID as 'FENTRYID',sum(bF.FQty) AS 'FQTY',sum(bF.FRECAMOUNT_E) AS 'FAMOUNT'
--INTO #RECE
--FROM t_AR_receivable A
----INNER JOIN t_AR_receivableENTRY B ON A.FID = B.FID
--LEFT JOIN dbo.T_AR_RECEIVEBILLENTRY bF on A.FID = BF.FID --ĎúĘŰśŠľĽąíĚĺ
--WHERE A.FDOCUMENTSTATUS= 'C'
--AND (@FSaleOrgIdName = '' Or A.FSALEORGID = @FSaleOrgId)
--AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate)
--AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE < @FEDateDate)
--AND (a.F_PAPERCONTRACT=@FPaperContract OR @FPaperContract='')
--GROUP BY b.FORDERENTRYID
SELECT a.FID, STUFF(
(
SELECT ','+ CONVERT(NVARCHAR(100), FNAME,120) -- ŇŞĆ´˝ÓľÄÁĐ
FROM (
SELECT DISTINCT x.FNAME +'--'+CONVERT(NVARCHAR(50), CONVERT(INT, w.F_DAY))+'Ěě--'+CONVERT(NVARCHAR(50),CONVERT(DECIMAL(18,2), w.FRECADVANCERATE))+'%'+'---' +ISNULL(CONVERT(NVARCHAR(20),w.FMUSTDATE,23),'') AS FNAME
,w.FID,w.F_PMSDate
,W.FRECADVANCEAMOUNT,w.F_DAY ,w.F_MBBA_DECIMAL_UKY
,w.FENTRYID, W.F_RecConditionId ,w.FRECADVANCERATE ,x.FNAME AS fname2 ,w.FMUSTDATE [ľ˝ĆÚČŐ]
FROM T_SAL_ORDERPLAN w WITH(NOLOCK)
LEFT JOIN T_BD_RecCondition_L X ON X.FID = W.F_RecConditionId
) t WHERE t.FID=a.FID
FOR XML PATH('')
),1 ,1, '') ¸śżîĚőźţ
INTO #TEMP2
FROM T_SAL_ORDER A WITH(NOLOCK)
WHERE
A.FDOCUMENTSTATUS= 'C'
AND (@FSaleOrgIdName = '' Or A.FSALEORGID = @FSaleOrgId)
AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate)
AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE < @FEDateDate)
AND (a.F_CONTRACTNUMBER=@FPaperContract OR @FPaperContract='')
--šýÂËĹÉĹľ×Ü
SELECT A.FID AS FID
INTO #TEMP3
FROM T_SAL_ORDER A
INNER JOIN T_BD_CUSTOMER CC ON CC.FCUSTID= A.FCUSTID
INNER JOIN T_BD_CUSTOMER_L C ON C.FCUSTID= A.FCUSTID AND C.FLOCALEID= 2052
LEFT JOIN V_BD_SALESMAN_L L ON L.fid = A.FSALERID
left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO AND M.FDOCUMENTSTATUS = 'C'
left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID
LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO ON ACO.ĂűłĆ=O.FNAME
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.ĂűłĆ=L.FNAME
WHERE CC.F_correlation = '1' OR a.F_CONTRACTNUMBER IN ('CYJSQD2024123118401','CYJSQD2025011518501')
--WHERE A.FSALEORGID = 100302 AND
--(
-- CC.F_correlation = '1'
-- -- OR
-- --C.FCUSTID IN ('1517849','1156999','1149200')
-- OR
--(C.FCUSTID = 1150173 AND (ACO.ÇřÓň = 'žö˛ßÍĹśÓ' OR ACL.ÇřÓň = 'žö˛ßÍĹśÓ'))
--OR L.FNAME = 'ĐËĹľ×Ü'
--OR A.FID IN (110185,207800)
--AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate)
--AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE< @FEDateDate) )
SELECT
A.FID ,
A.FBILLNO ,
B.FENTRYID ,
a.F_INVOICEAMOUNT 'żŞĆą˝đśî',
j.FBILLALLAMOUNT- a.F_INVOICEAMOUNT 'δżŞĆą˝đśî',
ISNULL(N.FSHARERATE,100) AS FSHARERATE,
F.FALLAMOUNT_LC ,
MONTH(A.FApproveDate) AS 'Ô¡Ý' --ĎúĘŰśŠľĽ-ľĽžÝ͡-ČŐĆÚ-śÔÓŚľÄÔ¡Ý
,CASE WHEN ISNULL(O.FNAME,'')='' THEN L.FNAME
ELSE O.FNAME END as 'Ňľź¨ˇÖĚŻşóĎúĘŰÔą' -- Ňľź¨ˇÖĚŻşóĎúĘŰÔą
,CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.ÇřÓň ELSE ACO.ÇřÓň END AS 'ÇřÓň'
,CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.Ă÷ϸÇřÓň ELSE ACO.Ă÷ϸÇřÓň END AS 'Ă÷ϸÇřÓň'
,c.FNAME as 'šşťőľĽÎť' --ĎúĘŰśŠľĽ-ľĽžÝ͡-żÍť§
,CONVERT(VARCHAR(10), A.FDate,23) AS 'ÇŠśŠČŐĆÚ'
,CONVERT(VARCHAR(10), A.FApproveDate,23) AS 'ÉóşËČŐĆÚ' --ĎúĘŰśŠľĽ-ľĽžÝ͡-ÉóşËČŐĆÚ
,A.F_contractnumber AS 'Ö˝ÖĘşĎÍŹşĹ'--ĎúĘŰśŠľĽ-ľĽžÝ͡-Ö˝ÖĘşĎÍŹşĹ
,E.FNUMBER AS '˛úơ´úÂë'
,d.FNAME as '˛úơĂűłĆ' --ĎúĘŰśŠľĽ-ľĽžÝĚĺ-ÎďÁĎĂűłĆ
,d.FSPECIFICATION as 'šć¸ńĐÍşĹ'--ĎúĘŰśŠľĽ-ľĽžÝĚĺ-šć¸ńĐÍşĹ
,CONCAT(A.F_contractnumber,d.FSPECIFICATION ) as 'śŠľĽšć¸ńĐÍşĹ' --HĄžśŠľĽşĹĄż(śÔÓŚÖ˝ÖĘşĎÍŹşĹ)+JĄžĐͺţܚć¸ńŁÜąęןĄż
,CASE WHEN E.F_114 IS NOT NULL AND E.F_114 !=' ' AND E.F_114 !='' THEN E.F_114 WHEN E.FNUMBER IN ('E','ES','NWE','HKE') THEN '´˘ÄÜĄ˘Î˘ľçˇçĄ˘šâ´˘łäĘŁÓಿˇÖ'
WHEN E.FNUMBER IN ('B','BS') THEN 'BMS˛úơĎßĘŁÓಿˇÖ'
WHEN E.FNUMBER IN ('C','CS','CW','CY') THEN 'łäľç׎ʣÓಿˇÖ'
WHEN E.FNUMBER not IN ('E','ES','NWE','HKE','BS') THEN '' ELSE E.F_114 END AS 'ĐͺšÖŔŕ' --ÎďÁĎľľ°¸-×Ôś¨Ňĺ×ÖśÎ-ĐͺŴóŔŕ
,CASE WHEN E.F_115 IS NOT NULL AND E.F_115 !=' ' AND E.F_115 !='' THEN E.F_115 WHEN E.FNUMBER IN ('E','ES','NWE','HKE') THEN '´˘ÄÜĄ˘Î˘ľçˇçĄ˘šâ´˘łäĘŁÓಿˇÖ'
WHEN E.FNUMBER IN ('C','CS','CW','CY') THEN 'łäľç׎ʣÓಿˇÖ'
WHEN E.FNUMBER IN ('B','BS') THEN 'BMS˛úơĎßĘŁÓಿˇÖ'
WHEN E.FNUMBER NOT IN ('E','ES','NWE','HKE','BS') THEN ''
ELSE E.F_115 END AS '˛úơˇÖŔŕ'--ÎďÁĎľľ°¸-×Ôś¨Ňĺ×ÖśÎ-˛úơ´óŔŕ
, CASE WHEN E.F_116 IS NOT NULL AND E.F_116 !=' ' AND E.F_116 !='' THEN E.F_116 WHEN E.FNUMBER IN ('E','ES','NWE','HKE') THEN '´˘ÄÜĄ˘Î˘ľçˇçĄ˘šâ´˘łä'
WHEN E.FNUMBER IN ('C','CS','CW','CY') THEN 'łäľç׎ҾÎń'
WHEN E.FNUMBER IN ('B','BS') THEN 'BMS˛úơĎß'
WHEN E.FNUMBER NOT IN ('E','ES','NWE','HKE','BS') THEN ''
ELSE E.F_116 END AS '˛úơĎß'--ÎďÁĎľľ°¸-×Ôś¨Ňĺ×ÖśÎ-˛úơĎß
--,'' as 'ŇľÎńĎß' --´ýś¨ŁŹČˇČĎČĄĘýÂßź­
,CASE WHEN A.F_VRYF_Combo_lsn LIKE '%XTZHT%' THEN 'ϾͳÖ÷şĎÍŹ'
WHEN A.F_VRYF_Combo_lsn LIKE '%SXTXS%' THEN 'ËćϾͳĎúĘŰ'
WHEN A.F_Returntype = 'HH' OR A.F_Returntype = 'TH' THEN 'ËćϾͳĎúĘŰ'
WHEN F_VRYF_Combo_lsn LIKE 'DDXS' THEN 'ľĽśŔĎúĘŰ'END as 'ĎúĘŰŔŕĐÍ'
,CASE WHEN A.F_VRYF_Combo_lsn LIKe '%DDXS%' THEN 'ŇÇąíŔŕşĎÍŹ(CEP)' ELSE 'ËćϾͳĎúĘŰ' END AS 'ĎúĘŰŔŕĐÍ1'
--,cast( B.FQTY as real) AS 'ĘýÁżĚ¨' --ĎúĘŰśŠľĽ-ľĽžÝĚĺ-ĎúĘŰĘýÁżĎÔĘžÔÚŇľź¨ˇÖĚŻľĽ
,cast( ROUND( F.FTAXPRICE,2) as real) AS 'ľĽźŰԪ̨' --ĎúĘŰśŠľĽ-ľĽžÝĚĺ-şŹË°ľĽźŰ "Ňľź¨ˇÖĚŻÖťˇÖĚŻ˝đśî˛ťˇÖĚŻĘýÁż
,cast( ROUND( f.FALLAMOUNT_LC,2) as real) as 'ĐĐşŹË°ľĽźŰ'
,CASE WHEN n.FSHARERATE IS NULL THEN ROUND(F.FALLAMOUNT_LC,2)
ELSE ROUND( f.FALLAMOUNT_LC * (n.FSHARERATE/100) ,2) END as 'şĎÍŹ×ÜźŰ' --Ňľź¨ˇÖĚŻÖťˇÖĚŻ˝đśî˛ťˇÖĚŻĘýÁżŁŹˇÖÂźĄžźŰ˰şĎźĆąžÎťąŇĄż*Ňľź¨ˇÖĚŻľĽÖоġÖĚŻąČŔý
, G.FNAME as 'ĎúĘŰśŠľĽ-ľĽžÝ͡-ĎîÄżĂűłĆ' --ĎúĘŰśŠľĽ-ľĽžÝ͡-ĎîÄżĂűłĆ
,y.FCAPTION AS 'ĎîÄżËůĘôÁěÓň'--ĎúĘŰśŠľĽ-ľĽžÝ͡-ĎîÄżËůĘôÁěÓň
,CASE
WHEN A.F_contractnumber LIKE 'W2%' OR A.F_contractnumber LIKE 'CW%' THEN 'ˇţÎńŇľÎń'
WHEN (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.ÇřÓň ELSE ACO.ÇřÓň END) LIKE '%×ŰşĎÄÜÔ´ˇţÎń%'
OR (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.ÇřÓň ELSE ACO.ÇřÓň END) LIKE '%ĘýžÝÖĐĐÄ%'
THEN 'ĐĐŇľ˝âžöˇ˝°¸ŇľÎń'
ELSE '˛úơҾÎń'
END AS 'ŇľÎńŔŕĐÍ-°´˛úơťŽˇÖ'
,CASE WHEN I.F_CustomerType= 'JXS' THEN 'ž­ĎúÉĚ'
WHEN I.F_CustomerType = 'MYS' THEN 'ĂłŇ×ÉĚ'
ELSE ''
END
as 'ÖąĎúťšĘÇž­ĎúÉĚ'
,CASE WHEN b.F_specialoffer = '1' AND (F_YKQC_CHECKBOX_QTR='0' OR F_YKQC_CHECKBOX_QTR IS NULL) THEN 'ĘÇ' ELSE 'ˇń' end AS 'ĘǡńĚŘźŰ'--ĎúĘŰśŠľĽ-ľĽžÝˇÖÂź-ĘǡńĚŘźŰ
,CASE WHEN (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.ÇřÓň ELSE ACO.ÇřÓň END) LIKE '%˛úơĎß%' OR
(CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.ÇřÓň ELSE ACO.ÇřÓň END) LIKE '%žö˛ßÍĹśÓ%'OR
(CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.ÇřÓň ELSE ACO.ÇřÓň END) LIKE '%Čýľç˛úơĎß%'
THEN '˛úơĎß'
WHEN (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.ÇřÓň ELSE ACO.ÇřÓň END) like 'ĘýžÝÖĐĐÄ' OR
(CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.ÇřÓň ELSE ACO.ÇřÓň END) LIKE '%ҽԺ%'
OR (CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.ÇřÓň ELSE ACO.ÇřÓň END) LIKE '%ťúłĄ%'
THEN 'ĐĐŇľĎß'
ELSE 'ÇřÓňĎß' END AS 'Ňľź¨ŔŕĐÍ'
,CASE WHEN N.FSHARERATE is null THEN '100' ELSE CONCAT( CAST ( N.FSHARERATE AS REAL),'%') END as 'Ňľź¨ˇÖĚŻąČŔý' --ĎúĘŰśŠľĽ-Ňľź¨ˇÖĚŻľĽ-ˇÖĚŻąČŔý
, b.F_ProjectProposal AS 'ĎîÄżˇ˝°¸ŔŕĐÍ'
,a.F_Amount AS 'ĘŐżî˝đśî' --´ýś¨ ĘŐżî˝đśî
, CAST( J.FEXCHANGERATE AS REAL) AS 'ťăÂĘ' --ĎúĘŰśŠľĽ-ľĽžÝ͡-ťăÂĘ
,H.F_Province AS 'ĎîÄżËůĘôĘĄˇÝ' --×ÖśÎĂű¸ÄłÉĄ°ĎîÄżËůĘôĘĄˇÝĄąŔ´×ÔÓÚCRMϾͳÉĚťúŁŹERPÉĚťúĐčŇŞÔöźÓÎÄąž×֜ΜÔÓŚ
,h.F_City AS 'ĎîÄżËůĘôłÇĘĐ' --×ÖśÎĂű¸ÄłÉĄ°ĎîÄżËůĘôłÇĘĐĄąŔ´×ÔÓÚCRMϾͳÉĚťúŁŹERPÉĚťúĐčŇŞÔöźÓÎÄąž×֜ΜÔÓŚ
,u.FCAPTION AS 'ąíźĆťňϾͳ'--ąíźĆťňϾͳ ´Ë×ÖśÎĐčŇŞÔÚĎúĘŰśŠľĽÖĐĚĺĎÖŁŹŔ´×ÔÓÚERPÎďÁĎľľ°¸ŁŹśŠľĽÖ´ĐĐÍłźĆą¨ąí˛ťĐčŇŞĚĺĎÖ´Ë×֜ΣŹÓÉÓÚÓŚĘŐżîĂ÷ϸąíĐčŇŞ´ÓśŠľĽÖ´ĐĐĂ÷ϸąíÖĐČĄ¸Ă×֜ΣŹËůŇÔ´Ë×֜ΝšĐčŇŞąŁÁôĄŁČĄĎúĘŰśŠľĽ-ľĽžÝ͡-śŠľĽŔŕąđ
,CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FID ORDER BY A.FID, B.FENTRYID ,FSHARERATE desc) = 1
THEN CAST(J.FBILLALLAMOUNT_LC AS numeric(18,2)) ELSE NULL END AS 'śŠľĽ×Üśî'
,K.FDATAVALUE AS 'ĆóŇľŔŕĐÍšŤËžĐÔÖĘ'--Ŕ´×ÔÓڿ͝§×ĘÁĎ-šŤËžĐÔÖĘ
,'' AS 'ǡżî×Üśî' --ĄžŇŃ˝ťťő˝đśîٍşŹÍËťőŁŠ-ĘŐżî˝đśîĄż*Ňľź¨ˇÖĚŻąČŔý
, TU.FNAME AS 'ÖĆľĽČË' --ĎúĘŰśŠľĽ-ľĽžÝ͡-ĆäËűҳNJ-´´˝¨ČËŁŹĎŁÍűČĄľÄĘÇĎúĘŰśŠľĽĚὝČËŁŹ
,S.FCAPTION AS 'źŻ˛ÉŇľÎńˇÖŔŕ' --2024-11-20šľÍ¨ĐÂÔö×֜ΣŹĎúĘŰśŠľĽąí͡ÔöźÓŁşĄžĘǡńźŻ˛ÉĎîÄżĄżĎÂŔ­ŃĄĎˇń/ťŞČó/Áúşţ/ÂĚľŘ/ąŁŔűľŘ˛ú/ťŞČóˇÇźŻ˛ÉŁŹłŁšćÇéżöĎÂÄŹČĎÎŞĄžˇńĄżŁŹÓÉCRMϾͳ´ŤľÝľ˝ERPϾͳÖĐŁŹÄŹČĎ־Ϊˇń
,L.FNAME AS 'ĎúĘŰśŠľĽŇľÎńÔą'
--,CAST(B.FQTY AS REAL) AS 'ĘýÁżĚ¨'
, CASE
WHEN N.FSHARERATE IS NOT NULL THEN
CASE
WHEN ROW_NUMBER() OVER (PARTITION BY A.FID, B.FENTRYID ORDER BY N.FENTRYID) = 1 THEN CAST(B.FQTY AS REAL)
ELSE NULL
END
ELSE CAST(B.FQTY AS REAL)
END AS 'ĘýÁżĚ¨'
,AE.FDATAVALUE AS 'şĎÍŹŔŕĐÍ'
,assl.FDATAVALUE 'żÍť§ĐĹÓĂź°ˇÖŔŕ'
INTO #TEMP4
FROM T_SAL_ORDER A --ĎúĘŰśŠľĽąí͡
INNER JOIN T_BAS_ASSISTANTDATAENTRY HT ON A.F_ORDERCATEGORY = HT.FMASTERID -- šŘÁ޸¨Öú×ĘÁϲéŃŻşĎÍŹľÄąŕÂë
INNER JOIN T_SEC_USER TU ON A.FCreatorId = TU.FUSERID -- ÓĂť§ľĽšŘÁŞąíĚĺ
INNER JOIN T_SAL_orderentry b on a.FID = B.FID --ĎúĘŰśŠľĽąíĚĺ
INNER JOIN T_BD_CUSTOMER_L C ON C.FCUSTID= A.FCUSTID AND C.FLOCALEID= 2052 --żÍť§¸˝Ęôąí
INNER JOIN T_BD_MATERIAL_L d on d.FMATERIALID =b.FMATERIALID and d.FLOCALEID=2052 --ÎďÁϸ˝Ęôąí
INNER JOIN T_BD_MATERIAL E ON E.FMATERIALID =D.FMATERIALID
INNER JOIN T_SAL_ORDERENTRY_F F ON F.FENTRYID = B.FENTRYID
INNER JOIN T_SAL_ORDERENTRY_R AR ON AR.FENTRYID = B.FENTRYID
INNER JOIN T_BD_CUSTOMER I ON I .FCUSTID = A.FCUSTID
INNER JOIN T_SAL_ORDERFIN J ON J.FID= A.FID
LEFT JOIN T_BAS_PREBDONE_L G ON G.FID = A.F_projectname AND G.FLocaleID =2052
LEFT JOIN T_BAS_PREBDTHREE H ON H.FID = A.F_BON
LEFT JOIN T_META_FORMENUMITEM Z ON Z.FVALUE = H.F_PROJECTFIELD AND Z.FID = '3ad5efac-d4a5-467c-b290-685a22791e68'
LEFT JOIN T_META_FORMENUMITEM_L Y ON Y.FENUMID = Z.FENUMID AND Y.FLOCALEID = 2052
LEFT JOIN T_META_FORMENUMITEM X ON x.FVALUE = I.F_CustomerType AND X.FID = '5fbc5d34-7347-4b6d-8a9d-4816a47936cc'
LEFT JOIN T_META_FORMENUMITEM_L W ON W.FENUMID = X.FENUMID AND W.FLOCALEID = 2052
LEFT JOIN T_META_FORMENUMITEM V ON V.FVALUE = A.F_OrderType AND v.FID = 'bc2c1d77-0f4b-41d2-b61b-e29554c570d4'
LEFT JOIN T_META_FORMENUMITEM_L U ON U.FENUMID = V.FENUMID AND U.FLOCALEID = 2052
LEFT JOIN T_META_FORMENUMITEM T ON T.FVALUE = A.F_PURCHASINGPRO AND T.FID = 'a8624cbb-00e0-4beb-8045-53cbe94eb9ee'
LEFT JOIN T_META_FORMENUMITEM_L S ON S.FENUMID = T.FENUMID AND S.FLOCALEID = 2052
LEFT JOIN V_ASSISTANTDATA K ON K.FENTRYID = I.FCompanyNature
LEFT JOIN V_BD_SALESMAN_L L ON L.fid = A.FSALERID
left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO AND M.FDOCUMENTSTATUS = 'C'
left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID
LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID --AND N.FID IN (SELECT FID FROM T_PerformanceSharing WHERE FDOCUMENTSTATUS = 'C' )
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO ON ACO.ĂűłĆ=O.FNAME AND ISNULL(ACO.Ă÷ϸÇřÓň,'') != ''
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.ĂűłĆ=L.FNAME AND ISNULL(ACL.Ă÷ϸÇřÓň,'') != ''
INNER JOIN T_BAS_ASSISTANTDATAENTRY_L AE ON AE.FENTRYID = A.F_Ordercategory
LEFT JOIN dbo.T_BAS_ASSISTANTDATAENTRY_L assl ON assl.FENTRYID= I.F_CreditClassification
WHERE
1=1 AND
A.FID NOT IN(
SELECT FID FROM #TEMP3
)
AND(@FSaleOrgIdName = '' Or A.FSALEORGID = @FSaleOrgId)
AND (ISNULL(@FSDate,'') = '' or A.FAPPROVEDATE > @FSDateDate)
AND (ISNULL(@FEDate,'') = '' or A.FAPPROVEDATE < @FEDateDate)
AND A.FDocumentStatus = 'C' AND(@KH = '' Or I.FNUMBER = @KH)
AND A.FManualClose <> '1'
AND B.FManualRowClose <> '1'
AND A.F_contractnumber NOT LIKE 'Z%'
AND (a.F_CONTRACTNUMBER=@FPaperContract OR @FPaperContract='')
SELECT
A.*
,AD.¸śżîĚőźţ as '¸śżîĚőźţ'--ĎúĘŰśŠľĽ-ĘŐżîźĆťŽ-ĘŐżîĚőźţ+ĚěĘý+Ą°Ě쥹+ÓŚĘŐąČŔý(%),śŕĐĐÖŽźäĐčŇŞÓĂĄ°,Ąą¸ôżŞŁŹČçšűĚěĘýÎŞżŐžÍÄŹČĎÎŞ0Ěě
,CAST( ISNULL(P.FQTY,'0') AS REAL) as 'ˇ˘ťőĘýÁż' --ĎúĘŰśŠľĽšŘÁŞľÄˇ˘ťő֪ͨľĽĘýÁżŁŹĎÔĘžÔÚŇľź¨ˇÖĚŻľĽÖĐľÚŇť¸öŇľÎńÔąĂűĎÂ
,cast( round( ISNULL(P.FAMOUNT,0) * ISNULL(A.FSHARERATE,100)/100,2) as real) as 'ˇ˘ťő˝đśî'--ČĄĎúĘŰśŠľĽšŘÁŞľÄˇ˘ťő֪ͨľĽ˝đśî*ˇÖĚŻąČŔý
,CAST( ISNULL(q.FQTY,'0') AS REAL) as 'ÍËťőĘýÁż' --ĎúĘŰśŠľĽšŘÁŞľÄÍËťő֪ͨľĽĘýÁż
,cast( round( ISNULL(q.FAMOUNT,0) * ISNULL(A.FSHARERATE,100)/100,2) as real) as 'ÍËťő˝đśî'--ĎúĘŰśŠľĽšŘÁŞľÄÍËťő֪ͨľĽ˝đśî*ˇÖĚŻąČŔý
,CAST( ISNULL(P.FQTY,0)-isnull(q.FQTY,0) AS REAL) AS 'ŇŃ˝ťťőĘý-şŹÍËťő' --šŤĘ˝=ˇ˘ťő֪ͨľĽĘýÁż-ÍËťő֪ͨľĽĘýÁżŁŹĎÔĘžÔÚŇľź¨ˇÖĚŻľĽÖĐľÚŇť¸öŇľÎńÔąĂűĎÂŁŹARĄžˇ˘ťőĘýÁżĄż-ATĄžÍËťőĘýÁżĄż
,round( (ISNULL(P.FAMOUNT,0)-isnull(q.FAMOUNT,0)) * isnull(A.FSHARERATE,100)/100 ,2) AS 'ŇŃ˝ťťő˝đśî-şŹÍËťő' --2024-11-20šľÍ¨ÔöźÓĎúĘŰś¨šŘÁŞľÄŁ¨ASˇ˘ťő˝đśî-AUÍËťő˝đśîŁŠ*Ňľź¨ˇÖĚŻąČŔý
,B.FQTY - AR.FDeliQty AS 'δ˝ťťőĘý' --ĘýÁż-ŇŃ˝ťťőĘý
, round( (A.FALLAMOUNT_LC - ISNULL(P.FAMOUNT,0) +ISNULL(Q.FAMOUNT,0))* isnull(A.FSHARERATE,100)/100,2) as 'δˇ˘ťő˝đśî'--(ĎúĘŰśŠľĽźŰ˰şĎźĆąžÎťąŇ-ˇ˘ťő֪ͨľĽ˝đśî+ÍËťő֪ͨľĽ˝đśî)*ˇÖĚŻąČŔý
--,CAST( ISNULL(AB.FQTY,0) AS REAL) AS 'ŇŃżŞĆąĘýÁż' --żŞĆąĘýÁżŁŹČĄĎúĘŰłöżâľĽšŘÁŞľÄŔś×ÖÓŚĘŐľĽ-ÍËťőľĽšŘÁŞľÄşě×ÖÓŚĘŐľĽ
--,CAST(round( ISNULL(AB.FAMOUNT,0) * isnull(A.FSHARERATE,100)/100,2) AS REAL) AS 'żŞĆą˝đśî'--ĎúĘŰśŠľĽšŘÁŞľÄŁ¨Ŕś×ÖÓŚĘŐľĽ˝đśî-şě×ÖÓŚĘŐľĽ˝đśîŁŠ*ˇÖĚŻąČŔý
--,CAST( ISNULL(P.FQTY,0)-isnull(q.FQTY,0) - ISNULL(AB.FQTY,0) AS REAL) AS 'δżŞĆąĘýÁż' --AVŇŃ˝ťťőĘý-BBŇŃżŞĆąĘýÁż
--,round( (ISNULL(P.FAMOUNT,0)-isnull(q.FAMOUNT,0)- ISNULL(AB.FAMOUNT,0) ) * isnull(A.FSHARERATE,100)/100 ,2) AS 'δżŞĆą˝đśî' --(AWŇŃ˝ťťő˝đśî-BCżŞĆą˝đśî)*ˇÖĚŻąČŔý
,ISNULL(G.F_CONTRACTNUMBER,'') AS 'Ô´śŠľĽşĹ' ,CONVERT(DECIMAL(18,2),0) AS ˇÖĚŻ˝đśî ,0 rownum
INTO #TEMP1
FROM #TEMP4 A
LEFT JOIN T_SAL_orderentry b on a.FENTRYID = B.FENTRYID --ĎúĘŰśŠľĽąíĚĺ
LEFT JOIN dbo.T_SAL_ORDERENTRY_F bF on a.FENTRYID = bF.FENTRYID --ĎúĘŰśŠľĽąíĚĺ
LEFT JOIN T_SAL_ORDERENTRY_R AR ON AR.FENTRYID = A.FENTRYID
LEFT JOIN #SAL P ON P.FENTRYID = A.FENTRYID --ˇ˘ťő֪ͨľĽ
LEFT JOIN #RETURN q ON q.FENTRYID = A.FENTRYID --ÍËťő֪ͨľĽ
LEFT JOIN #OUTSTOCK R ON R.FENTRYID = A.FENTRYID --ĎúĘŰłöżâľĽ
LEFT JOIN #RETURNSTOCK AA ON AA.FENTRYID = A.FENTRYID --ĎúĘŰÍËťőľĽ
--LEFT JOIN #RECE AB ON AB.FENTRYID = A.FENTRYID --ÓŚĘŐľĽ
LEFT JOIN #TEMP2 AD ON AD.FID = A.FID
LEFT JOIN (
SELECT T1.FENTRYID,T3.F_CONTRACTNUMBER FROM T_SAL_ORDERENTRY_R T1
--LEFT JOIN T_SAL_ORDER T2 on T1.FID = T2.FID
LEFT JOIN T_SAL_ORDER T3 on T3.FBILLNO = T1.FSRCBILLNO
WHERE T1.FSRCTYPE = 'SAL_SaleOrder'
)G ON A.FENTRYID = G.FENTRYID AND A.[şĎÍŹ×ÜźŰ]<0
ORDER BY fid,FENTRYID ,FSHARERATE
UPDATE #TEMP1 SET ˇÖĚŻ˝đśî=b.şĎÍŹ×ÜźŰ2
FROM (SELECT SUM(CONVERT(DECIMAL(18,2),şĎÍŹ×ÜźŰ)) AS şĎÍŹ×ÜźŰ2 ,FBILLNO FROM #TEMP1 GROUP BY FBILLNO) b
WHERE #TEMP1.FBILLNO=b.FBILLNO AND śŠľĽ×Üśî <>0
UPDATE #TEMP1 SET rownum=b.rownum2
FROM (SELECT ROW_NUMBER() OVER (PARTITION BY FID ORDER BY FID,FENTRYID) AS rownum2, FID, FENTRYID FROM #TEMP1 ) b
WHERE #TEMP1.FID=b.fid AND #TEMP1.FENTRYID=b.FENTRYID
UPDATE #TEMP1 SET ĘŐżî˝đśî=0,żŞĆą˝đśî=0,δżŞĆą˝đśî=0
WHERE rownum>1;
UPDATE #TEMP1 SET şĎÍŹ×ÜźŰ=şĎÍŹ×ÜźŰ+(śŠľĽ×Üśî- ˇÖĚŻ˝đśî )
WHERE śŠľĽ×Üśî<>0
UPDATE #TEMP1 SET ĘŐżî˝đśî=ĘŐżî˝đśî*śŠľĽąžÎťąŇśŇČËĂńąŇťăÂĘ,żŞĆą˝đśî=żŞĆą˝đśî*śŠľĽąžÎťąŇśŇČËĂńąŇťăÂĘ,śŠľĽ×Üśî=śŠľĽ×Üśî*śŠľĽąžÎťąŇśŇČËĂńąŇťăÂĘ,şĎÍŹ×ÜźŰ=şĎÍŹ×ÜźŰ*śŠľĽąžÎťąŇśŇČËĂńąŇťăÂĘ
,ˇ˘ťő˝đśî=ˇ˘ťő˝đśî*śŠľĽąžÎťąŇśŇČËĂńąŇťăÂĘ,δˇ˘ťő˝đśî=δˇ˘ťő˝đśî*śŠľĽąžÎťąŇśŇČËĂńąŇťăÂĘ,ÍËťő˝đśî=ÍËťő˝đśî*śŠľĽąžÎťąŇśŇČËĂńąŇťăÂĘ,[ŇŃ˝ťťő˝đśî-şŹÍËťő]=[ŇŃ˝ťťő˝đśî-şŹÍËťő]*śŠľĽąžÎťąŇśŇČËĂńąŇťăÂĘ
,δżŞĆą˝đśî=δżŞĆą˝đśî*śŠľĽąžÎťąŇśŇČËĂńąŇťăÂĘ,ľĽźŰԪ̨=ľĽźŰԪ̨*śŠľĽąžÎťąŇśŇČËĂńąŇťăÂĘ,ĐĐşŹË°ľĽźŰ=ĐĐşŹË°ľĽźŰ*śŠľĽąžÎťąŇśŇČËĂńąŇťăÂĘ
FROM ZZV_XiaoShouHuiLv b
WHERE #TEMP1.FID=b.ĎúĘŰśŠľĽID
IF(@QuYu='')
SELECT * FROM #TEMP1 ORDER BY fid,FENTRYID ,FSHARERATE DESC
ELSE
SELECT * FROM #TEMP1 WHERE ÇřÓň LIKE '%'+@QuYu+'%' ORDER BY fid,FENTRYID ,FSHARERATE DESC
drop table #TEMP2
--drop table #RECE
drop table #RETURNSTOCK
drop table #OUTSTOCK
drop table #RETURN
drop table #SAL
drop table #TEMP3
drop table #TEMP4
drop table #TEMP1