PiolotTH_ReportFrom/派诺报表SQL文件/销售执行统计表存储过程.sql
2025-08-26 19:33:34 +08:00

363 lines
32 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.

/****** Object: StoredProcedure [dbo].[GetOrderData] Script Date: 2025/8/20 10:19:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--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)=''
)
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_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 A.FSALEORGID = 100302 AND
(ACO.ÇøÓò = '̼Ë÷ÖÇ¿Ø'
OR ACL.ÇøÓò = '̼Ë÷ÖÇ¿Ø'
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.FNUMBER LIKE 'L%' AND HT.FNUMBER = 'SX' AND ISNULL(b.F_ProjectProposal,'') != ''
THEN CONCAT(b.F_ProjectProposal,'µÄÊ£Óಿ·Ö') ELSE E.F_114 END AS 'ÐͺŷÖÀà' --ÎïÁϵµ°¸-×Ô¶¨Òå×Ö¶Î-ÐͺŴóÀà
,CASE WHEN E.FNUMBER LIKE 'L%' AND HT.FNUMBER = 'SX' AND ISNULL(b.F_ProjectProposal,'') != ''
THEN CONCAT(b.F_ProjectProposal,'µÄÊ£Óಿ·Ö') ELSE E.F_115 END AS '²úÆ··ÖÀà'--ÎïÁϵµ°¸-×Ô¶¨Òå×Ö¶Î-²úÆ·´óÀà
,E.F_116 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 'ÒDZíÀàºÏͬ(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' 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 'ÖÆµ¥ÈË' --ÏúÊÛ¶©µ¥-µ¥¾ÝÍ·-ÆäËûҳǩ-´´½¨ÈË£¬Ï£ÍûÈ¡µÄÊÇÏúÊÛ¶©µ¥Ìá½»ÈË£¬
,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= a.F_CREDITCLASSIFICATIONTEXT
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 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