719 lines
35 KiB
C#
719 lines
35 KiB
C#
![]() |
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;
|
|||
|
|
|||
|
namespace Pilot.Report.Exploitation.SpecialDetails
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 特价明细报表
|
|||
|
/// </summary>
|
|||
|
[Description("【列表插件】特价明细报表【报表】"), HotUpdate]
|
|||
|
public class SpecialDetailsReport : SysReportBaseService
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 初始化
|
|||
|
/// </summary>
|
|||
|
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<DecimalControlField>
|
|||
|
{
|
|||
|
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;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 报表列表头
|
|||
|
/// </summary>
|
|||
|
/// <param name="filter"></param>
|
|||
|
/// <returns></returns>
|
|||
|
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;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 显示报表数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="filter"></param>
|
|||
|
/// <param name="tableName"></param>
|
|||
|
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 * 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-ISNULL(ABS(B3.FALLAMOUNT),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 - 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 - 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-ISNULL(ABS(B3.FBillAllAmount),0)-ISNULL(H6.FALLAMOUNT,0) <=0 THEN '发货完成'
|
|||
|
WHEN C.FBillAllAmount-ISNULL(ABS(B3.FBillAllAmount),0)-ISNULL(H6.FALLAMOUNT,0) = C.FBillAllAmount-ISNULL(ABS(B3.FBillAllAmount),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-ISNULL(ABS(B3.FBillAllAmount),0) ELSE null
|
|||
|
END as 'OrderAllAmount', --订单总额
|
|||
|
CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 THEN
|
|||
|
C.FBillAllAmount-ISNULL(ABS(B3.FBillAllAmount),0)-ISNULL(H6.FALLAMOUNT,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,Aq.* FROM
|
|||
|
(SELECT W2.FSID,W2.FSBILLID,STRING_AGG(CONVERT(nvarchar,W1.FDATE, 23), ',') as 'FDate',SUM(W1.FPriceUnitQty) as 'FRETNOTICEQTY',SUM(W1.FALLAMOUNT) as 'FAllAmount' FROM
|
|||
|
(Select q1.FDATE,q3.FSID,q2.FAllAmount,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) as 'FBillAllAmount' FROM
|
|||
|
(Select q1.FDATE,q3.FSID,q2.FAllAmount,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) as 'FALLAMOUNT' FROM
|
|||
|
(Select q2.FAllAmount,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)");
|
|||
|
|
|||
|
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 A.FDate >= '{0}'", fDate);
|
|||
|
}
|
|||
|
if (!string.IsNullOrEmpty(fEndDate))
|
|||
|
{
|
|||
|
sql += string.Format(@" AND A.FDate <= '{0}'", fEndDate);
|
|||
|
}
|
|||
|
|
|||
|
sql += string.Format(@";");
|
|||
|
|
|||
|
sql += string.Format(@"/*dialect*/
|
|||
|
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-ISNULL(ABS(B3.FALLAMOUNT),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 - 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 - 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-ISNULL(ABS(B3.FBillAllAmount),0)-ISNULL(H6.FALLAMOUNT,0) <=0 THEN '发货完成'
|
|||
|
WHEN C.FBillAllAmount-ISNULL(ABS(B3.FBillAllAmount),0)-ISNULL(H6.FALLAMOUNT,0) = C.FBillAllAmount-ISNULL(ABS(B3.FBillAllAmount),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-ISNULL(ABS(B3.FBillAllAmount),0) ELSE null
|
|||
|
END as 'OrderAllAmount', --订单总额
|
|||
|
CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.F_contractnumber ORDER BY B.FSEQ) = 1 THEN
|
|||
|
C.FBillAllAmount-ISNULL(ABS(B3.FBillAllAmount),0)-ISNULL(H6.FALLAMOUNT,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,Aq.* FROM
|
|||
|
(SELECT W2.FSID,W2.FSBILLID,STRING_AGG(CONVERT(nvarchar,W1.FDATE, 23), ',') as 'FDate',SUM(W1.FPriceUnitQty) as 'FRETNOTICEQTY',SUM(W1.FALLAMOUNT) as 'FAllAmount' FROM
|
|||
|
(Select q1.FDATE,q3.FSID,q2.FAllAmount,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) as 'FBillAllAmount' FROM
|
|||
|
(Select q1.FDATE,q3.FSID,q2.FAllAmount,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) as 'FALLAMOUNT' FROM
|
|||
|
(Select q2.FAllAmount,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 AND B.FQTY >= 0
|
|||
|
AND A.FDocumentStatus = 'C' AND A.FBusinessType = 'NORMAL' AND A.FMANUALCLOSE = '0'
|
|||
|
AND A.FID in (Select * From #TABLEXYX)");
|
|||
|
|
|||
|
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 A.FAPPROVEDATE >= '{0}'", fDate);
|
|||
|
}
|
|||
|
if (!string.IsNullOrEmpty(fEndDate))
|
|||
|
{
|
|||
|
sql += string.Format(@" AND A.FAPPROVEDATE <= '{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);
|
|||
|
|
|||
|
DBUtils.Execute(this.Context, sql);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 获取前端组件转换过滤条件
|
|||
|
/// </summary>
|
|||
|
/// <param name="filter"></param>
|
|||
|
/// <returns></returns>
|
|||
|
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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|