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