257 lines
11 KiB
SQL
257 lines
11 KiB
SQL
Alter PROCEDURE GetSalesOrderDetails
|
||
(
|
||
@SalesOrg NVARCHAR(50) = '',
|
||
@ContractNumber NVARCHAR(50) = '', -- 合同编号
|
||
--@StartDate NVARCHAR(10) = '', -- 开始日期
|
||
--@EndDate NVARCHAR(10) = '', -- 结束日期
|
||
@FStartDate2 nvarchar(1000),
|
||
@FEndDate2 nvarchar(1000)
|
||
) -- 销售组织
|
||
AS
|
||
|
||
Select
|
||
A.FDate as 'Date',
|
||
AAAA.FNAME as 'OrderName', --制单人
|
||
A.FAPPROVEDATE as 'OrderDate',--下单日期
|
||
ISNULL(B.FNAME,'') as 'ClientName', --客户名称
|
||
A.F_contractnumber as 'ContractNumber', --纸质合同号
|
||
ISNULL(C.FNAME,'') as 'ProjectName', --项目名称
|
||
ISNULL(D.FNAME,'') as 'Salesman', --销售员
|
||
(Select SUM(a1.FALLAMOUNT_LC) as 'FALLAMOUNT_LC' From T_SAL_ORDERENTRY_F a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID
|
||
Where a2.FMANUALROWCLOSE!='1' AND a1.FID = A.FID
|
||
) as 'ContractPrice', --合同金额
|
||
(Select STRING_AGG(aa2.FNAME,',') as 'FNAME'
|
||
From T_AR_RECEIVEBILL aa1 JOIN T_SEC_USER aa2 on aa1.FCREATORID = aa2.FUSERID
|
||
Where FBILLNO in (Select FBILLNO3 From T_AutoWrireRecordEntry a1 JOIN T_AutoWrireRecordEntry2 a2
|
||
on a1.FID = a2.FID Where FBILLNO2 = A.FBILLNO))
|
||
as 'CollectionName', --收款负责人
|
||
(Select STRING_AGG((CONVERT(nvarchar,aa1.FDATE,23)),',') as 'FDate'
|
||
From T_AR_RECEIVEBILL aa1 JOIN T_SEC_USER aa2 on aa1.FCREATORID = aa2.FUSERID
|
||
Where FBILLNO in (Select FBILLNO3 From T_AutoWrireRecordEntry a1 JOIN T_AutoWrireRecordEntry2 a2
|
||
on a1.FID = a2.FID Where FBILLNO2 = A.FBILLNO))
|
||
as 'CollectionDate', --收款日期
|
||
ISNULL(A.F_AMOUNT,0) as 'CollectionAmount', --收款金额
|
||
ISNULL(E6.FNAME,'') as 'RefundName', --退款负责人
|
||
ISNULL(E6.FDate,'') as 'RefundDate', --退款日期
|
||
ISNULL(E6.FREALREFUNDAMOUNT,0) as 'RefundAmount', --退款金额
|
||
ISNULL(E1.FName,'') as 'ShipmentsName', --发货负责人
|
||
ISNULL(E1.FDate,'') as 'ShipmentsDate', --发货日期
|
||
(Select SUM(a1.FDELIQTY) From T_SAL_ORDERENTRY_R a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID
|
||
Where a1.FID = A.FID AND a2.FMANUALROWCLOSE != '1') as 'ShipmentsNum', --发货数量
|
||
ISNULL(E1.FALLAMOUNT_LC,0) as 'ShipmentsAmount', --发货金额
|
||
ISNULL(E2.FNAME,'') as 'OutShipmentsName', --出库负责人
|
||
ISNULL(E2.FDate,'') as 'OutShipmentsDate', --出库日期
|
||
(Select SUM(FStockOutQty) From T_SAL_ORDERENTRY_R a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID
|
||
Where a1.FID = A.FID AND a2.FMANUALROWCLOSE != '1') as 'OutShipmentsNum', --出库数量
|
||
ISNULL(E2.FALLAMOUNT_LC,0) as 'OutShipmentsAmount', --出库金额
|
||
ISNULL(E2.FSIGNQTY,0) as 'SignNum', --签收数量
|
||
CASE WHEN ISNULL(E2.FSIGNQTY,0) != 0 THEN '已签收'
|
||
ELSE '未签收'
|
||
END as 'IsSign', --是否签收
|
||
ISNULL(E3.FNAME,'') as 'ReturnName', --退货负责人
|
||
ISNULL(E3.FDate,'') as 'ReturnDate', --退货日期
|
||
ISNULL(E3.FREALQTY,0) as 'ReturnNum', --退货数量
|
||
ISNULL(E3.FALLAMOUNT_LC,0) as 'ReturnAmount', --退货金额
|
||
ISNULL(E4.FNAME,'') as 'BillingName', --开票负责人
|
||
ISNULL(E4.F_INVOICENUMBER,'') as 'BillingNumber', --发票号码
|
||
ISNULL(E4.FDate,'') as 'BillingDate', --开票日期
|
||
ISNULL(E4.FOPENQTY,0) as 'BillingNum', --开票数量
|
||
ISNULL(E4.FALLAMOUNT,0) as 'BillingAmount' --开票金额
|
||
--0 as 'NotCollectedAmount' --销售订单未收款金额
|
||
INTO #TEMPTABLE1
|
||
From
|
||
T_SAL_ORDER A --销售订单
|
||
JOIN
|
||
T_SAL_ORDERFIN AA --销售订单-财务
|
||
on A.FID = AA.FID
|
||
LEFT JOIN
|
||
T_ORG_ORGANIZATIONS_L AAA
|
||
on AAA.FORGID = A.FSaleOrgId
|
||
LEFT JOIN
|
||
T_SEC_USER AAAA on AAAA.FUSERID = A.FCREATORID
|
||
LEFT JOIN
|
||
(SELECT A2.FDATAVALUE,A1.* FROM
|
||
(Select q2.FNAME,q1.* From
|
||
T_BD_CUSTOMER q1
|
||
JOIN
|
||
T_BD_CUSTOMER_L q2
|
||
on q1.FCUSTID = q2.FCUSTID) A1
|
||
LEFT JOIN
|
||
(Select A.FMASTERID,B.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY A
|
||
JOIN T_BAS_ASSISTANTDATAENTRY_L B on A.FENTRYID = B.FENTRYID
|
||
Where A.FID = '673af6092e2877'
|
||
AND A.FDocumentStatus = 'C'
|
||
AND A.FForbidStatus = 'A') A2
|
||
on A1.F_CREDITCLASSIFICATION = A2.FMASTERID) B --客户表
|
||
on A.FCustId = B.FCUSTID
|
||
LEFT JOIN
|
||
(Select q2.FNAME,q1.* From
|
||
T_BAS_PREBDONE q1
|
||
JOIN
|
||
T_BAS_PREBDONE_L q2
|
||
on q1.FID = q2.FID
|
||
Where q2.FLocaleID = 2052
|
||
AND q1.FDocumentStatus = 'C'
|
||
AND q1.FForbidStatus = 'A') C --工程项目(预置1)项目表
|
||
on C.FID = A.F_projectname
|
||
LEFT JOIN
|
||
(Select q2.FNAME,q1.* From
|
||
V_BD_SALESMAN q1
|
||
LEFT JOIN
|
||
V_BD_SALESMAN_L q2
|
||
on q1.fid = q2.fid
|
||
Where q2.FLOCALEID = 2052
|
||
AND q1.FDocumentStatus = 'C'
|
||
AND q1.FForbidStatus = 'A'
|
||
AND q1.FForbiddenStatus = '0') D --销售员表
|
||
on A.FSalerId = D.fid
|
||
LEFT JOIN V_SXJD_Table1 E1 --发货通知单表
|
||
on A.FID = E1.FSBILLID
|
||
LEFT JOIN V_SXJD_Table2 E2 --销售出库单
|
||
on A.FID = E2.FID
|
||
LEFT JOIN V_SXJD_Table3 E3 --退货订单表
|
||
on A.FID = E3.FID
|
||
LEFT JOIN V_SXJD_Table4 E4 --应收单表
|
||
on A.FBILLNO = E4.FORDERNUMBER
|
||
LEFT JOIN V_SXJD_Table6 E6
|
||
on A.F_CONTRACTNUMBER = E6.F_VRYF_TEXT_83G
|
||
LEFT JOIN
|
||
(Select 名称,区域,明细区域 From ERPTOHR.HYHRV3.dbo.v_erp_empinfo Where ISNULL(明细区域,'')!=''
|
||
AND ISNULL(区域,'')!='' GROUP BY 名称,区域,明细区域) AW1 on D.FNAME = AW1.名称 --AND ISNULL(AW1.明细区域,'') != '' --视图
|
||
LEFT JOIN
|
||
(Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8 --合同类型
|
||
on W8.FENTRYID = A.F_ORDERCATEGORY
|
||
Where A.FDocumentStatus = 'C' --AND A.FBusinessType = 'NORMAL'
|
||
AND A.FSALEORGID = 100302
|
||
AND W8.FNUMBER != 'Z'
|
||
AND (ISNULL(@SalesOrg,'') = '' or AAA.FNAME = @SalesOrg)
|
||
AND (ISNULL(@FStartDate2,'') = '' or A.FAPPROVEDATE >= @FStartDate2)
|
||
AND (ISNULL(@FEndDate2,'') = '' or A.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, @FEndDate2)))
|
||
AND ISNULL(AW1.区域,'') != '碳索智控' AND A.FMANUALCLOSE != '1'
|
||
AND ISNULL(B.FNAME,'') NOT IN ('派诺科技(香港)有限公司','武汉派诺科技发展有限公司')
|
||
AND ISNULL(D.FNAME,'') != '兴诺总';
|
||
|
||
Select
|
||
A.FDate as 'Date',
|
||
AAAA.FNAME as 'OrderName', --制单人
|
||
A.FAPPROVEDATE as 'OrderDate',--下单日期
|
||
ISNULL(B.FNAME,'') as 'ClientName', --客户名称
|
||
A.F_contractnumber as 'ContractNumber', --纸质合同号
|
||
ISNULL(C.FNAME,'') as 'ProjectName', --项目名称
|
||
ISNULL(D.FNAME,'') as 'Salesman', --销售员
|
||
(Select SUM(a1.FALLAMOUNT_LC) as 'FALLAMOUNT_LC' From T_SAL_ORDERENTRY_F a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID
|
||
Where a2.FMANUALROWCLOSE!='1' AND a1.FID = A.FID) as 'ContractPrice', --合同金额
|
||
(Select STRING_AGG(aa2.FNAME,',') as 'FNAME'
|
||
From T_AR_RECEIVEBILL aa1 JOIN T_SEC_USER aa2 on aa1.FCREATORID = aa2.FUSERID
|
||
Where FBILLNO in (Select FBILLNO3 From T_AutoWrireRecordEntry a1 JOIN T_AutoWrireRecordEntry2 a2
|
||
on a1.FID = a2.FID Where FBILLNO2 = A.FBILLNO))
|
||
as 'CollectionName', --收款负责人
|
||
(Select STRING_AGG((CONVERT(nvarchar,aa1.FDATE,23)),',') as 'FDate'
|
||
From T_AR_RECEIVEBILL aa1 JOIN T_SEC_USER aa2 on aa1.FCREATORID = aa2.FUSERID
|
||
Where FBILLNO in (Select FBILLNO3 From T_AutoWrireRecordEntry a1 JOIN T_AutoWrireRecordEntry2 a2
|
||
on a1.FID = a2.FID Where FBILLNO2 = A.FBILLNO))
|
||
as 'CollectionDate', --收款日期
|
||
ISNULL(A.F_AMOUNT,0) as 'CollectionAmount', --收款金额
|
||
ISNULL(E6.FNAME,'') as 'RefundName', --退款负责人
|
||
ISNULL(E6.FDate,'') as 'RefundDate', --退款日期
|
||
ISNULL(E6.FREALREFUNDAMOUNT,0) as 'RefundAmount', --退款金额
|
||
ISNULL(E1.FName,'') as 'ShipmentsName', --发货负责人
|
||
ISNULL(E1.FDate,'') as 'ShipmentsDate', --发货日期
|
||
(Select SUM(a1.FDELIQTY) From T_SAL_ORDERENTRY_R a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID
|
||
Where a1.FID = A.FID AND a2.FMANUALROWCLOSE != '1') as 'ShipmentsNum', --发货数量
|
||
ISNULL(E1.FALLAMOUNT_LC,0) as 'ShipmentsAmount', --发货金额
|
||
ISNULL(E2.FNAME,'') as 'OutShipmentsName', --出库负责人
|
||
ISNULL(E2.FDate,'') as 'OutShipmentsDate', --出库日期
|
||
(Select SUM(FStockOutQty) From T_SAL_ORDERENTRY_R a1 JOIN T_SAL_ORDERENTRY a2 on a1.FENTRYID = a2.FENTRYID
|
||
Where a1.FID = A.FID AND a2.FMANUALROWCLOSE != '1') as 'OutShipmentsNum', --出库数量
|
||
ISNULL(E2.FALLAMOUNT_LC,0) as 'OutShipmentsAmount', --出库金额
|
||
ISNULL(E2.FSIGNQTY,0) as 'SignNum', --签收数量
|
||
CASE WHEN ISNULL(E2.FSIGNQTY,0) != 0 THEN '已签收'
|
||
ELSE '未签收'
|
||
END as 'IsSign', --是否签收
|
||
ISNULL(E3.FNAME,'') as 'ReturnName', --退货负责人
|
||
ISNULL(E3.FDate,'') as 'ReturnDate', --退货日期
|
||
ISNULL(E3.FREALQTY,0) as 'ReturnNum', --退货数量
|
||
ISNULL(E3.FALLAMOUNT_LC,0) as 'ReturnAmount', --退货金额
|
||
ISNULL(E4.FNAME,'') as 'BillingName', --开票负责人
|
||
ISNULL(E4.F_INVOICENUMBER,'') as 'BillingNumber', --发票号码
|
||
ISNULL(E4.FDate,'') as 'BillingDate', --开票日期
|
||
ISNULL(E4.FOPENQTY,0) as 'BillingNum', --开票数量
|
||
ISNULL(E4.FALLAMOUNT,0) as 'BillingAmount' --开票金额
|
||
--0 as 'NotCollectedAmount' --销售订单未收款金额
|
||
INTO #TEMPTABLE2
|
||
From
|
||
T_SAL_ORDER A --销售订单
|
||
JOIN
|
||
T_SAL_ORDERFIN AA --销售订单-财务
|
||
on A.FID = AA.FID
|
||
LEFT JOIN
|
||
T_ORG_ORGANIZATIONS_L AAA
|
||
on AAA.FORGID = A.FSaleOrgId
|
||
LEFT JOIN
|
||
T_SEC_USER AAAA on AAAA.FUSERID = A.FCREATORID
|
||
LEFT JOIN
|
||
(SELECT A2.FDATAVALUE,A1.* FROM
|
||
(Select q2.FNAME,q1.* From
|
||
T_BD_CUSTOMER q1
|
||
JOIN
|
||
T_BD_CUSTOMER_L q2
|
||
on q1.FCUSTID = q2.FCUSTID) A1
|
||
LEFT JOIN
|
||
(Select A.FMASTERID,B.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY A
|
||
JOIN T_BAS_ASSISTANTDATAENTRY_L B on A.FENTRYID = B.FENTRYID
|
||
Where A.FID = '673af6092e2877'
|
||
AND A.FDocumentStatus = 'C'
|
||
AND A.FForbidStatus = 'A') A2
|
||
on A1.F_CREDITCLASSIFICATION = A2.FMASTERID) B --客户表
|
||
on A.FCustId = B.FCUSTID
|
||
LEFT JOIN
|
||
(Select q2.FNAME,q1.* From
|
||
T_BAS_PREBDONE q1
|
||
JOIN
|
||
T_BAS_PREBDONE_L q2
|
||
on q1.FID = q2.FID
|
||
Where q2.FLocaleID = 2052
|
||
AND q1.FDocumentStatus = 'C'
|
||
AND q1.FForbidStatus = 'A') C --工程项目(预置1)项目表
|
||
on C.FID = A.F_projectname
|
||
LEFT JOIN
|
||
(Select q2.FNAME,q1.* From
|
||
V_BD_SALESMAN q1
|
||
LEFT JOIN
|
||
V_BD_SALESMAN_L q2
|
||
on q1.fid = q2.fid
|
||
Where q2.FLOCALEID = 2052
|
||
AND q1.FDocumentStatus = 'C'
|
||
AND q1.FForbidStatus = 'A'
|
||
AND q1.FForbiddenStatus = '0') D --销售员表
|
||
on A.FSalerId = D.fid
|
||
LEFT JOIN V_SXJD_Table1 E1 --发货通知单表
|
||
on A.FID = E1.FSBILLID
|
||
LEFT JOIN V_SXJD_Table2 E2 --销售出库单
|
||
on A.FID = E2.FID
|
||
LEFT JOIN V_SXJD_Table3 E3 --退货订单表
|
||
on A.FID = E3.FID
|
||
LEFT JOIN V_SXJD_Table4 E4 --应收单表
|
||
on A.FBILLNO = E4.FORDERNUMBER
|
||
LEFT JOIN V_SXJD_Table6 E6
|
||
on A.F_CONTRACTNUMBER = E6.F_VRYF_TEXT_83G
|
||
LEFT JOIN
|
||
(Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8 --合同类型
|
||
on W8.FENTRYID = A.F_ORDERCATEGORY
|
||
Where A.FDocumentStatus = 'C' --AND A.FBusinessType = 'NORMAL'
|
||
AND A.FSALEORGID != 100302
|
||
AND W8.FNUMBER != 'Z'
|
||
AND (ISNULL(@SalesOrg,'') = '' or AAA.FNAME = @SalesOrg) AND A.FMANUALCLOSE != '1'
|
||
AND (ISNULL(@FStartDate2,'') = '' or A.FAPPROVEDATE >= @FStartDate2)
|
||
AND (ISNULL(@FEndDate2,'') = '' or A.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, @FEndDate2)));
|
||
|
||
Select * INTO #TEMPTABLE3 From #TEMPTABLE1 Union ALL (Select * From #TEMPTABLE2)
|
||
|
||
Select *,(ContractPrice-CollectionAmount-RefundAmount) as'NotCollectedAmount' From #TEMPTABLE3
|
||
Where --(ISNULL(@StartDate,'') = '' or DATE >= @StartDate) AND (ISNULL(@EndDate,'') = '' or DATE <= @EndDate) AND
|
||
(ISNULL(@ContractNumber,'') = '' or ContractNumber like '%'+@ContractNumber+'%');
|
||
|
||
Drop Table #TEMPTABLE1
|
||
Drop Table #TEMPTABLE2
|
||
Drop Table #TEMPTABLE3 |