From f030c3e473b44f9b1a89e5e05aa745882af37e21 Mon Sep 17 00:00:00 2001 From: yuyubo <1870149533@qq.com> Date: Wed, 25 Jun 2025 19:00:53 +0800 Subject: [PATCH] 123 --- .../Pilot.Report.Exploitation.csproj | 1 + .../SpecialDetailsReport - 复制.cs | 760 +++++++++++ .../SpecialDetails/SpecialDetailsReport.cs | 1185 +++++++++-------- 特价明细表SQL22.sql | 18 +- 4 files changed, 1427 insertions(+), 537 deletions(-) create mode 100644 Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport - 复制.cs diff --git a/Pilot.Report.Exploitation/Pilot.Report.Exploitation.csproj b/Pilot.Report.Exploitation/Pilot.Report.Exploitation.csproj index ebd5e88..312fd23 100644 --- a/Pilot.Report.Exploitation/Pilot.Report.Exploitation.csproj +++ b/Pilot.Report.Exploitation/Pilot.Report.Exploitation.csproj @@ -206,6 +206,7 @@ + diff --git a/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport - 复制.cs b/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport - 复制.cs new file mode 100644 index 0000000..ae7bb04 --- /dev/null +++ b/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport - 复制.cs @@ -0,0 +1,760 @@ +using Kingdee.BOS.App.Data; +using Kingdee.BOS; +using Kingdee.BOS.Contracts.Report; +using Kingdee.BOS.Core.Report; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Pilot.Report.Exploitation.Common; + +namespace Pilot.Report.Exploitation.SpecialDetails +{ + /// + /// 特价明细报表 + /// + [Description("【列表插件】特价明细报表【报表】备份文件,不用这个文件"), HotUpdate] + public class SpecialDetailsReportOld : SysReportBaseService + { + /// + /// 初始化 + /// + public override void Initialize() + { + base.Initialize(); + this.ReportProperty.ReportName = new LocaleValue("特价明细表", base.Context.UserLocale.LCID); + this.ReportProperty.IsUIDesignerColumns = false; + // 简单账表类型:普通、树形、分页 + this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL; + this.IsCreateTempTableByPlugin = true; + // + this.IsCreateTempTableByPlugin = true; + // + this.ReportProperty.IsGroupSummary = true; + // + this.ReportProperty.SimpleAllCols = false; + // 单据主键:两行FID相同,则为同一单的两条分录,单据编号可以不重复显示 + this.ReportProperty.PrimaryKeyFieldName = "FID"; + // + this.ReportProperty.IsDefaultOnlyDspSumAndDetailData = true; + + // 设置精度控制 + var list = new List + { + new DecimalControlField("FDECIMALS", "OrigInvoiceAmount"), + new DecimalControlField("FDECIMALS", "ExchangeRate"), + new DecimalControlField("FDECIMALS", "InvoiceAmountTHB"), + new DecimalControlField("FDECIMALS", "MonthEndExRate"), + new DecimalControlField("FDECIMALS", "RevaluationAountInTHB"), + new DecimalControlField("FDECIMALS", "UnrealizedGainLoss"), + }; + this.ReportProperty.DecimalControlFieldList = list; + } + + /// + /// 报表列表头 + /// + /// + /// + public override ReportHeader GetReportHeaders(IRptParams filter) + { + base.GetReportHeaders(filter); + + ReportHeader header = new ReportHeader(); + + header.AddChild("Date", new LocaleValue("日期"), SqlStorageType.Sqlvarchar); + header.AddChild("Month", new LocaleValue("月份"), SqlStorageType.Sqlvarchar); + header.AddChild("Client", new LocaleValue("购货单位"), SqlStorageType.Sqlvarchar); + header.AddChild("CreditType", new LocaleValue("客户信用类型"), SqlStorageType.Sqlvarchar); + header.AddChild("ContractNumber", new LocaleValue("纸质合同号"), SqlStorageType.Sqlvarchar); + header.AddChild("SizeModel", new LocaleValue("规格型号"), SqlStorageType.Sqlvarchar); + header.AddChild("Quantity", new LocaleValue("数量"), SqlStorageType.SqlInt); + header.AddChild("TaxPrice", new LocaleValue("实际含税单价"), SqlStorageType.SqlDecimal); + header.AddChild("AllAmount", new LocaleValue("价税合计"), SqlStorageType.SqlDecimal); + header.AddChild("ProjectName", new LocaleValue("项目名称"), SqlStorageType.Sqlvarchar); + header.AddChild("SalerName", new LocaleValue("业务员"), SqlStorageType.Sqlvarchar); + header.AddChild("SaleDeptName", new LocaleValue("部门"), SqlStorageType.Sqlvarchar); + header.AddChild("Supervisor", new LocaleValue("审批人"), SqlStorageType.Sqlvarchar); + header.AddChild("SpecialCauseType", new LocaleValue("特价原因分类"), SqlStorageType.Sqlvarchar); + header.AddChild("CRMSpecialCause", new LocaleValue("CRM特价原因"), SqlStorageType.Sqlvarchar); + header.AddChild("CurrentSettledUpset1", new LocaleValue("当期结算价(仪表)"), SqlStorageType.SqlDecimal); + header.AddChild("CurrentSettledUpset2", new LocaleValue("当期结算价(系统)"), SqlStorageType.SqlDecimal); + header.AddChild("Difference", new LocaleValue("差额(单价-结算价)"), SqlStorageType.SqlDecimal); + header.AddChild("TotalSpread", new LocaleValue("总价差(终)"), SqlStorageType.SqlDecimal); + header.AddChild("PaymentMethods", new LocaleValue("付款方式"), SqlStorageType.Sqlvarchar); + header.AddChild("ProjectPhase", new LocaleValue("项目阶段"), SqlStorageType.Sqlvarchar); + header.AddChild("OrderAllAmount", new LocaleValue("订单总额"), SqlStorageType.SqlDecimal); + header.AddChild("NotShipmentsAmount", new LocaleValue("未发货金额"), SqlStorageType.SqlDecimal); + header.AddChild("ExpireUnpaidAmount", new LocaleValue("到期未付金额"), SqlStorageType.SqlDecimal); + header.AddChild("ProductsCode", new LocaleValue("产品长代码"), SqlStorageType.Sqlvarchar); + header.AddChild("Currency", new LocaleValue("币别"), SqlStorageType.Sqlvarchar); + + foreach (var item in header.GetChilds()) + { + item.Width = 160; + } + return header; + } + + /// + /// 显示报表数据 + /// + /// + /// + public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) + { + DynamicObject customFilter = filter.FilterParameter.CustomFilter; + + // 客户 FClient + var fClient = (customFilter["FClient"] as DynamicObject)?["Id"]?.ToString(); + // 产品 + var fChanPin = (customFilter["FChanPin"] as DynamicObject)?["Id"]?.ToString(); + // 项目 FProject + var fProject = (customFilter["FProject"] as DynamicObject)?["Id"]?.ToString(); + // 销售员 + var fSalesman = (customFilter["FSalesman"] as DynamicObject)?["Id"]?.ToString(); + // 日期 + string fDate = customFilter["FDate"]?.ToString(); + // 日期 + string fEndDate = customFilter["FEndDate"]?.ToString(); + // 纸质合同号 + string fPaperContract = customFilter["FPaperContract"]?.ToString(); + // 组织 + var organizationList = (customFilter["FZuZhi"] as DynamicObjectCollection)?.Select(n => (n["FZuZhi"] as DynamicObject)["ID"].ToString()).ToList(); + + var organization = organizationList == null ? "" : (string.Join(",", organizationList)); + + base.BuilderReportSqlAndTempTable(filter, tableName); + + string sql = string.Format(@"/*dialect*/ + 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.FNAME IN ('派诺科技(香港)有限公司','武汉派诺科技发展有限公司','珠海华夏云联技术有限公司','广东碳索智控科技有限公司','武汉派诺科技发展有限公司','珠海兴诺能源技术有限公司') + OR L.FNAME = '兴诺总' + "); + + if (!string.IsNullOrEmpty(fDate)) + { + sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') >= '{0}'", fDate); + } + if (!string.IsNullOrEmpty(fEndDate)) + { + sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') <= '{0}'", fEndDate); + } + + sql += string.Format(@"/*dialect*/ + Select * INTO #TABLEXYX From + (Select A.FID From View_Table_Temp2 A JOIN View_Table_Temp3 B + on A.FCONTRACTNUMBER=B.FCONTRACTNUMBER AND A.FCREATEDATE = B.FCREATEDATE + UNION ALL + Select * From View_Table_Temp1) W; + Select + A.FBILLNO as 'AFBILLNO', + A.F_ORDERTYPE, + CONVERT(nvarchar,A.FDate,23) as 'Date', --日期 + Month(A.FDATE) as 'Month', --月份 + E.FNAME as 'Client', --购货单位 + F.FNAME as 'Currency', --币别 + ISNULL(E.FDATAVALUE,'') as 'CreditType', --客户信用类型 + A.F_CONTRACTNUMBER as 'ContractNumber', --纸质合同号 + ISNULL(G.FSpecification,'') as 'SizeModel', --规格型号 + B.FQty-ISNULL(B3.FRetNoticeQty,0) as 'Quantity', --数量 + B2.FTaxPrice as 'TaxPrice', --实际含税单价 + B2.FAllAmount_LC-ISNULL(ABS(B3.FAllAmount_LC),0) as 'AllAmount', --价税合计 + ISNULL(H.FNAME,'') as 'ProjectName', --项目名称 + ISNULL(H2.FNAME,'') as 'SalerName', --业务员 + ISNULL(H3.FNAME,'') as 'SaleDeptName', --部门 + ISNULL(H4.FNAME,'') as 'Supervisor', --审批人 + H5.FDATAVALUE as 'SpecialCauseType', --特价原因分类 + A.FCrmSpecialPricingReason as 'CRMSpecialCause', --CRM特价原因 + CASE WHEN A.F_ORDERTYPE = 'YB' THEN B.F_SettlementP + ELSE null + END as 'CurrentSettledUpset1', --当期结算价(仪表) + CASE WHEN A.F_ORDERTYPE = 'XT' AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 + THEN CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) + ELSE null + END as 'CurrentSettledUpset2', --当期结算价(系统) + (B2.FTaxPrice - B.F_SettlementP) as 'Difference', --差额(单价-底价) + --P、C、E、S + CASE WHEN (D.FNUMBER = 'P' or D.FNUMBER = 'C' or D.FNUMBER = 'E' or D.FNUMBER = 'S') + THEN ((B2.FTaxPrice - B.F_SettlementP)*B.FQty) --(仪表) + --ES、W、SX、D、CY + WHEN (D.FNUMBER = 'ES' or D.FNUMBER = 'W' or D.FNUMBER = 'SX' or D.FNUMBER = 'D' or D.FNUMBER = 'CY') + AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 + THEN C.FBillAllAmount_LC - CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) + --CS、CW + WHEN (D.FNUMBER = 'CS' or D.FNUMBER = 'CW') AND A.FSALEORGID = 100303 + THEN ((B2.FTaxPrice - B.F_SettlementP)*B.FQty) + WHEN (D.FNUMBER = 'CS' or D.FNUMBER = 'CW') AND A.FSALEORGID != 100303 + AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 + THEN C.FBillAllAmount_LC - CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) + ELSE null + END as 'TotalSpread', --总价差(终) + C2.FNAME + ',' + TRY_CAST(FLOOR(C2.F_day) as nvarchar(MAX))+'天,' + TRY_CAST(FLOOR(C2.FRecAdvanceRate) as nvarchar(MAX))+'%' + as 'PaymentMethods', --付款方式 + CASE WHEN A.F_ORDERTYPE = 'YB' THEN '仪表合同' --(仪表) + WHEN A.F_ORDERTYPE = 'XT' + THEN --(系统) + (CASE WHEN ISNULL(A.F_XMYSSJ,'')!='' THEN CONVERT(nvarchar, A.F_XMYSSJ, 23) + WHEN C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FAllAmount_LC,0) <=0 THEN '发货完成' + WHEN C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FAllAmount_LC,0) = C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0) + THEN '未发货' + ELSE '部分发货' END + ) + ELSE '' + END as 'ProjectPhase', --项目阶段 + CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 THEN + C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0) ELSE null + END as 'OrderAllAmount', --订单总额 + CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 THEN + C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FAllAmount_LC,0) ELSE null + END as 'NotShipmentsAmount', --未发货金额 + CASE WHEN Convert(nvarchar(10),dateadd(day,isnull(C2.f_day,0) ,C2.F_PMSDate),23) > Getdate() AND C2.FRECADVANCEAMOUNT > C2.FRECAMOUNT + AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 + THEN C2.FRECADVANCEAMOUNT - C2.FRECAMOUNT ELSE null END as 'ExpireUnpaidAmount', --到期未付金额 + G.FNUMBER as 'ProductsCode' --产品长代码 + INTO #TempTable1 + From + T_SAL_ORDERENTRY B --销售订单明细表 + JOIN + T_SAL_ORDER A --销售订单表 + on A.FID = B.FID + LEFT JOIN + T_SAL_ORDERENTRY_F B2 --销售订单明细_F表 + on B.FENTRYID = B2.FENTRYID + LEFT JOIN + (SELECT Aq2.FBillAllAmount_LC,Aq.* FROM + (SELECT W2.FSID,W2.FSBILLID,STRING_AGG(CONVERT(nvarchar,W1.FDATE, 23), ',') as 'FDate',SUM(W1.FPriceUnitQty) as 'FRETNOTICEQTY',SUM(W1.FALLAMOUNT_LC) as 'FALLAMOUNT_LC' FROM + (Select q1.FDATE,q3.FSID,q2.FAllAmount_LC,q2.FPriceUnitQty From T_SAL_RETURNNOTICE q1 JOIN T_SAL_RETURNNOTICEENTRY_F q2 + on q1.FID = q2.FID JOIN T_SAL_RETURNNOTICEENTRY_LK q3 on q2.FENTRYID = q3.FENTRYID + Where q1.FDocumentStatus = 'C' AND q1.FCancelStatus = 'A' AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY') W1 + JOIN T_SAL_ORDERENTRY_LK W2 on W1.FSID = W2.FENTRYID GROUP BY W2.FSID,W2.FSBILLID) Aq + JOIN + (SELECT W2.FSBILLID,STRING_AGG(CONVERT(nvarchar,W1.FDATE, 23), ',') as 'FDate',SUM(W1.FPriceUnitQty) as 'FRETNOTICEQTY',SUM(W1.FALLAMOUNT_LC) as 'FBillAllAmount_LC' FROM + (Select q1.FDATE,q3.FSID,q2.FAllAmount_LC,q2.FPriceUnitQty From T_SAL_RETURNNOTICE q1 JOIN T_SAL_RETURNNOTICEENTRY_F q2 + on q1.FID = q2.FID JOIN T_SAL_RETURNNOTICEENTRY_LK q3 on q2.FENTRYID = q3.FENTRYID + Where q1.FDocumentStatus = 'C' AND q1.FCancelStatus = 'A' AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY') W1 + JOIN T_SAL_ORDERENTRY_LK W2 on W1.FSID = W2.FENTRYID GROUP BY W2.FSBILLID) Aq2 + on Aq.FSBILLID = Aq2.FSBILLID) B3 --销售订单-表关联表(销售退货) + on B.FENTRYID = B3.FSID + JOIN + T_SAL_ORDERFIN C --销售订单_财务表 + on A.FID = C.FID + LEFT JOIN + (Select q2.FNAME,q1.* From + T_SAL_ORDERPLAN q1 JOIN + (Select q2.FNAME,q1.* From + T_BD_RECCONDITION q1 + LEFT JOIN + T_BD_RECCONDITION_L q2 + on q1.FID = q2.FID + Where q2.FLOCALEID = 2052 + AND q1.FDocumentStatus = 'C' + AND q1.FForbidStatus = 'A') q2 + on q1.F_RecConditionId = q2.FID) C2 --销售订单_收款计划 + on A.FID = C2.FID + LEFT JOIN + (Select FNumber,FMASTERID From T_BAS_ASSISTANTDATAENTRY + Where FID = '670cc977263353' + AND FDocumentStatus = 'C' + AND FForbidStatus = 'A') D --合同类型#(辅助资料表) + on A.F_ORDERCATEGORY = D.FMASTERID + 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) E --客户_L表 + on A.FCustId = E.FCUSTID + LEFT JOIN + (Select * From T_BD_CURRENCY_L + Where FLOCALEID = 2052) F --币别表 + on C.FSETTLECURRID = F.FCURRENCYID + LEFT JOIN + (Select B.FNAME,B.FSPECIFICATION,A.* From + T_BD_MATERIAL A + JOIN + T_BD_MATERIAL_L B + on A.FMATERIALID = B.FMATERIALID + Where B.FLOCALEID = 2052 + AND A.FDocumentStatus = 'C' AND A.FForbidStatus = 'A') G --物料表 + on G.FMATERIALID = B.FMaterialId + 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') H --工程项目表(预置基础资料1) + on H.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') H2 --销售员表 + on A.FSalerId = H2.fid + LEFT JOIN + (Select q2.FNAME,q1.* From + T_BD_DEPARTMENT q1 + JOIN + T_BD_DEPARTMENT_L q2 + on q1.FDEPTID = q2.FDEPTID + Where q2.FLOCALEID = 2052 + AND q1.FDocumentStatus = 'C' + AND q1.FForbidStatus = 'A') H3 --销售部门表 + on A.FSaleDeptId = H3.FDEPTID + LEFT JOIN + (Select q2.FNAME,q1.* From + T_HR_EMPINFO q1 + JOIN + T_HR_EMPINFO_L q2 + on q1.FID = q2.FID + Where q2.FLOCALEID = 2052 + AND q1.FDocumentStatus = 'C' + AND q1.FForbidStatus = 'A') H4 --主管#(员工表) + on A.F_VRYF_BASE_FG2 = H4.FID + LEFT JOIN + (Select A.FNumber,A.FMASTERID,B.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY A + JOIN T_BAS_ASSISTANTDATAENTRY_L B on A.FENTRYID = B.FENTRYID + Where A.FID = '674f073de0bc25' + AND A.FDocumentStatus = 'C' + AND A.FForbidStatus = 'A') H5 + on H5.FMASTERID = A.FSpecialReson + LEFT JOIN + (SELECT W2.FSID,SUM(W1.FALLAMOUNT_LC) as 'FALLAMOUNT_LC' FROM + (Select q2.FAllAmount_LC,q2.FENTRYID From T_SAL_DELIVERYNOTICE q1 + JOIN T_SAL_DELIVERYNOTICEENTRY_F q2 + on q1.FID = q2.FID Where q1.FDocumentStatus = 'C' + AND q1.FCancelStatus = 'A') W1 + JOIN T_SAL_DELIVERYNOTICEENTRY_LK W2 on W1.FENTRYID = W2.FENTRYID + Where W2.FSTABLENAME = 'T_SAL_ORDERENTRY' GROUP BY W2.FSID) H6 --发货通知单表 + on B.FENTRYID = H6.FSID + LEFT JOIN + (SELECT W2.FSID,W1.* FROM + (Select B.FALLAMOUNTFOR,B.FENTRYID From T_AR_RECEIVABLE A + JOIN T_AR_RECEIVABLEENTRY B on A.FID = B.FID Where A.FDocumentStatus = 'C' + AND B.FORDERNUMBER !='' AND A.FENDDATE <= GETDATE()) W1 + JOIN T_AR_RECEIVABLEENTRY_LK W2 on W1.FENTRYID = W2.FENTRYID + Where W2.FSTABLENAME = 'T_SAL_ORDERENTRY') H7 + on B.FENTRYID = H7.FSID + Where D.FNUMBER in ('P','E','C','S') + AND B.F_SPECIALOFFER = '1' AND B.F_YKQC_CheckBox_qtr != '1' + AND A.FDocumentStatus = 'C' AND A.FBusinessType = 'NORMAL' AND B.FQTY >= 0 AND A.FMANUALCLOSE = '0' + AND A.FID in (Select * From #TABLEXYX) + AND A.FManualClose <> '1' + AND B.FManualRowClose <> '1' + AND A.F_contractnumber NOT LIKE 'Z%' + AND A.FID NOT IN( + SELECT FID FROM #TEMP3 + ) + "); + + if (!string.IsNullOrEmpty(organization)) + { + sql += string.Format(@" AND A.FSaleOrgId in ({0})", organization); + } + if (!string.IsNullOrEmpty(fClient)) + { + sql += string.Format(@" AND A.FCUSTID in ({0})", fClient); + } + if (!string.IsNullOrEmpty(fChanPin)) + { + sql += string.Format(@" AND G.FMATeRIALID in ({0})", fChanPin); + } + if (!string.IsNullOrEmpty(fProject)) + { + sql += string.Format(@" AND A.F_PROJECTNAME in ({0})", fProject); + } + if (!string.IsNullOrEmpty(fSalesman)) + { + sql += string.Format(@" AND A.FSALERID in ({0})", fSalesman); + } + if (!string.IsNullOrEmpty(fDate)) + { + sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') >= '{0}'", fDate); + } + if (!string.IsNullOrEmpty(fEndDate)) + { + sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') <= '{0}'", fEndDate); + } + + sql += string.Format(@";"); + + sql += string.Format(@"/*dialect*/ + Select + A.FBILLNO as 'AFBILLNO', + A.F_ORDERTYPE, + CONVERT(nvarchar,A.FApproveDate,23) as 'Date', --日期 + Month(A.FApproveDate) as 'Month', --月份 + E.FNAME as 'Client', --购货单位 + F.FNAME as 'Currency', --币别 + ISNULL(E.FDATAVALUE,'') as 'CreditType', --客户信用类型 + A.F_CONTRACTNUMBER as 'ContractNumber', --纸质合同号 + ISNULL(G.FSpecification,'') as 'SizeModel', --规格型号 + B.FQty-ISNULL(B3.FRetNoticeQty,0) as 'Quantity', --数量 + B2.FTaxPrice as 'TaxPrice', --实际含税单价 + B2.FAllAmount_LC-ISNULL(ABS(B3.FAllAmount_LC),0) as 'AllAmount', --价税合计 + ISNULL(H.FNAME,'') as 'ProjectName', --项目名称 + ISNULL(H2.FNAME,'') as 'SalerName', --业务员 + ISNULL(H3.FNAME,'') as 'SaleDeptName', --部门 + ISNULL(H4.FNAME,'') as 'Supervisor', --审批人 + H5.FDATAVALUE as 'SpecialCauseType', --特价原因分类 + A.FCrmSpecialPricingReason as 'CRMSpecialCause', --CRM特价原因 + CASE WHEN A.F_ORDERTYPE = 'YB' THEN B.F_SettlementP + ELSE null + END as 'CurrentSettledUpset1', --当期结算价(仪表) + CASE WHEN A.F_ORDERTYPE = 'XT' AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 + THEN CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) + ELSE null + END as 'CurrentSettledUpset2', --当期结算价(系统) + (B2.FTaxPrice - B.F_SettlementP) as 'Difference', --差额(单价-底价) + --P、C、E、S + CASE WHEN (D.FNUMBER = 'P' or D.FNUMBER = 'C' or D.FNUMBER = 'E' or D.FNUMBER = 'S') + THEN ((B2.FTaxPrice - B.F_SettlementP)*B.FQty) --(仪表) + --ES、W、SX、D、CY + WHEN (D.FNUMBER = 'ES' or D.FNUMBER = 'W' or D.FNUMBER = 'SX' or D.FNUMBER = 'D' or D.FNUMBER = 'CY') + AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 + THEN C.FBillAllAmount_LC - CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) + --CS、CW + WHEN (D.FNUMBER = 'CS' or D.FNUMBER = 'CW') AND A.FSALEORGID = 100303 + THEN ((B2.FTaxPrice - B.F_SettlementP)*B.FQty) + WHEN (D.FNUMBER = 'CS' or D.FNUMBER = 'CW') AND A.FSALEORGID != 100303 + AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 + THEN C.FBillAllAmount_LC - CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) + ELSE null + END as 'TotalSpread', --总价差(终) + C2.FNAME + ',' + TRY_CAST(FLOOR(C2.F_day) as nvarchar(MAX))+'天,' + TRY_CAST(FLOOR(C2.FRecAdvanceRate) as nvarchar(MAX))+'%' + as 'PaymentMethods', --付款方式 + CASE WHEN A.F_ORDERTYPE = 'YB' THEN '仪表合同' --(仪表) + WHEN A.F_ORDERTYPE = 'XT' + THEN --(系统) + (CASE WHEN ISNULL(A.F_XMYSSJ,'')!='' THEN CONVERT(nvarchar, A.F_XMYSSJ, 23) + WHEN C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FAllAmount_LC,0) <=0 THEN '发货完成' + WHEN C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FAllAmount_LC,0) = C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0) + THEN '未发货' + ELSE '部分发货' END + ) + ELSE '' + END as 'ProjectPhase', --项目阶段 + CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 THEN + C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0) ELSE null + END as 'OrderAllAmount', --订单总额 + CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 THEN + C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FALLAMOUNT_LC,0) ELSE null + END as 'NotShipmentsAmount', --未发货金额 + CASE WHEN Convert(nvarchar(10),dateadd(day,isnull(C2.f_day,0) ,C2.F_PMSDate),23) > Getdate() AND C2.FRECADVANCEAMOUNT > C2.FRECAMOUNT + AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 + THEN C2.FRECADVANCEAMOUNT - C2.FRECAMOUNT ELSE null END as 'ExpireUnpaidAmount', --到期未付金额 + G.FNUMBER as 'ProductsCode' --产品长代码 + INTO #TempTable2 + From + T_SAL_ORDERENTRY B --销售订单明细表 + JOIN + T_SAL_ORDER A --销售订单表 + on A.FID = B.FID + LEFT JOIN + T_SAL_ORDERENTRY_F B2 --销售订单明细_F表 + on B.FENTRYID = B2.FENTRYID + LEFT JOIN + (SELECT Aq2.FBillAllAmount_LC,Aq.* FROM + (SELECT W2.FSID,W2.FSBILLID,STRING_AGG(CONVERT(nvarchar,W1.FDATE, 23), ',') as 'FDate',SUM(W1.FPriceUnitQty) as 'FRETNOTICEQTY',SUM(W1.FALLAMOUNT_LC) as 'FAllAmount_LC' FROM + (Select q1.FDATE,q3.FSID,q2.FAllAmount_LC,q2.FPriceUnitQty From T_SAL_RETURNNOTICE q1 JOIN T_SAL_RETURNNOTICEENTRY_F q2 + on q1.FID = q2.FID JOIN T_SAL_RETURNNOTICEENTRY_LK q3 on q2.FENTRYID = q3.FENTRYID + Where q1.FDocumentStatus = 'C' AND q1.FCancelStatus = 'A' AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY') W1 + JOIN T_SAL_ORDERENTRY_LK W2 on W1.FSID = W2.FENTRYID GROUP BY W2.FSID,W2.FSBILLID) Aq + JOIN + (SELECT W2.FSBILLID,STRING_AGG(CONVERT(nvarchar,W1.FDATE, 23), ',') as 'FDate',SUM(W1.FPriceUnitQty) as 'FRETNOTICEQTY',SUM(W1.FALLAMOUNT_LC) as 'FBillAllAmount_LC' FROM + (Select q1.FDATE,q3.FSID,q2.FAllAmount_LC,q2.FPriceUnitQty From T_SAL_RETURNNOTICE q1 JOIN T_SAL_RETURNNOTICEENTRY_F q2 + on q1.FID = q2.FID JOIN T_SAL_RETURNNOTICEENTRY_LK q3 on q2.FENTRYID = q3.FENTRYID + Where q1.FDocumentStatus = 'C' AND q1.FCancelStatus = 'A' AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY') W1 + JOIN T_SAL_ORDERENTRY_LK W2 on W1.FSID = W2.FENTRYID GROUP BY W2.FSBILLID) Aq2 + on Aq.FSBILLID = Aq2.FSBILLID) B3 --销售订单-表关联表 + on B.FENTRYID = B3.FSID + JOIN + T_SAL_ORDERFIN C --销售订单_财务表 + on A.FID = C.FID + LEFT JOIN + (Select q2.FNAME,q1.* From + T_SAL_ORDERPLAN q1 JOIN + (Select q2.FNAME,q1.* From + T_BD_RECCONDITION q1 + LEFT JOIN + T_BD_RECCONDITION_L q2 + on q1.FID = q2.FID + Where q2.FLOCALEID = 2052 + AND q1.FDocumentStatus = 'C' + AND q1.FForbidStatus = 'A') q2 + on q1.F_RecConditionId = q2.FID) C2 --销售订单_收款计划 + on A.FID = C2.FID + LEFT JOIN + (Select FNumber,FMASTERID From T_BAS_ASSISTANTDATAENTRY + Where FID = '670cc977263353' + AND FDocumentStatus = 'C' + AND FForbidStatus = 'A') D --合同类型#(辅助资料表) + on A.F_ORDERCATEGORY = D.FMASTERID + 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) E --客户_L表 + on A.FCustId = E.FCUSTID + LEFT JOIN + (Select * From T_BD_CURRENCY_L + Where FLOCALEID = 2052) F --币别表 + on C.FSETTLECURRID = F.FCURRENCYID + LEFT JOIN + (Select B.FNAME,B.FSPECIFICATION,A.* From + T_BD_MATERIAL A + JOIN + T_BD_MATERIAL_L B + on A.FMATERIALID = B.FMATERIALID + Where B.FLOCALEID = 2052 + AND A.FDocumentStatus = 'C' AND A.FForbidStatus = 'A') G --物料表 + on G.FMATERIALID = B.FMaterialId + 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') H --工程项目表(预置基础资料1) + on H.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') H2 --销售员表 + on A.FSalerId = H2.fid + LEFT JOIN + (Select q2.FNAME,q1.* From + T_BD_DEPARTMENT q1 + JOIN + T_BD_DEPARTMENT_L q2 + on q1.FDEPTID = q2.FDEPTID + Where q2.FLOCALEID = 2052 + AND q1.FDocumentStatus = 'C' + AND q1.FForbidStatus = 'A') H3 --销售部门表 + on A.FSaleDeptId = H3.FDEPTID + LEFT JOIN + (Select q2.FNAME,q1.* From + T_HR_EMPINFO q1 + JOIN + T_HR_EMPINFO_L q2 + on q1.FID = q2.FID + Where q2.FLOCALEID = 2052 + AND q1.FDocumentStatus = 'C' + AND q1.FForbidStatus = 'A') H4 --主管#(员工表) + on A.F_VRYF_BASE_FG2 = H4.FID + LEFT JOIN + (Select A.FNumber,A.FMASTERID,B.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY A + JOIN T_BAS_ASSISTANTDATAENTRY_L B on A.FENTRYID = B.FENTRYID + Where A.FID = '674f073de0bc25' + AND A.FDocumentStatus = 'C' + AND A.FForbidStatus = 'A') H5 + on H5.FMASTERID = A.FSpecialReson + LEFT JOIN + (SELECT W2.FSID,SUM(W1.FALLAMOUNT_LC) as 'FALLAMOUNT_LC' FROM + (Select q2.FAllAmount_LC,q2.FENTRYID From T_SAL_DELIVERYNOTICE q1 + JOIN T_SAL_DELIVERYNOTICEENTRY_F q2 + on q1.FID = q2.FID Where q1.FDocumentStatus = 'C' + AND q1.FCancelStatus = 'A') W1 + JOIN T_SAL_DELIVERYNOTICEENTRY_LK W2 on W1.FENTRYID = W2.FENTRYID + Where W2.FSTABLENAME = 'T_SAL_ORDERENTRY' GROUP BY W2.FSID) H6 + on B.FENTRYID = H6.FSID + LEFT JOIN + (SELECT W2.FSID,W1.* FROM + (Select B.FALLAMOUNTFOR,B.FENTRYID From T_AR_RECEIVABLE A + JOIN T_AR_RECEIVABLEENTRY B on A.FID = B.FID Where A.FDocumentStatus = 'C' + AND B.FORDERNUMBER !='' AND A.FENDDATE <= GETDATE()) W1 + JOIN T_AR_RECEIVABLEENTRY_LK W2 on W1.FENTRYID = W2.FENTRYID + Where W2.FSTABLENAME = 'T_SAL_ORDERENTRY') H7 --收款单 + on B.FENTRYID = H7.FSID + --ES、W、SX、CW、D、CY + Where D.FNUMBER not in ('P','E','C','S') + AND (A.F_YKQC_CHECKBOX_QTR1 = 1 OR a.F_GROSSMARGIN1='<35%') AND B.FQTY >= 0 + AND A.FDocumentStatus = 'C' AND A.FBusinessType = 'NORMAL' AND A.FMANUALCLOSE = '0' + AND A.FID in (Select * From #TABLEXYX) + AND A.F_contractnumber NOT LIKE 'Z%' + AND A.FMANUALCLOSE <> '1' + AND B.FManualRowClose <> '1' + AND A.FID NOT IN( + SELECT FID FROM #TEMP3 + ) + "); + + if (!string.IsNullOrEmpty(organization)) + { + sql += string.Format(@" AND A.FSaleOrgId in ({0})", organization); + } + if (!string.IsNullOrEmpty(fClient)) + { + sql += string.Format(@" AND A.FCUSTID in ({0})", fClient); + } + if (!string.IsNullOrEmpty(fChanPin)) + { + sql += string.Format(@" AND G.FMATeRIALID in ({0})", fChanPin); + } + if (!string.IsNullOrEmpty(fProject)) + { + sql += string.Format(@" AND A.F_PROJECTNAME in ({0})", fProject); + } + if (!string.IsNullOrEmpty(fSalesman)) + { + sql += string.Format(@" AND A.FSALERID in ({0})", fSalesman); + } + if (!string.IsNullOrEmpty(fDate)) + { + sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') >= '{0}'", fDate); + } + if (!string.IsNullOrEmpty(fEndDate)) + { + sql += string.Format(@"AND FORMAT(A.FApproveDate,'yyyy-MM-dd') <= '{0}'", fEndDate); + } + + sql += string.Format(@";"); + + sql += string.Format(@"/*dialect*/ + Select * INTO #TempTable3 From #TempTable1 UNION ALL Select * From #TempTable2; + Select * INTO #TempTable4 From #TempTable3 Where 1=1 "); + + if (!string.IsNullOrEmpty(fPaperContract)) + { + sql += string.Format(@" AND ContractNumber like '%{0}%'", fPaperContract); + } + + sql += string.Format(@";"); + + sql += string.Format(@"/*dialect*/ + Select + *, + ROW_NUMBER() OVER (ORDER BY ContractNumber,t1.Sort DESC) AS FID, + ROW_NUMBER() OVER (ORDER BY ContractNumber,t1.Sort DESC) AS FIDENTITYID + INTO {0} + From + (SELECT *,1 Sort FROM #TempTable4 + UNION ALL + SELECT + '', + '', + '合计:', + null, + '', + '', + '', + '', + '', + SUM(t1.Quantity),--数量 + SUM(t1.TaxPrice), + SUM(t1.AllAmount), + '', + '', + '', + '', + '', + '', + SUM(t1.CurrentSettledUpset1), + SUM(t1.CurrentSettledUpset2), + SUM(t1.Difference), + SUM(t1.TotalSpread), + '', + '', + SUM(t1.OrderAllAmount), + SUM(t1.NotShipmentsAmount), + SUM(t1.ExpireUnpaidAmount), + '', + 0 Sort + FROM #TempTable4 t1) t1 + order by Sort desc", tableName); + Loghelp.Log(sql); + DBUtils.Execute(this.Context, sql); + } + + /// + /// 获取前端组件转换过滤条件 + /// + /// + /// + public override ReportTitles GetReportTitles(IRptParams filter) + { + ReportTitles reportTitles = new ReportTitles(); + DynamicObject customFilter = filter.FilterParameter.CustomFilter; + + if (customFilter != null) + { + // 下单时间 + string fDate = customFilter["FDate"]?.ToString(); + // 下单时间 + string fEndDate = customFilter["FEndDate"]?.ToString(); + // 纸质合同号 + string fPaperContract = customFilter["FPaperContract"]?.ToString(); + // 组织 + var organizationList = (customFilter["FZuZhi"] as DynamicObjectCollection)?.Select(n => (n["FZuZhi"] as DynamicObject)["Name"].ToString()).ToList(); + // 客户 FClient + var fClient = (customFilter["FClient"] as DynamicObject)?["Name"]?.ToString(); + // 产品 + var fChanPin = (customFilter["FChanPin"] as DynamicObject)?["Name"]?.ToString(); + // 项目 FProject + var fProject = (customFilter["FProject"] as DynamicObject)?["Name"]?.ToString(); + // 销售员 + var fSalesman = (customFilter["FSalesman"] as DynamicObject)?["Name"]?.ToString(); + + //这里是报表页面的标识 + reportTitles.AddTitle("FPaperContract", fPaperContract == null ? "" : fPaperContract); + reportTitles.AddTitle("FClient", fClient == null ? "" : fClient); + reportTitles.AddTitle("FChanPin", fChanPin == null ? "" : fChanPin); + reportTitles.AddTitle("FProject", fProject == null ? "" : fProject); + reportTitles.AddTitle("FSalesman", fSalesman == null ? "" : fSalesman); + reportTitles.AddTitle("FDate", fDate == null ? "" : Convert.ToDateTime(fDate).ToString("yyyy-MM-dd")); + reportTitles.AddTitle("FEndDate", fEndDate == null ? "" : Convert.ToDateTime(fEndDate).ToString("yyyy-MM-dd")); + reportTitles.AddTitle("FZuZhi", organizationList == null ? "" : string.Join(",", organizationList)); + } + return reportTitles; + } + } +} diff --git a/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs b/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs index f9be61c..33c95c4 100644 --- a/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs +++ b/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs @@ -65,7 +65,7 @@ namespace Pilot.Report.Exploitation.SpecialDetails base.GetReportHeaders(filter); ReportHeader header = new ReportHeader(); - + header.AddChild("TableName", new LocaleValue("开发看的"), SqlStorageType.Sqlvarchar); header.AddChild("Date", new LocaleValue("日期"), SqlStorageType.Sqlvarchar); header.AddChild("Month", new LocaleValue("月份"), SqlStorageType.Sqlvarchar); header.AddChild("Client", new LocaleValue("购货单位"), SqlStorageType.Sqlvarchar); @@ -129,557 +129,690 @@ namespace Pilot.Report.Exploitation.SpecialDetails var organization = organizationList == null ? "" : (string.Join(",", organizationList)); base.BuilderReportSqlAndTempTable(filter, tableName); - - string sql = string.Format(@"/*dialect*/ - 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.FNAME IN ('派诺科技(香港)有限公司','武汉派诺科技发展有限公司','珠海华夏云联技术有限公司','广东碳索智控科技有限公司','武汉派诺科技发展有限公司','珠海兴诺能源技术有限公司') - OR L.FNAME = '兴诺总' - "); - - if (!string.IsNullOrEmpty(fDate)) - { - sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') >= '{0}'", fDate); - } - if (!string.IsNullOrEmpty(fEndDate)) - { - sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') <= '{0}'", fEndDate); - } - - sql += string.Format(@"/*dialect*/ - Select * INTO #TABLEXYX From - (Select A.FID From View_Table_Temp2 A JOIN View_Table_Temp3 B - on A.FCONTRACTNUMBER=B.FCONTRACTNUMBER AND A.FCREATEDATE = B.FCREATEDATE - UNION ALL - Select * From View_Table_Temp1) W; - Select - A.FBILLNO as 'AFBILLNO', - A.F_ORDERTYPE, - CONVERT(nvarchar,A.FDate,23) as 'Date', --日期 - Month(A.FDATE) as 'Month', --月份 - E.FNAME as 'Client', --购货单位 - F.FNAME as 'Currency', --币别 - ISNULL(E.FDATAVALUE,'') as 'CreditType', --客户信用类型 - A.F_CONTRACTNUMBER as 'ContractNumber', --纸质合同号 - ISNULL(G.FSpecification,'') as 'SizeModel', --规格型号 - B.FQty-ISNULL(B3.FRetNoticeQty,0) as 'Quantity', --数量 - B2.FTaxPrice as 'TaxPrice', --实际含税单价 - B2.FAllAmount_LC-ISNULL(ABS(B3.FAllAmount_LC),0) as 'AllAmount', --价税合计 - ISNULL(H.FNAME,'') as 'ProjectName', --项目名称 - ISNULL(H2.FNAME,'') as 'SalerName', --业务员 - ISNULL(H3.FNAME,'') as 'SaleDeptName', --部门 - ISNULL(H4.FNAME,'') as 'Supervisor', --审批人 - H5.FDATAVALUE as 'SpecialCauseType', --特价原因分类 - A.FCrmSpecialPricingReason as 'CRMSpecialCause', --CRM特价原因 - CASE WHEN A.F_ORDERTYPE = 'YB' THEN B.F_SettlementP - ELSE null - END as 'CurrentSettledUpset1', --当期结算价(仪表) - CASE WHEN A.F_ORDERTYPE = 'XT' AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 - THEN CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) - ELSE null - END as 'CurrentSettledUpset2', --当期结算价(系统) - (B2.FTaxPrice - B.F_SettlementP) as 'Difference', --差额(单价-底价) - --P、C、E、S - CASE WHEN (D.FNUMBER = 'P' or D.FNUMBER = 'C' or D.FNUMBER = 'E' or D.FNUMBER = 'S') - THEN ((B2.FTaxPrice - B.F_SettlementP)*B.FQty) --(仪表) - --ES、W、SX、D、CY - WHEN (D.FNUMBER = 'ES' or D.FNUMBER = 'W' or D.FNUMBER = 'SX' or D.FNUMBER = 'D' or D.FNUMBER = 'CY') - AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 - THEN C.FBillAllAmount_LC - CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) - --CS、CW - WHEN (D.FNUMBER = 'CS' or D.FNUMBER = 'CW') AND A.FSALEORGID = 100303 - THEN ((B2.FTaxPrice - B.F_SettlementP)*B.FQty) - WHEN (D.FNUMBER = 'CS' or D.FNUMBER = 'CW') AND A.FSALEORGID != 100303 - AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 - THEN C.FBillAllAmount_LC - CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) - ELSE null - END as 'TotalSpread', --总价差(终) - C2.FNAME + ',' + TRY_CAST(FLOOR(C2.F_day) as nvarchar(MAX))+'天,' + TRY_CAST(FLOOR(C2.FRecAdvanceRate) as nvarchar(MAX))+'%' - as 'PaymentMethods', --付款方式 - CASE WHEN A.F_ORDERTYPE = 'YB' THEN '仪表合同' --(仪表) - WHEN A.F_ORDERTYPE = 'XT' - THEN --(系统) - (CASE WHEN ISNULL(A.F_XMYSSJ,'')!='' THEN CONVERT(nvarchar, A.F_XMYSSJ, 23) - WHEN C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FAllAmount_LC,0) <=0 THEN '发货完成' - WHEN C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FAllAmount_LC,0) = C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0) - THEN '未发货' - ELSE '部分发货' END - ) - ELSE '' - END as 'ProjectPhase', --项目阶段 - CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 THEN - C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0) ELSE null - END as 'OrderAllAmount', --订单总额 - CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 THEN - C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FAllAmount_LC,0) ELSE null - END as 'NotShipmentsAmount', --未发货金额 - CASE WHEN Convert(nvarchar(10),dateadd(day,isnull(C2.f_day,0) ,C2.F_PMSDate),23) > Getdate() AND C2.FRECADVANCEAMOUNT > C2.FRECAMOUNT - AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 - THEN C2.FRECADVANCEAMOUNT - C2.FRECAMOUNT ELSE null END as 'ExpireUnpaidAmount', --到期未付金额 - G.FNUMBER as 'ProductsCode' --产品长代码 - INTO #TempTable1 - From - T_SAL_ORDERENTRY B --销售订单明细表 - JOIN - T_SAL_ORDER A --销售订单表 - on A.FID = B.FID - LEFT JOIN - T_SAL_ORDERENTRY_F B2 --销售订单明细_F表 - on B.FENTRYID = B2.FENTRYID - LEFT JOIN - (SELECT Aq2.FBillAllAmount_LC,Aq.* FROM - (SELECT W2.FSID,W2.FSBILLID,STRING_AGG(CONVERT(nvarchar,W1.FDATE, 23), ',') as 'FDate',SUM(W1.FPriceUnitQty) as 'FRETNOTICEQTY',SUM(W1.FALLAMOUNT_LC) as 'FALLAMOUNT_LC' FROM - (Select q1.FDATE,q3.FSID,q2.FAllAmount_LC,q2.FPriceUnitQty From T_SAL_RETURNNOTICE q1 JOIN T_SAL_RETURNNOTICEENTRY_F q2 - on q1.FID = q2.FID JOIN T_SAL_RETURNNOTICEENTRY_LK q3 on q2.FENTRYID = q3.FENTRYID - Where q1.FDocumentStatus = 'C' AND q1.FCancelStatus = 'A' AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY') W1 - JOIN T_SAL_ORDERENTRY_LK W2 on W1.FSID = W2.FENTRYID GROUP BY W2.FSID,W2.FSBILLID) Aq - JOIN - (SELECT W2.FSBILLID,STRING_AGG(CONVERT(nvarchar,W1.FDATE, 23), ',') as 'FDate',SUM(W1.FPriceUnitQty) as 'FRETNOTICEQTY',SUM(W1.FALLAMOUNT_LC) as 'FBillAllAmount_LC' FROM - (Select q1.FDATE,q3.FSID,q2.FAllAmount_LC,q2.FPriceUnitQty From T_SAL_RETURNNOTICE q1 JOIN T_SAL_RETURNNOTICEENTRY_F q2 - on q1.FID = q2.FID JOIN T_SAL_RETURNNOTICEENTRY_LK q3 on q2.FENTRYID = q3.FENTRYID - Where q1.FDocumentStatus = 'C' AND q1.FCancelStatus = 'A' AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY') W1 - JOIN T_SAL_ORDERENTRY_LK W2 on W1.FSID = W2.FENTRYID GROUP BY W2.FSBILLID) Aq2 - on Aq.FSBILLID = Aq2.FSBILLID) B3 --销售订单-表关联表(销售退货) - on B.FENTRYID = B3.FSID - JOIN - T_SAL_ORDERFIN C --销售订单_财务表 - on A.FID = C.FID - LEFT JOIN - (Select q2.FNAME,q1.* From - T_SAL_ORDERPLAN q1 JOIN - (Select q2.FNAME,q1.* From - T_BD_RECCONDITION q1 - LEFT JOIN - T_BD_RECCONDITION_L q2 - on q1.FID = q2.FID - Where q2.FLOCALEID = 2052 - AND q1.FDocumentStatus = 'C' - AND q1.FForbidStatus = 'A') q2 - on q1.F_RecConditionId = q2.FID) C2 --销售订单_收款计划 - on A.FID = C2.FID - LEFT JOIN - (Select FNumber,FMASTERID From T_BAS_ASSISTANTDATAENTRY - Where FID = '670cc977263353' - AND FDocumentStatus = 'C' - AND FForbidStatus = 'A') D --合同类型#(辅助资料表) - on A.F_ORDERCATEGORY = D.FMASTERID - 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) E --客户_L表 - on A.FCustId = E.FCUSTID - LEFT JOIN - (Select * From T_BD_CURRENCY_L - Where FLOCALEID = 2052) F --币别表 - on C.FSETTLECURRID = F.FCURRENCYID - LEFT JOIN - (Select B.FNAME,B.FSPECIFICATION,A.* From - T_BD_MATERIAL A - JOIN - T_BD_MATERIAL_L B - on A.FMATERIALID = B.FMATERIALID - Where B.FLOCALEID = 2052 - AND A.FDocumentStatus = 'C' AND A.FForbidStatus = 'A') G --物料表 - on G.FMATERIALID = B.FMaterialId - 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') H --工程项目表(预置基础资料1) - on H.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') H2 --销售员表 - on A.FSalerId = H2.fid - LEFT JOIN - (Select q2.FNAME,q1.* From - T_BD_DEPARTMENT q1 - JOIN - T_BD_DEPARTMENT_L q2 - on q1.FDEPTID = q2.FDEPTID - Where q2.FLOCALEID = 2052 - AND q1.FDocumentStatus = 'C' - AND q1.FForbidStatus = 'A') H3 --销售部门表 - on A.FSaleDeptId = H3.FDEPTID - LEFT JOIN - (Select q2.FNAME,q1.* From - T_HR_EMPINFO q1 - JOIN - T_HR_EMPINFO_L q2 - on q1.FID = q2.FID - Where q2.FLOCALEID = 2052 - AND q1.FDocumentStatus = 'C' - AND q1.FForbidStatus = 'A') H4 --主管#(员工表) - on A.F_VRYF_BASE_FG2 = H4.FID - LEFT JOIN - (Select A.FNumber,A.FMASTERID,B.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY A - JOIN T_BAS_ASSISTANTDATAENTRY_L B on A.FENTRYID = B.FENTRYID - Where A.FID = '674f073de0bc25' - AND A.FDocumentStatus = 'C' - AND A.FForbidStatus = 'A') H5 - on H5.FMASTERID = A.FSpecialReson - LEFT JOIN - (SELECT W2.FSID,SUM(W1.FALLAMOUNT_LC) as 'FALLAMOUNT_LC' FROM - (Select q2.FAllAmount_LC,q2.FENTRYID From T_SAL_DELIVERYNOTICE q1 - JOIN T_SAL_DELIVERYNOTICEENTRY_F q2 - on q1.FID = q2.FID Where q1.FDocumentStatus = 'C' - AND q1.FCancelStatus = 'A') W1 - JOIN T_SAL_DELIVERYNOTICEENTRY_LK W2 on W1.FENTRYID = W2.FENTRYID - Where W2.FSTABLENAME = 'T_SAL_ORDERENTRY' GROUP BY W2.FSID) H6 --发货通知单表 - on B.FENTRYID = H6.FSID - LEFT JOIN - (SELECT W2.FSID,W1.* FROM - (Select B.FALLAMOUNTFOR,B.FENTRYID From T_AR_RECEIVABLE A - JOIN T_AR_RECEIVABLEENTRY B on A.FID = B.FID Where A.FDocumentStatus = 'C' - AND B.FORDERNUMBER !='' AND A.FENDDATE <= GETDATE()) W1 - JOIN T_AR_RECEIVABLEENTRY_LK W2 on W1.FENTRYID = W2.FENTRYID - Where W2.FSTABLENAME = 'T_SAL_ORDERENTRY') H7 - on B.FENTRYID = H7.FSID - Where D.FNUMBER in ('P','E','C','S') - AND B.F_SPECIALOFFER = '1' AND B.F_YKQC_CheckBox_qtr != '1' - AND A.FDocumentStatus = 'C' AND A.FBusinessType = 'NORMAL' AND B.FQTY >= 0 AND A.FMANUALCLOSE = '0' - AND A.FID in (Select * From #TABLEXYX) - AND A.FManualClose <> '1' - AND B.FManualRowClose <> '1' - AND A.F_contractnumber NOT LIKE 'Z%' - AND A.FID NOT IN( - SELECT FID FROM #TEMP3 - ) - "); + string wheresql = " AND 1=1 "; if (!string.IsNullOrEmpty(organization)) { - sql += string.Format(@" AND A.FSaleOrgId in ({0})", organization); + wheresql += string.Format(@" AND A.FSaleOrgId in ({0})", organization); } if (!string.IsNullOrEmpty(fClient)) { - sql += string.Format(@" AND A.FCUSTID in ({0})", fClient); - } - if (!string.IsNullOrEmpty(fChanPin)) - { - sql += string.Format(@" AND G.FMATeRIALID in ({0})", fChanPin); + wheresql += string.Format(@" AND A.FCUSTID in ({0})", fClient); } + if (!string.IsNullOrEmpty(fProject)) { - sql += string.Format(@" AND A.F_PROJECTNAME in ({0})", fProject); + wheresql += string.Format(@" AND A.F_PROJECTNAME in ({0})", fProject); } if (!string.IsNullOrEmpty(fSalesman)) { - sql += string.Format(@" AND A.FSALERID in ({0})", fSalesman); + wheresql += string.Format(@" AND A.FSALERID in ({0})", fSalesman); } if (!string.IsNullOrEmpty(fDate)) { - sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') >= '{0}'", fDate); + wheresql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') >= '{0}'", fDate); } if (!string.IsNullOrEmpty(fEndDate)) { - sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') <= '{0}'", fEndDate); + wheresql += string.Format(@"AND FORMAT(A.FApproveDate,'yyyy-MM-dd') <= '{0}'", fEndDate); } - - sql += string.Format(@";"); - - sql += string.Format(@"/*dialect*/ - Select - A.FBILLNO as 'AFBILLNO', - A.F_ORDERTYPE, - CONVERT(nvarchar,A.FApproveDate,23) as 'Date', --日期 - Month(A.FApproveDate) as 'Month', --月份 - E.FNAME as 'Client', --购货单位 - F.FNAME as 'Currency', --币别 - ISNULL(E.FDATAVALUE,'') as 'CreditType', --客户信用类型 - A.F_CONTRACTNUMBER as 'ContractNumber', --纸质合同号 - ISNULL(G.FSpecification,'') as 'SizeModel', --规格型号 - B.FQty-ISNULL(B3.FRetNoticeQty,0) as 'Quantity', --数量 - B2.FTaxPrice as 'TaxPrice', --实际含税单价 - B2.FAllAmount_LC-ISNULL(ABS(B3.FAllAmount_LC),0) as 'AllAmount', --价税合计 - ISNULL(H.FNAME,'') as 'ProjectName', --项目名称 - ISNULL(H2.FNAME,'') as 'SalerName', --业务员 - ISNULL(H3.FNAME,'') as 'SaleDeptName', --部门 - ISNULL(H4.FNAME,'') as 'Supervisor', --审批人 - H5.FDATAVALUE as 'SpecialCauseType', --特价原因分类 - A.FCrmSpecialPricingReason as 'CRMSpecialCause', --CRM特价原因 - CASE WHEN A.F_ORDERTYPE = 'YB' THEN B.F_SettlementP - ELSE null - END as 'CurrentSettledUpset1', --当期结算价(仪表) - CASE WHEN A.F_ORDERTYPE = 'XT' AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 - THEN CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) - ELSE null - END as 'CurrentSettledUpset2', --当期结算价(系统) - (B2.FTaxPrice - B.F_SettlementP) as 'Difference', --差额(单价-底价) - --P、C、E、S - CASE WHEN (D.FNUMBER = 'P' or D.FNUMBER = 'C' or D.FNUMBER = 'E' or D.FNUMBER = 'S') - THEN ((B2.FTaxPrice - B.F_SettlementP)*B.FQty) --(仪表) - --ES、W、SX、D、CY - WHEN (D.FNUMBER = 'ES' or D.FNUMBER = 'W' or D.FNUMBER = 'SX' or D.FNUMBER = 'D' or D.FNUMBER = 'CY') - AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 - THEN C.FBillAllAmount_LC - CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) - --CS、CW - WHEN (D.FNUMBER = 'CS' or D.FNUMBER = 'CW') AND A.FSALEORGID = 100303 - THEN ((B2.FTaxPrice - B.F_SettlementP)*B.FQty) - WHEN (D.FNUMBER = 'CS' or D.FNUMBER = 'CW') AND A.FSALEORGID != 100303 - AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 - THEN C.FBillAllAmount_LC - CAST(ISNULL(A.F_YKQC_Text_qtr,0) as FLOAT) - ELSE null - END as 'TotalSpread', --总价差(终) - C2.FNAME + ',' + TRY_CAST(FLOOR(C2.F_day) as nvarchar(MAX))+'天,' + TRY_CAST(FLOOR(C2.FRecAdvanceRate) as nvarchar(MAX))+'%' - as 'PaymentMethods', --付款方式 - CASE WHEN A.F_ORDERTYPE = 'YB' THEN '仪表合同' --(仪表) - WHEN A.F_ORDERTYPE = 'XT' - THEN --(系统) - (CASE WHEN ISNULL(A.F_XMYSSJ,'')!='' THEN CONVERT(nvarchar, A.F_XMYSSJ, 23) - WHEN C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FAllAmount_LC,0) <=0 THEN '发货完成' - WHEN C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FAllAmount_LC,0) = C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0) - THEN '未发货' - ELSE '部分发货' END - ) - ELSE '' - END as 'ProjectPhase', --项目阶段 - CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 THEN - C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0) ELSE null - END as 'OrderAllAmount', --订单总额 - CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 THEN - C.FBillAllAmount_LC-ISNULL(ABS(B3.FBillAllAmount_LC),0)-ISNULL(H6.FALLAMOUNT_LC,0) ELSE null - END as 'NotShipmentsAmount', --未发货金额 - CASE WHEN Convert(nvarchar(10),dateadd(day,isnull(C2.f_day,0) ,C2.F_PMSDate),23) > Getdate() AND C2.FRECADVANCEAMOUNT > C2.FRECAMOUNT - AND ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 - THEN C2.FRECADVANCEAMOUNT - C2.FRECAMOUNT ELSE null END as 'ExpireUnpaidAmount', --到期未付金额 - G.FNUMBER as 'ProductsCode' --产品长代码 - INTO #TempTable2 - From - T_SAL_ORDERENTRY B --销售订单明细表 - JOIN - T_SAL_ORDER A --销售订单表 - on A.FID = B.FID - LEFT JOIN - T_SAL_ORDERENTRY_F B2 --销售订单明细_F表 - on B.FENTRYID = B2.FENTRYID - LEFT JOIN - (SELECT Aq2.FBillAllAmount_LC,Aq.* FROM - (SELECT W2.FSID,W2.FSBILLID,STRING_AGG(CONVERT(nvarchar,W1.FDATE, 23), ',') as 'FDate',SUM(W1.FPriceUnitQty) as 'FRETNOTICEQTY',SUM(W1.FALLAMOUNT_LC) as 'FAllAmount_LC' FROM - (Select q1.FDATE,q3.FSID,q2.FAllAmount_LC,q2.FPriceUnitQty From T_SAL_RETURNNOTICE q1 JOIN T_SAL_RETURNNOTICEENTRY_F q2 - on q1.FID = q2.FID JOIN T_SAL_RETURNNOTICEENTRY_LK q3 on q2.FENTRYID = q3.FENTRYID - Where q1.FDocumentStatus = 'C' AND q1.FCancelStatus = 'A' AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY') W1 - JOIN T_SAL_ORDERENTRY_LK W2 on W1.FSID = W2.FENTRYID GROUP BY W2.FSID,W2.FSBILLID) Aq - JOIN - (SELECT W2.FSBILLID,STRING_AGG(CONVERT(nvarchar,W1.FDATE, 23), ',') as 'FDate',SUM(W1.FPriceUnitQty) as 'FRETNOTICEQTY',SUM(W1.FALLAMOUNT_LC) as 'FBillAllAmount_LC' FROM - (Select q1.FDATE,q3.FSID,q2.FAllAmount_LC,q2.FPriceUnitQty From T_SAL_RETURNNOTICE q1 JOIN T_SAL_RETURNNOTICEENTRY_F q2 - on q1.FID = q2.FID JOIN T_SAL_RETURNNOTICEENTRY_LK q3 on q2.FENTRYID = q3.FENTRYID - Where q1.FDocumentStatus = 'C' AND q1.FCancelStatus = 'A' AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY') W1 - JOIN T_SAL_ORDERENTRY_LK W2 on W1.FSID = W2.FENTRYID GROUP BY W2.FSBILLID) Aq2 - on Aq.FSBILLID = Aq2.FSBILLID) B3 --销售订单-表关联表 - on B.FENTRYID = B3.FSID - JOIN - T_SAL_ORDERFIN C --销售订单_财务表 - on A.FID = C.FID - LEFT JOIN - (Select q2.FNAME,q1.* From - T_SAL_ORDERPLAN q1 JOIN - (Select q2.FNAME,q1.* From - T_BD_RECCONDITION q1 - LEFT JOIN - T_BD_RECCONDITION_L q2 - on q1.FID = q2.FID - Where q2.FLOCALEID = 2052 - AND q1.FDocumentStatus = 'C' - AND q1.FForbidStatus = 'A') q2 - on q1.F_RecConditionId = q2.FID) C2 --销售订单_收款计划 - on A.FID = C2.FID - LEFT JOIN - (Select FNumber,FMASTERID From T_BAS_ASSISTANTDATAENTRY - Where FID = '670cc977263353' - AND FDocumentStatus = 'C' - AND FForbidStatus = 'A') D --合同类型#(辅助资料表) - on A.F_ORDERCATEGORY = D.FMASTERID - 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) E --客户_L表 - on A.FCustId = E.FCUSTID - LEFT JOIN - (Select * From T_BD_CURRENCY_L - Where FLOCALEID = 2052) F --币别表 - on C.FSETTLECURRID = F.FCURRENCYID - LEFT JOIN - (Select B.FNAME,B.FSPECIFICATION,A.* From - T_BD_MATERIAL A - JOIN - T_BD_MATERIAL_L B - on A.FMATERIALID = B.FMATERIALID - Where B.FLOCALEID = 2052 - AND A.FDocumentStatus = 'C' AND A.FForbidStatus = 'A') G --物料表 - on G.FMATERIALID = B.FMaterialId - 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') H --工程项目表(预置基础资料1) - on H.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') H2 --销售员表 - on A.FSalerId = H2.fid - LEFT JOIN - (Select q2.FNAME,q1.* From - T_BD_DEPARTMENT q1 - JOIN - T_BD_DEPARTMENT_L q2 - on q1.FDEPTID = q2.FDEPTID - Where q2.FLOCALEID = 2052 - AND q1.FDocumentStatus = 'C' - AND q1.FForbidStatus = 'A') H3 --销售部门表 - on A.FSaleDeptId = H3.FDEPTID - LEFT JOIN - (Select q2.FNAME,q1.* From - T_HR_EMPINFO q1 - JOIN - T_HR_EMPINFO_L q2 - on q1.FID = q2.FID - Where q2.FLOCALEID = 2052 - AND q1.FDocumentStatus = 'C' - AND q1.FForbidStatus = 'A') H4 --主管#(员工表) - on A.F_VRYF_BASE_FG2 = H4.FID - LEFT JOIN - (Select A.FNumber,A.FMASTERID,B.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY A - JOIN T_BAS_ASSISTANTDATAENTRY_L B on A.FENTRYID = B.FENTRYID - Where A.FID = '674f073de0bc25' - AND A.FDocumentStatus = 'C' - AND A.FForbidStatus = 'A') H5 - on H5.FMASTERID = A.FSpecialReson - LEFT JOIN - (SELECT W2.FSID,SUM(W1.FALLAMOUNT_LC) as 'FALLAMOUNT_LC' FROM - (Select q2.FAllAmount_LC,q2.FENTRYID From T_SAL_DELIVERYNOTICE q1 - JOIN T_SAL_DELIVERYNOTICEENTRY_F q2 - on q1.FID = q2.FID Where q1.FDocumentStatus = 'C' - AND q1.FCancelStatus = 'A') W1 - JOIN T_SAL_DELIVERYNOTICEENTRY_LK W2 on W1.FENTRYID = W2.FENTRYID - Where W2.FSTABLENAME = 'T_SAL_ORDERENTRY' GROUP BY W2.FSID) H6 - on B.FENTRYID = H6.FSID - LEFT JOIN - (SELECT W2.FSID,W1.* FROM - (Select B.FALLAMOUNTFOR,B.FENTRYID From T_AR_RECEIVABLE A - JOIN T_AR_RECEIVABLEENTRY B on A.FID = B.FID Where A.FDocumentStatus = 'C' - AND B.FORDERNUMBER !='' AND A.FENDDATE <= GETDATE()) W1 - JOIN T_AR_RECEIVABLEENTRY_LK W2 on W1.FENTRYID = W2.FENTRYID - Where W2.FSTABLENAME = 'T_SAL_ORDERENTRY') H7 --收款单 - on B.FENTRYID = H7.FSID - --ES、W、SX、CW、D、CY - Where D.FNUMBER not in ('P','E','C','S') - AND (A.F_YKQC_CHECKBOX_QTR1 = 1 OR a.F_GROSSMARGIN1='<35%') AND B.FQTY >= 0 - AND A.FDocumentStatus = 'C' AND A.FBusinessType = 'NORMAL' AND A.FMANUALCLOSE = '0' - AND A.FID in (Select * From #TABLEXYX) - AND A.F_contractnumber NOT LIKE 'Z%' - AND A.FMANUALCLOSE <> '1' - AND B.FManualRowClose <> '1' - AND A.FID NOT IN( - SELECT FID FROM #TEMP3 - ) - "); - - if (!string.IsNullOrEmpty(organization)) - { - sql += string.Format(@" AND A.FSaleOrgId in ({0})", organization); - } - if (!string.IsNullOrEmpty(fClient)) - { - sql += string.Format(@" AND A.FCUSTID in ({0})", fClient); - } - if (!string.IsNullOrEmpty(fChanPin)) - { - sql += string.Format(@" AND G.FMATeRIALID in ({0})", fChanPin); - } - if (!string.IsNullOrEmpty(fProject)) - { - sql += string.Format(@" AND A.F_PROJECTNAME in ({0})", fProject); - } - if (!string.IsNullOrEmpty(fSalesman)) - { - sql += string.Format(@" AND A.FSALERID in ({0})", fSalesman); - } - if (!string.IsNullOrEmpty(fDate)) - { - sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') >= '{0}'", fDate); - } - if (!string.IsNullOrEmpty(fEndDate)) - { - sql += string.Format(@"AND FORMAT(A.FApproveDate,'yyyy-MM-dd') <= '{0}'", fEndDate); - } - - sql += string.Format(@";"); - - sql += string.Format(@"/*dialect*/ - Select * INTO #TempTable3 From #TempTable1 UNION ALL Select * From #TempTable2; - Select * INTO #TempTable4 From #TempTable3 Where 1=1 "); - if (!string.IsNullOrEmpty(fPaperContract)) { - sql += string.Format(@" AND ContractNumber like '%{0}%'", fPaperContract); + wheresql += string.Format(@" AND a.F_CONTRACTNUMBER like '%{0}%'", fPaperContract); } - sql += string.Format(@";"); + //过滤公司 + string sql = string.Format($@"/*dialect*/ + SELECT A.FID AS FID +INTO #PaiChuGongSi +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.FNAME IN ( '派诺科技(香港)有限公司', '武汉派诺科技发展有限公司', '珠海华夏云联技术有限公司', '广东碳索智控科技有限公司', '武汉派诺科技发展有限公司', '珠海兴诺能源技术有限公司','广东诺瓦数能科技有限公司' ) + OR L.FNAME = '兴诺总' + "); + + //仪表类 + sql += string.Format($@"/*dialect*/ + SELECT A.FBILLNO AS 'AFBILLNO', + 'YB' F_ORDERTYPE, + CONVERT(NVARCHAR, A.FDATE, 23) AS 'Date', --日期 + MONTH(A.FDATE) AS 'Month', --月份 + A.F_CONTRACTNUMBER AS 'ContractNumber', --纸质合同号 + a.FSALEORGID ,A.FID,B.FENTRYID ,'#YiBiaoHeTong' AS TableName +INTO #YiBiaoHeTong +FROM T_SAL_ORDERENTRY B --销售订单明细表 + JOIN T_SAL_ORDER A --销售订单表 + ON A.FID = B.FID + LEFT JOIN T_SAL_ORDERENTRY_F B2 --销售订单明细_F表 + ON B.FENTRYID = B2.FENTRYID + LEFT JOIN + ( + SELECT FNUMBER, + FMASTERID + FROM T_BAS_ASSISTANTDATAENTRY + WHERE FID = '670cc977263353' + AND FDOCUMENTSTATUS = 'C' + AND FFORBIDSTATUS = 'A' + ) D --合同类型#(辅助资料表) + ON A.F_ORDERCATEGORY = D.FMASTERID +WHERE + (D.FNUMBER IN ( 'P', 'E', 'C', 'S' )) + AND B.F_SPECIALOFFER = '1' + AND B.F_YKQC_CHECKBOX_QTR != '1' + AND A.FDOCUMENTSTATUS = 'C' + AND A.FBUSINESSTYPE = 'NORMAL' + AND B.FQTY >= 0 + AND A.FMANUALCLOSE = '0' + AND A.FMANUALCLOSE <> '1' + AND B.FMANUALROWCLOSE <> '1' + AND A.F_CONTRACTNUMBER NOT LIKE 'Z%' + AND A.FID NOT IN + ( + SELECT FID FROM #PaiChuGongSi + ) {wheresql} ; "); + + //系统合同 + sql += string.Format($@"/*dialect*/ + SELECT A.FBILLNO AS 'AFBILLNO', + 'XT' F_ORDERTYPE, + CONVERT(NVARCHAR, A.FDATE, 23) AS 'Date', --日期 + MONTH(A.FDATE) AS 'Month', --月份 + A.F_CONTRACTNUMBER AS 'ContractNumber', --纸质合同号 + a.FSALEORGID ,A.FID,B.FENTRYID ,'#XiTongHeTong' AS TableName +INTO #XiTongHeTong +FROM T_SAL_ORDERENTRY B --销售订单明细表 + JOIN T_SAL_ORDER A --销售订单表 + ON A.FID = B.FID + LEFT JOIN T_SAL_ORDERENTRY_F B2 --销售订单明细_F表 + ON B.FENTRYID = B2.FENTRYID + JOIN T_SAL_ORDERFIN C --销售订单_财务表 + ON A.FID = C.FID + LEFT JOIN + ( + SELECT FNUMBER, + FMASTERID + FROM T_BAS_ASSISTANTDATAENTRY + WHERE FID = '670cc977263353' + AND FDOCUMENTSTATUS = 'C' + AND FFORBIDSTATUS = 'A' + ) D --合同类型#(辅助资料表) + ON A.F_ORDERCATEGORY = D.FMASTERID + +--ES、W、SX、CW、D、CY +WHERE D.FNUMBER NOT IN ( 'P', 'E', 'C', 'S','CS','CW' ) + AND (A.F_SpecialContracts = '是' OR a.F_GROSSMARGIN1='<35%') + AND B.FQTY >= 0 + AND A.FDOCUMENTSTATUS = 'C' + AND A.FBUSINESSTYPE = 'NORMAL' + AND A.FMANUALCLOSE = '0' + AND A.F_CONTRACTNUMBER NOT LIKE 'Z%' + AND A.FMANUALCLOSE <> '1' + AND B.FMANUALROWCLOSE <> '1' + AND A.FID NOT IN + ( + SELECT FID FROM #PaiChuGongSi + ) {wheresql}; "); + + + //兴诺明细的充电桩系统合同CS、CW + sql += $@"/*dialect*/ + SELECT A.FBILLNO AS 'AFBILLNO', + 'CDZ' F_ORDERTYPE, + CONVERT(NVARCHAR, A.FDATE, 23) AS 'Date', --日期 + MONTH(A.FDATE) AS 'Month', --月份 + A.F_CONTRACTNUMBER AS 'ContractNumber', --纸质合同号 + a.FSALEORGID,A.FID,B.FENTRYID ,'#XNChongDianZhuangHeTong' AS TableName +INTO #XNChongDianZhuangHeTong +FROM T_SAL_ORDERENTRY B --销售订单明细表 + JOIN T_SAL_ORDER A --销售订单表 + ON A.FID = B.FID + LEFT JOIN T_SAL_ORDERENTRY_F B2 --销售订单明细_F表 + ON B.FENTRYID = B2.FENTRYID + LEFT JOIN + ( + SELECT FNUMBER, + FMASTERID + FROM T_BAS_ASSISTANTDATAENTRY + WHERE FID = '670cc977263353' + AND FDOCUMENTSTATUS = 'C' + AND FFORBIDSTATUS = 'A' + ) D --合同类型#(辅助资料表) + ON A.F_ORDERCATEGORY = D.FMASTERID + LEFT JOIN + ( + SELECT B.FNAME, + B.FSPECIFICATION, + A.* + FROM T_BD_MATERIAL A + JOIN T_BD_MATERIAL_L B + ON A.FMATERIALID = B.FMATERIALID + WHERE B.FLOCALEID = 2052 + AND A.FDOCUMENTSTATUS = 'C' + AND A.FFORBIDSTATUS = 'A' + ) G --物料表 + ON G.FMATERIALID = B.FMATERIALID +WHERE +(D.FNUMBER IN ('CS','CW' )) + AND B.F_SPECIALOFFER = '1' + AND B.F_YKQC_CHECKBOX_QTR != '1' + AND A.FDOCUMENTSTATUS = 'C' + AND A.FBUSINESSTYPE = 'NORMAL' + AND B.FQTY >= 0 + AND A.FMANUALCLOSE = '0' + AND A.FMANUALCLOSE <> '1' + AND B.FMANUALROWCLOSE <> '1' + AND A.F_CONTRACTNUMBER NOT LIKE 'Z%' + AND A.FID NOT IN + ( + SELECT FID FROM #PaiChuGongSi + ) + AND G.FNUMBER LIKE 'V%' {wheresql} ; "; + + //派诺明细的充电桩系统合同CS、CW + sql += $@"/*dialect*/ + SELECT A.FBILLNO AS 'AFBILLNO', + A.F_ORDERTYPE, + CONVERT(NVARCHAR, A.FDATE, 23) AS 'Date', --日期 + MONTH(A.FDATE) AS 'Month', --月份 + A.F_CONTRACTNUMBER AS 'ContractNumber', --纸质合同号 + a.FSALEORGID ,A.FID,B.FENTRYID ,'#PLChongDianZhuangHeTong' AS TableName +INTO #PLChongDianZhuangHeTong +FROM T_SAL_ORDERENTRY B --销售订单明细表 + JOIN T_SAL_ORDER A --销售订单表 + ON A.FID = B.FID + LEFT JOIN T_SAL_ORDERENTRY_F B2 --销售订单明细_F表 + ON B.FENTRYID = B2.FENTRYID + + LEFT JOIN + ( + SELECT FNUMBER, + FMASTERID + FROM T_BAS_ASSISTANTDATAENTRY + WHERE FID = '670cc977263353' + AND FDOCUMENTSTATUS = 'C' + AND FFORBIDSTATUS = 'A' + ) D --合同类型#(辅助资料表) + ON A.F_ORDERCATEGORY = D.FMASTERID + + + LEFT JOIN + ( + SELECT B.FNAME, + B.FSPECIFICATION, + A.* + FROM T_BD_MATERIAL A + JOIN T_BD_MATERIAL_L B + ON A.FMATERIALID = B.FMATERIALID + WHERE B.FLOCALEID = 2052 + AND A.FDOCUMENTSTATUS = 'C' + AND A.FFORBIDSTATUS = 'A' + ) G --物料表 + ON G.FMATERIALID = B.FMATERIALID +WHERE +(D.FNUMBER IN ('CS','CW' )) + --AND B.F_SPECIALOFFER = '1' + --AND B.F_YKQC_CHECKBOX_QTR != '1' + AND (A.F_SpecialContracts = '是' OR a.F_GROSSMARGIN1='<35%') + AND A.FDOCUMENTSTATUS = 'C' + AND A.FBUSINESSTYPE = 'NORMAL' + AND B.FQTY >= 0 + AND A.FMANUALCLOSE = '0' + AND A.FMANUALCLOSE <> '1' + AND B.FMANUALROWCLOSE <> '1' + AND A.F_CONTRACTNUMBER NOT LIKE 'Z%' + AND A.FID NOT IN + ( + SELECT FID FROM #PaiChuGongSi + ) + AND G.FNUMBER not LIKE 'V%' {wheresql}; "; + + //几个临时表合并 sql += string.Format(@"/*dialect*/ + /*dialect*/ +SELECT * +INTO #TempTable3 +FROM #YiBiaoHeTong +UNION ALL +SELECT * +FROM #XiTongHeTong +UNION ALL +SELECT * +FROM #XNChongDianZhuangHeTong +UNION ALL +SELECT * +FROM #PLChongDianZhuangHeTong ;"); + + if (!string.IsNullOrEmpty(fChanPin)) + { + wheresql += string.Format(@" AND G.FMATeRIALID in ({0})", fChanPin); + } + //组合其他字段的大表 + sql += $@"/*dialect*/ + SELECT AAA.TableName, A.FBILLNO AS 'AFBILLNO', + AAA.F_ORDERTYPE, + CONVERT(NVARCHAR, A.FDATE, 23) AS 'Date', --日期 + MONTH(A.FDATE) AS 'Month', --月份 + E.FNAME AS 'Client', --购货单位 + F.FNAME AS 'Currency', --币别 + ISNULL(E.FDATAVALUE, '') AS 'CreditType', --客户信用类型 + A.F_CONTRACTNUMBER AS 'ContractNumber', --纸质合同号 + ISNULL(G.FSPECIFICATION, '') AS 'SizeModel', --规格型号 + B.FQTY - ISNULL(B3.FRETNOTICEQTY, 0) AS 'Quantity', --数量 + B2.FTAXPRICE AS 'TaxPrice', --实际含税单价 + B2.FALLAMOUNT_LC - ISNULL(ABS(B3.FALLAMOUNT_LC), 0) AS 'AllAmount', --价税合计 + ISNULL(H.FNAME, '') AS 'ProjectName', --项目名称 + ISNULL(H2.FNAME, '') AS 'SalerName', --业务员 + ISNULL(H3.FNAME, '') AS 'SaleDeptName', --部门 + ISNULL(H4.FNAME, '') AS 'Supervisor', --审批人 + H5.FDATAVALUE AS 'SpecialCauseType', --特价原因分类 + A.FCRMSPECIALPRICINGREASON AS 'CRMSpecialCause', --CRM特价原因 + CASE + WHEN AAA.F_ORDERTYPE = 'YB' THEN + B.F_SETTLEMENTP + ELSE + NULL + END AS 'CurrentSettledUpset1', --当期结算价(仪表) + CASE + WHEN AAA.F_ORDERTYPE = 'XT' + AND ROW_NUMBER() OVER (PARTITION BY A.F_CONTRACTNUMBER ORDER BY B.FSEQ) = 1 THEN + CAST(ISNULL(A.F_VRYF_AMOUNT_YRR, 0) AS FLOAT) + ELSE + NULL + END AS 'CurrentSettledUpset2', --当期结算价(系统) + (B2.FTAXPRICE - B.F_SETTLEMENTP) AS 'Difference', --差额(单价-底价) + --P、C、E、S + CASE + WHEN + ( + D.FNUMBER = 'P' + OR D.FNUMBER = 'C' + OR D.FNUMBER = 'E' + OR D.FNUMBER = 'S' + ) THEN + ((B2.FTAXPRICE - B.F_SETTLEMENTP) * B.FQTY) --(仪表) + --ES、W、SX、D、CY + WHEN ( + D.FNUMBER = 'ES' + OR D.FNUMBER = 'W' + OR D.FNUMBER = 'SX' + OR D.FNUMBER = 'D' + OR D.FNUMBER = 'CY' + ) + AND ROW_NUMBER() OVER (PARTITION BY A.F_CONTRACTNUMBER ORDER BY B.FSEQ) = 1 THEN + C.FBILLALLAMOUNT_LC - CAST(ISNULL(A.F_YKQC_TEXT_QTR, 0) AS FLOAT) + --CS、CW + WHEN ( + D.FNUMBER = 'CS' + OR D.FNUMBER = 'CW' + ) + AND A.FSALEORGID = 100303 THEN + ((B2.FTAXPRICE - B.F_SETTLEMENTP) * B.FQTY) + WHEN ( + D.FNUMBER = 'CS' + OR D.FNUMBER = 'CW' + ) + AND A.FSALEORGID != 100303 + AND ROW_NUMBER() OVER (PARTITION BY A.F_CONTRACTNUMBER ORDER BY B.FSEQ) = 1 THEN + C.FBILLALLAMOUNT_LC - CAST(ISNULL(A.F_YKQC_TEXT_QTR, 0) AS FLOAT) + ELSE + NULL + END AS 'TotalSpread', --总价差(终) + C2.FNAME + ',' + TRY_CAST(FLOOR(C2.F_DAY) AS NVARCHAR(MAX)) + '天,' + + TRY_CAST(FLOOR(C2.FRECADVANCERATE) AS NVARCHAR(MAX)) + '%' AS 'PaymentMethods', --付款方式 + CASE + WHEN A.F_ORDERTYPE = 'YB' THEN + '仪表合同' --(仪表) + WHEN A.F_ORDERTYPE = 'XT' THEN --(系统) + (CASE + WHEN ISNULL(A.F_XMYSSJ, '') != '' THEN + CONVERT(NVARCHAR, A.F_XMYSSJ, 23) + WHEN C.FBILLALLAMOUNT_LC - ISNULL(ABS(B3.FBillAllAmount_LC), 0) - ISNULL(H6.FALLAMOUNT_LC, 0) <= 0 THEN + '发货完成' + WHEN C.FBILLALLAMOUNT_LC - ISNULL(ABS(B3.FBillAllAmount_LC), 0) - ISNULL(H6.FALLAMOUNT_LC, 0) = C.FBILLALLAMOUNT_LC + - ISNULL( + ABS(B3.FBillAllAmount_LC), + 0 + ) THEN + '未发货' + ELSE + '部分发货' + END + ) + ELSE + '' + END AS 'ProjectPhase', --项目阶段 + CASE + WHEN ROW_NUMBER() OVER (PARTITION BY A.F_CONTRACTNUMBER ORDER BY B.FSEQ) = 1 THEN + C.FBILLALLAMOUNT_LC - ISNULL(ABS(B3.FBillAllAmount_LC), 0) + ELSE + NULL + END AS 'OrderAllAmount', --订单总额 + CASE + WHEN ROW_NUMBER() OVER (PARTITION BY A.F_CONTRACTNUMBER ORDER BY B.FSEQ) = 1 THEN + C.FBILLALLAMOUNT_LC - ISNULL(ABS(B3.FBillAllAmount_LC), 0) - ISNULL(H6.FALLAMOUNT_LC, 0) + ELSE + NULL + END AS 'NotShipmentsAmount', --未发货金额 + CASE + WHEN CONVERT(NVARCHAR(10), DATEADD(DAY, ISNULL(C2.F_DAY, 0), C2.F_PMSDATE), 23) > GETDATE() + AND C2.FRECADVANCEAMOUNT > C2.FRECAMOUNT + AND ROW_NUMBER() OVER (PARTITION BY A.F_CONTRACTNUMBER ORDER BY B.FSEQ) = 1 THEN + C2.FRECADVANCEAMOUNT - C2.FRECAMOUNT + ELSE + NULL + END AS 'ExpireUnpaidAmount', --到期未付金额 + G.FNUMBER AS 'ProductsCode' --产品长代码 + ,aaa.FSALEORGID,AAA.FENTRYID,aaa.FID + INTO #tempDaBiao + FROM #TempTable3 AAA + INNER JOIN T_SAL_ORDERENTRY B ON AAA.FENTRYID=B.FENTRYID + INNER JOIN T_SAL_ORDER A --销售订单表 + ON A.FID = B.FID + LEFT JOIN T_SAL_ORDERENTRY_F B2 --销售订单明细_F表 + ON B.FENTRYID = B2.FENTRYID + LEFT JOIN + ( + SELECT Aq2.FBillAllAmount_LC, + Aq.* + FROM + ( + SELECT W2.FSID, + W2.FSBILLID, + STRING_AGG(CONVERT(NVARCHAR, W1.FDATE, 23), ',') AS 'FDate', + SUM(W1.FPRICEUNITQTY) AS 'FRETNOTICEQTY', + SUM(W1.FALLAMOUNT_LC) AS 'FALLAMOUNT_LC' + FROM + ( + SELECT q1.FDATE, + q3.FSID, + q2.FALLAMOUNT_LC, + q2.FPRICEUNITQTY + FROM T_SAL_RETURNNOTICE q1 + JOIN T_SAL_RETURNNOTICEENTRY_F q2 + ON q1.FID = q2.FID + JOIN T_SAL_RETURNNOTICEENTRY_LK q3 + ON q2.FENTRYID = q3.FENTRYID + WHERE q1.FDOCUMENTSTATUS = 'C' + AND q1.FCANCELSTATUS = 'A' + AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY' + ) W1 + JOIN T_SAL_ORDERENTRY_LK W2 + ON W1.FSID = W2.FENTRYID + GROUP BY W2.FSID, + W2.FSBILLID + ) Aq + JOIN + ( + SELECT W2.FSBILLID, + STRING_AGG(CONVERT(NVARCHAR, W1.FDATE, 23), ',') AS 'FDate', + SUM(W1.FPRICEUNITQTY) AS 'FRETNOTICEQTY', + SUM(W1.FALLAMOUNT_LC) AS 'FBillAllAmount_LC' + FROM + ( + SELECT q1.FDATE, + q3.FSID, + q2.FALLAMOUNT_LC, + q2.FPRICEUNITQTY + FROM T_SAL_RETURNNOTICE q1 + JOIN T_SAL_RETURNNOTICEENTRY_F q2 + ON q1.FID = q2.FID + JOIN T_SAL_RETURNNOTICEENTRY_LK q3 + ON q2.FENTRYID = q3.FENTRYID + WHERE q1.FDOCUMENTSTATUS = 'C' + AND q1.FCANCELSTATUS = 'A' + AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY' + ) W1 + JOIN T_SAL_ORDERENTRY_LK W2 + ON W1.FSID = W2.FENTRYID + GROUP BY W2.FSBILLID + ) Aq2 + ON Aq.FSBILLID = Aq2.FSBILLID + ) B3 --销售订单-表关联表(销售退货) + ON B.FENTRYID = B3.FSID + JOIN T_SAL_ORDERFIN C --销售订单_财务表 + ON A.FID = C.FID + LEFT JOIN + ( + SELECT q2.FNAME, + q1.* + FROM T_SAL_ORDERPLAN q1 + JOIN + ( + SELECT q2.FNAME, + q1.* + FROM T_BD_RECCONDITION q1 + LEFT JOIN T_BD_RECCONDITION_L q2 + ON q1.FID = q2.FID + WHERE q2.FLOCALEID = 2052 + AND q1.FDOCUMENTSTATUS = 'C' + AND q1.FFORBIDSTATUS = 'A' + ) q2 + ON q1.F_RECCONDITIONID = q2.FID + ) C2 --销售订单_收款计划 + ON A.FID = C2.FID + LEFT JOIN + ( + SELECT FNUMBER, + FMASTERID + FROM T_BAS_ASSISTANTDATAENTRY + WHERE FID = '670cc977263353' + AND FDOCUMENTSTATUS = 'C' + AND FFORBIDSTATUS = 'A' + ) D --合同类型#(辅助资料表) + ON A.F_ORDERCATEGORY = D.FMASTERID + 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 + ) E --客户_L表 + ON A.FCUSTID = E.FCUSTID + LEFT JOIN + (SELECT * FROM T_BD_CURRENCY_L WHERE FLOCALEID = 2052) F --币别表 + ON C.FSETTLECURRID = F.FCURRENCYID + LEFT JOIN + ( + SELECT B.FNAME, + B.FSPECIFICATION, + A.* + FROM T_BD_MATERIAL A + JOIN T_BD_MATERIAL_L B + ON A.FMATERIALID = B.FMATERIALID + WHERE B.FLOCALEID = 2052 + AND A.FDOCUMENTSTATUS = 'C' + AND A.FFORBIDSTATUS = 'A' + ) G --物料表 + ON G.FMATERIALID = B.FMATERIALID + 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' + ) H --工程项目表(预置基础资料1) + ON H.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' + ) H2 --销售员表 + ON A.FSALERID = H2.fid + LEFT JOIN + ( + SELECT q2.FNAME, + q1.* + FROM T_BD_DEPARTMENT q1 + JOIN T_BD_DEPARTMENT_L q2 + ON q1.FDEPTID = q2.FDEPTID + WHERE q2.FLOCALEID = 2052 + AND q1.FDOCUMENTSTATUS = 'C' + AND q1.FFORBIDSTATUS = 'A' + ) H3 --销售部门表 + ON A.FSALEDEPTID = H3.FDEPTID + LEFT JOIN + ( + SELECT q2.FNAME, + q1.* + FROM T_HR_EMPINFO q1 + JOIN T_HR_EMPINFO_L q2 + ON q1.FID = q2.FID + WHERE q2.FLOCALEID = 2052 + AND q1.FDOCUMENTSTATUS = 'C' + AND q1.FFORBIDSTATUS = 'A' + ) H4 --主管#(员工表) + ON A.F_VRYF_BASE_FG2 = H4.FID + LEFT JOIN + ( + SELECT A.FNUMBER, + A.FMASTERID, + B.FDATAVALUE + FROM T_BAS_ASSISTANTDATAENTRY A + JOIN T_BAS_ASSISTANTDATAENTRY_L B + ON A.FENTRYID = B.FENTRYID + WHERE A.FID = '674f073de0bc25' + AND A.FDOCUMENTSTATUS = 'C' + AND A.FFORBIDSTATUS = 'A' + ) H5 + ON H5.FMASTERID = A.FSPECIALRESON + LEFT JOIN + ( + SELECT W2.FSID, + SUM(W1.FALLAMOUNT_LC) AS 'FALLAMOUNT_LC' + FROM + ( + SELECT q2.FALLAMOUNT_LC, + q2.FENTRYID + FROM T_SAL_DELIVERYNOTICE q1 + JOIN T_SAL_DELIVERYNOTICEENTRY_F q2 + ON q1.FID = q2.FID + WHERE q1.FDOCUMENTSTATUS = 'C' + AND q1.FCANCELSTATUS = 'A' + ) W1 + JOIN T_SAL_DELIVERYNOTICEENTRY_LK W2 + ON W1.FENTRYID = W2.FENTRYID + WHERE W2.FSTABLENAME = 'T_SAL_ORDERENTRY' + GROUP BY W2.FSID + ) H6 --发货通知单表 + ON B.FENTRYID = H6.FSID + LEFT JOIN + ( + SELECT W2.FSID, + W1.* + FROM + ( + SELECT B.FALLAMOUNTFOR, + B.FENTRYID + FROM T_AR_RECEIVABLE A + JOIN T_AR_RECEIVABLEENTRY B + ON A.FID = B.FID + WHERE A.FDOCUMENTSTATUS = 'C' + AND B.FORDERNUMBER != '' + AND A.FENDDATE <= GETDATE() + ) W1 + JOIN T_AR_RECEIVABLEENTRY_LK W2 + ON W1.FENTRYID = W2.FENTRYID + WHERE W2.FSTABLENAME = 'T_SAL_ORDERENTRY' + ) H7 + ON B.FENTRYID = H7.FSID {wheresql} ; "; + + + //sql += $@"/*dialect*/ + //Select + //*, + //ROW_NUMBER() OVER (ORDER BY FID DESC,FENTRYID) AS FIDENTITYID + //INTO {tableName} + //From + //(SELECT * FROM #tempDaBiao) A "; + + sql += string.Format($@"/*dialect*/ Select *, - ROW_NUMBER() OVER (ORDER BY ContractNumber,t1.Sort DESC) AS FID, - ROW_NUMBER() OVER (ORDER BY ContractNumber,t1.Sort DESC) AS FIDENTITYID - INTO {0} + ROW_NUMBER() OVER (ORDER BY FID DESC,FENTRYID) AS FIDENTITYID + INTO {tableName} From - (SELECT *,1 Sort FROM #TempTable4 + (SELECT [TableName] + ,[AFBILLNO] + ,[F_ORDERTYPE] + ,[Date] + ,[Month] + ,[Client] + ,[Currency] + ,[CreditType] + ,[ContractNumber] + ,[SizeModel] + ,[Quantity] + ,[TaxPrice] + ,[AllAmount] + ,[ProjectName] + ,[SalerName] + ,[SaleDeptName] + ,[Supervisor] + ,[SpecialCauseType] + ,[CRMSpecialCause] + ,[CurrentSettledUpset1] + ,[CurrentSettledUpset2] + ,[Difference] + ,[TotalSpread] + ,[PaymentMethods] + ,[ProjectPhase] + ,[OrderAllAmount] + ,[NotShipmentsAmount] + ,[ExpireUnpaidAmount] + ,[ProductsCode] + ,[FSALEORGID] + ,[FENTRYID] + ,[FID],1 Sort FROM #tempDaBiao UNION ALL - SELECT + SELECT '', '', '', '合计:', @@ -707,10 +840,10 @@ namespace Pilot.Report.Exploitation.SpecialDetails SUM(t1.OrderAllAmount), SUM(t1.NotShipmentsAmount), SUM(t1.ExpireUnpaidAmount), - '', + '',0,0,999999, 0 Sort - FROM #TempTable4 t1) t1 - order by Sort desc", tableName); + FROM #tempDaBiao t1) t1 + order by Sort desc,fid desc ,FIDENTITYID ", tableName); Loghelp.Log(sql); DBUtils.Execute(this.Context, sql); } diff --git a/特价明细表SQL22.sql b/特价明细表SQL22.sql index 94e9e8e..8f79b5c 100644 --- a/特价明细表SQL22.sql +++ b/特价明细表SQL22.sql @@ -253,11 +253,7 @@ FROM #PLChongDianZhuangHeTong --SELECT DISTINCT TableName FROM #TempTable3 - -SELECT * -INTO #TempTable4 -FROM #TempTable3 -WHERE 1 = 1; + /*dialect*/ SELECT *, @@ -267,7 +263,7 @@ FROM ( SELECT *, 1 Sort - FROM #TempTable4 + FROM #TempTable3 --UNION ALL --SELECT --'', @@ -424,9 +420,9 @@ SELECT AAA.TableName, A.FBILLNO AS 'AFBILLNO', NULL END AS 'ExpireUnpaidAmount', --δ G.FNUMBER AS 'ProductsCode' --Ʒ - ,aaa.FSALEORGID - INTO #TMP5CAD9BB84D8011F0AD6E90F6533 - FROM #TMP55555 AAA + ,aaa.FSALEORGID,AAA.FENTRYID,aaa.FID + INTO #tempDaBiao + FROM #TempTable3 AAA INNER JOIN T_SAL_ORDERENTRY B ON AAA.FENTRYID=B.FENTRYID INNER JOIN T_SAL_ORDER A --۶ ON A.FID = B.FID @@ -667,7 +663,7 @@ SELECT AAA.TableName, A.FBILLNO AS 'AFBILLNO', ) H7 ON B.FENTRYID = H7.FSID - SELECT * FROM #TMP5CAD9BB84D8011F0AD6E90F6533 aaa + SELECT * FROM #tempDaBiao aaa WHERE AAA.ContractNumber='CS202504280041' AND AAA.FSALEORGID=100302 ---DROP TABLE #PaiChuGongSi , #YiBiaoHeTong , #XiTongHeTong ,#TempTable3, #TempTable4 ,#TMP5CAD9BB84D8011F0AD6E90F6533,#XNChongDianZhuangHeTong,#PLChongDianZhuangHeTong,#TMP55555 \ No newline at end of file +--DROP TABLE #PaiChuGongSi , #YiBiaoHeTong , #XiTongHeTong ,#TempTable3, #TempTable4 ,#tempDaBiao,#XNChongDianZhuangHeTong,#PLChongDianZhuangHeTong,#TMP55555 \ No newline at end of file