1104 lines
52 KiB
C#
Raw Normal View History

2025-03-14 10:00:24 +08:00
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.PublicClass;
2025-03-17 19:04:06 +08:00
using Kingdee.BOS.Log;
using Pilot.Report.Exploitation.Common;
2025-03-14 10:00:24 +08:00
namespace Pilot.Report.Exploitation.AnnualSalesPaymentSum
{
[Description("【列表插件】年度销售额&回款额汇总【报表】"), HotUpdate]
public class AnnualSalesPaymentSumReport: SysReportBaseService
{
private string tableNameView = EnvironmentTEST.tableNameView_TEST;
/// <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("Salesperson", new LocaleValue("销售人员"), SqlStorageType.Sqlvarchar);
header.AddChild("XOneMonth", new LocaleValue("1月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HOneMonth", new LocaleValue("1月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XTwoMonth", new LocaleValue("2月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HTwoMonth", new LocaleValue("2月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XThreeMonth", new LocaleValue("3月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HThreeMonth", new LocaleValue("3月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XFourMonth", new LocaleValue("4月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HFourMonth", new LocaleValue("4月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XFiveMonth", new LocaleValue("5月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HFiveMonth", new LocaleValue("5月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XSixMonth", new LocaleValue("6月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HSixMonth", new LocaleValue("6月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XSevenMonth", new LocaleValue("7月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HSevenMonth", new LocaleValue("7月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XEightMonth", new LocaleValue("8月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HEightMonth", new LocaleValue("8月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XNineMonth", new LocaleValue("9月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HNineMonth", new LocaleValue("9月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XTenMonth", new LocaleValue("10月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HTenMonth", new LocaleValue("10月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XElevenMonth", new LocaleValue("11月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HElevenMonth", new LocaleValue("11月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XTwelveMonth", new LocaleValue("12月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("HTwelveMonth", new LocaleValue("12月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("XCumulative", new LocaleValue("累计销售额"), SqlStorageType.SqlDecimal);
header.AddChild("HCumulative", new LocaleValue("累计回款额"), SqlStorageType.SqlDecimal);
header.AddChild("UsualAlterAmount", new LocaleValue("往年订单变更金额"), SqlStorageType.SqlDecimal);
header.AddChild("ZhuhaiPilot", new LocaleValue("珠海派诺业绩合计"), SqlStorageType.SqlDecimal);
header.AddChild("SiNO", new LocaleValue("兴诺业绩"), SqlStorageType.SqlDecimal);
header.AddChild("SiNOUsualAlter", new LocaleValue("兴诺往年订单变更"), SqlStorageType.SqlDecimal);
header.AddChild("WuhanPilotThisYear", new LocaleValue("武汉派诺-当年业绩"), SqlStorageType.SqlDecimal);
header.AddChild("WuhanPilotUsualAlter", new LocaleValue("武汉派诺-往年订单变更"), SqlStorageType.SqlDecimal);
header.AddChild("Discovery", new LocaleValue("碳索业绩"), SqlStorageType.SqlDecimal);
header.AddChild("HongKongPilot", new LocaleValue("香港派诺业绩"), SqlStorageType.SqlDecimal);
header.AddChild("HuaXiaYunLian", new LocaleValue("华夏云联业绩"), SqlStorageType.SqlDecimal);
header.AddChild("PilotSumAmount", new LocaleValue("派诺集团最终业绩合计金额"), SqlStorageType.SqlDecimal);
header.AddChild("SBU", new LocaleValue("SBU"), SqlStorageType.Sqlvarchar);
header.AddChild("DetailArea", 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;
// 销售员列表
var salesperson = (customFilter["F_Salesperson"] as DynamicObjectCollection)?.Select(n => (n["F_Salesperson"] as DynamicObject)["msterID"].ToString()).ToList();
// 销售员
var salespersonString = salesperson == null ? "" : string.Join(",", salesperson);
// 组织列表
var organizationList = (customFilter["FZuZhi"] as DynamicObjectCollection)?.Select(n => (n["FZuZhi"] as DynamicObject)["ID"].ToString()).ToList();
// 组织
var organization = organizationList == null ? "" : (string.Join(",", organizationList));
2025-03-20 11:58:03 +08:00
//// 开始日期
//string fStrartDate = customFilter["FStrartDate"]?.ToString();
2025-03-14 10:00:24 +08:00
2025-03-20 11:58:03 +08:00
//// 结束日期
//string fEndDate = customFilter["FEndDate"]?.ToString();
2025-03-14 10:00:24 +08:00
2025-03-20 11:58:03 +08:00
//// 审核开始日期
//string fSDate = customFilter["FSDate"]?.ToString();
2025-03-14 10:00:24 +08:00
2025-03-20 11:58:03 +08:00
//// 审核结束日期
//string fEDate = customFilter["FEDate"]?.ToString();
2025-03-14 10:00:24 +08:00
// 下单时间
string fDate = customFilter["F_Date"]?.ToString();
int year = Convert.ToInt32(fDate.Split('-')[0]);
base.BuilderReportSqlAndTempTable(filter, tableName);
string sql = string.Format(@"/*dialect*/
Select
CASE WHEN ISNULL(W4.FNAME,'') = '' THEN W1.FNAME
ELSE W4.FNAME END as 'Salesperson', --
CASE WHEN Month(D.FDATE)= 1 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 1 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XOneMonth', -->
CASE WHEN MONTH(D.FDATE) = 1 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HOneMonth', -->
CASE WHEN Month(D.FDATE)= 2 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 2 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XTwoMonth', -->
CASE WHEN MONTH(D.FDATE) = 2 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HTwoMonth', -->
CASE WHEN Month(D.FDATE)= 3 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 3 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XThreeMonth', -->
CASE WHEN MONTH(D.FDATE) = 3 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HThreeMonth', -->
CASE WHEN Month(D.FDATE)= 4 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 4 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XFourMonth', -->
CASE WHEN MONTH(D.FDATE) = 4 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HFourMonth', -->
CASE WHEN Month(D.FDATE)= 5 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 5 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XFiveMonth', -->
CASE WHEN MONTH(D.FDATE) = 5 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HFiveMonth', -->
CASE WHEN Month(D.FDATE)= 6 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 6 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XSixMonth', -->
CASE WHEN MONTH(D.FDATE) = 6 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HSixMonth', -->
CASE WHEN Month(D.FDATE)= 7 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 7 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XSevenMonth', -->
CASE WHEN MONTH(D.FDATE) = 7 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HSevenMonth', -->
CASE WHEN Month(D.FDATE)= 8 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 8 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XEightMonth', -->
CASE WHEN MONTH(D.FDATE) = 8 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HEightMonth', -->
CASE WHEN Month(D.FDATE)= 9 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 9 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XNineMonth', -->
CASE WHEN MONTH(D.FDATE) = 9 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HNineMonth', -->
CASE WHEN Month(D.FDATE)= 10 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 10 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XTenMonth', -->
CASE WHEN MONTH(D.FDATE) = 10 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HTenMonth', -->
CASE WHEN Month(D.FDATE)= 11 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 11 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XElevenMonth', -->
CASE WHEN MONTH(D.FDATE) = 11 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HElevenMonth', -->
CASE WHEN Month(D.FDATE)= 12 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN Month(D.FDATE)= 12 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XTwelveMonth', -->
CASE WHEN MONTH(D.FDATE) = 12 AND YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HTwelveMonth', -->
CASE WHEN YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'XCumulative', -->
CASE WHEN YEAR(D.FDATE)= {0}
THEN ISNULL(E.FALLAMOUNT,0)
ELSE 0
END as 'HCumulative', -->
CASE WHEN YEAR(D.FDATE) < {0} AND D.FSalerId = D.FSALERID
THEN
ISNULL(((SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MAX(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO)
-
(SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MIN(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO)),0)
ELSE 0
END as 'UsualAlterAmount', -->
CASE WHEN D.FSaleOrgId = 100302 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'ZhuhaiPilot', -->
CASE WHEN D.FSaleOrgId = 100303 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'SiNO', -->
CASE WHEN YEAR(D.FDATE) < {0} AND D.FSalerId = D.FSALERID AND D.FSaleOrgId = 100303 --
THEN
ISNULL(((SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MAX(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO)
-
(SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MIN(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO)),0)
ELSE 0
END as 'SiNOUsualAlter', -->
CASE WHEN D.FSaleOrgId = 100305 AND YEAR(D.FDATE) = {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'WuhanPilotThisYear', --> -
CASE WHEN YEAR(D.FDATE) < {0} AND D.FSalerId = D.FSALERID AND D.FSaleOrgId = 100305 --
THEN
ISNULL(((SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MAX(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO)
-
(SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MIN(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO)),0)
ELSE 0
END as 'WuhanPilotUsualAlter', --> -
CASE WHEN D.FSaleOrgId = 438223 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'Discovery', -->
CASE WHEN D.FSaleOrgId = 438224 AND YEAR(D.FDATE) = {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'HongKongPilot', -->
CASE WHEN D.FSaleOrgId = 533896 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'HuaXiaYunLian', -->
CASE WHEN ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)
WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)
ELSE 0
END as 'PilotSumAmount', -->
ISNULL(A.,'') as 'SBU',
ISNULL(A.,'') as 'DetailArea'
INTO #TempTable1
From
T_SAL_ORDER D --
LEFT JOIN T_SAL_ORDERFIN DD on D.FID = DD.FID
LEFT JOIN
V_BD_SALESMAN_L W1 on W1.fid = D.FSALERID
LEFT JOIN
T_PerformanceSharing W2 on W2.FSOURCEBILLNO = D.FBILLNO
LEFT JOIN
T_PerformanceSharingEntry W3 on W2.FID = W3.FID
LEFT JOIN
V_BD_SALESMAN_L W4 on W3.FSALEID = W4.fid
LEFT JOIN
ERPTOHR.HYHRV3.dbo.v_erp_empinfo A on W1.FNAME = A.
LEFT JOIN
(Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8 --
on W8.FENTRYID = D.F_ORDERCATEGORY
LEFT JOIN
(Select
a1.FORDERNUMBER,
SUM(a1.FALLAMOUNT) as 'FALLAMOUNT'
From
T_AR_RECEIVABLEENTRY a1
JOIN
T_AR_RECEIVABLE a2
on a1.FID = a2.FID
Where a1.FORDERNUMBER != '' AND a2.FSETACCOUNTTYPE = 3
GROUP BY a1.FORDERNUMBER) E
on D.FBILLNO = E.FORDERNUMBER
--
Where D.FDocumentStatus = 'C' AND W8.FNumber != 'Z' --AND D.FID in (Select * From #TABLEXYX)
", year, year - 1, tableNameView);
if (!string.IsNullOrEmpty(salespersonString))
{
sql += string.Format(@" AND (W3.FSALEID in ({0}) or D.FSALERID in ({0}))", salespersonString);
}
if (!string.IsNullOrEmpty(organization))
{
sql += string.Format(@" AND D.FSALEORGID in ({0})", organization);
}
2025-03-20 11:58:03 +08:00
//if (!string.IsNullOrEmpty(fStrartDate))
//{
// sql += string.Format(@" AND D.FDate >= '{0}'", fStrartDate);
//}
//if (!string.IsNullOrEmpty(fEndDate))
//{
// sql += string.Format(@" AND D.FDate <= '{0}'", fEndDate);
//}
2025-03-14 10:00:24 +08:00
sql += string.Format(@";");
sql += string.Format(@"/*dialect*/
Select
Salesperson,
ISNULL(SUM(XOneMonth),0) as 'XOneMonth',
ISNULL(SUM(HOneMonth),0) as 'HOneMonth',
ISNULL(SUM(XTwoMonth),0) as 'XTwoMonth',
ISNULL(SUM(HTwoMonth),0) as 'HTwoMonth',
ISNULL(SUM(XThreeMonth),0) as 'XThreeMonth',
ISNULL(SUM(HThreeMonth),0) as 'HThreeMonth',
ISNULL(SUM(XFourMonth),0) as 'XFourMonth',
ISNULL(SUM(HFourMonth),0) as 'HFourMonth',
ISNULL(SUM(XFiveMonth),0) as 'XFiveMonth',
ISNULL(SUM(HFiveMonth),0) as 'HFiveMonth',
ISNULL(SUM(XSixMonth),0) as 'XSixMonth',
ISNULL(SUM(HSixMonth),0) as 'HSixMonth',
ISNULL(SUM(XSevenMonth),0) as 'XSevenMonth',
ISNULL(SUM(HSevenMonth),0) as 'HSevenMonth',
ISNULL(SUM(XEightMonth),0) as 'XEightMonth',
ISNULL(SUM(HEightMonth),0) as 'HEightMonth',
ISNULL(SUM(XNineMonth),0) as 'XNineMonth',
ISNULL(SUM(HNineMonth),0) as 'HNineMonth',
ISNULL(SUM(XTenMonth),0) as 'XTenMonth',
ISNULL(SUM(HTenMonth),0) as 'HTenMonth',
ISNULL(SUM(XElevenMonth),0) as 'XElevenMonth',
ISNULL(SUM(HElevenMonth),0) as 'HElevenMonth',
ISNULL(SUM(XTwelveMonth),0) as 'XTwelveMonth',
ISNULL(SUM(HTwelveMonth),0) as 'HTwelveMonth',
ISNULL(SUM(XCumulative),0) as 'XCumulative',
ISNULL(SUM(HCumulative),0) as 'HCumulative',
ISNULL(SUM(UsualAlterAmount),0) as 'UsualAlterAmount',
ISNULL(SUM(ZhuhaiPilot),0) as 'ZhuhaiPilot',
ISNULL(SUM(SiNO),0) as 'SiNO',
ISNULL(SUM(SiNOUsualAlter),0) as 'SiNOUsualAlter',
ISNULL(SUM(WuhanPilotThisYear),0) as 'WuhanPilotThisYear',
ISNULL(SUM(WuhanPilotUsualAlter),0) as 'WuhanPilotUsualAlter',
ISNULL(SUM(Discovery),0) as 'Discovery',
ISNULL(SUM(HongKongPilot),0) as 'HongKongPilot',
ISNULL(SUM(HuaXiaYunLian),0) as 'HuaXiaYunLian',
ISNULL(SUM(PilotSumAmount),0) as 'PilotSumAmount',
SBU,
DetailArea,
0 Sort
Into #TempTable2
From
#TempTable1
Group by Salesperson,SBU,DetailArea;");
sql += string.Format(@"/*dialect*/
Select
*
INTO #TempTable3
From (SELECT * FROM #TempTable2
UNION ALL
Select
(t1.SBU+''),
ISNULL(SUM(t1.XOneMonth),0),
ISNULL(SUM(t1.HOneMonth),0),
ISNULL(SUM(t1.XTwoMonth),0),
ISNULL(SUM(t1.HTwoMonth),0),
ISNULL(SUM(t1.XThreeMonth),0),
ISNULL(SUM(t1.HThreeMonth),0),
ISNULL(SUM(t1.XFourMonth),0),
ISNULL(SUM(t1.HFourMonth),0),
ISNULL(SUM(t1.XFiveMonth),0),
ISNULL(SUM(t1.HFiveMonth),0),
ISNULL(SUM(t1.XSixMonth),0),
ISNULL(SUM(t1.HSixMonth),0),
ISNULL(SUM(t1.XSevenMonth),0),
ISNULL(SUM(t1.HSevenMonth),0),
ISNULL(SUM(t1.XEightMonth),0),
ISNULL(SUM(t1.HEightMonth),0),
ISNULL(SUM(t1.XNineMonth),0),
ISNULL(SUM(t1.HNineMonth),0),
ISNULL(SUM(t1.XTenMonth),0),
ISNULL(SUM(t1.HTenMonth),0),
ISNULL(SUM(t1.XElevenMonth),0),
ISNULL(SUM(t1.HElevenMonth),0),
ISNULL(SUM(t1.XTwelveMonth),0),
ISNULL(SUM(t1.HTwelveMonth),0),
ISNULL(SUM(t1.XCumulative),0),
ISNULL(SUM(t1.HCumulative),0),
ISNULL(SUM(t1.UsualAlterAmount),0),
ISNULL(SUM(t1.ZhuhaiPilot),0),
ISNULL(SUM(t1.SiNO),0),
ISNULL(SUM(t1.SiNOUsualAlter),0),
ISNULL(SUM(t1.WuhanPilotThisYear),0),
ISNULL(SUM(t1.WuhanPilotUsualAlter),0),
ISNULL(SUM(t1.Discovery),0),
ISNULL(SUM(t1.HongKongPilot),0),
ISNULL(SUM(t1.HuaXiaYunLian),0),
ISNULL(SUM(t1.PilotSumAmount),0),
t1.SBU,
'',
1 Sort
From #TempTable2 t1 GROUP BY t1.SBU) t1
ORDER BY t1.SBU,Sort;
SELECT
*
INTO #TempTable4
FROM #TempTable3
UNION ALL
Select
'+++EMT/+线++-' as 'Salesperson',
ISNULL(SUM(XOneMonth),0) as 'XOneMonth',
ISNULL(SUM(HOneMonth),0) as 'HOneMonth',
ISNULL(SUM(XTwoMonth),0) as 'XTwoMonth',
ISNULL(SUM(HTwoMonth),0) as 'HTwoMonth',
ISNULL(SUM(XThreeMonth),0) as 'XThreeMonth',
ISNULL(SUM(HThreeMonth),0) as 'HThreeMonth',
ISNULL(SUM(XFourMonth),0) as 'XFourMonth',
ISNULL(SUM(HFourMonth),0) as 'HFourMonth',
ISNULL(SUM(XFiveMonth),0) as 'XFiveMonth',
ISNULL(SUM(HFiveMonth),0) as 'HFiveMonth',
ISNULL(SUM(XSixMonth),0) as 'XSixMonth',
ISNULL(SUM(HSixMonth),0) as 'HSixMonth',
ISNULL(SUM(XSevenMonth),0) as 'XSevenMonth',
ISNULL(SUM(HSevenMonth),0) as 'HSevenMonth',
ISNULL(SUM(XEightMonth),0) as 'XEightMonth',
ISNULL(SUM(HEightMonth),0) as 'HEightMonth',
ISNULL(SUM(XNineMonth),0) as 'XNineMonth',
ISNULL(SUM(HNineMonth),0) as 'HNineMonth',
ISNULL(SUM(XTenMonth),0) as 'XTenMonth',
ISNULL(SUM(HTenMonth),0) as 'HTenMonth',
ISNULL(SUM(XElevenMonth),0) as 'XElevenMonth',
ISNULL(SUM(HElevenMonth),0) as 'HElevenMonth',
ISNULL(SUM(XTwelveMonth),0) as 'XTwelveMonth',
ISNULL(SUM(HTwelveMonth),0) as 'HTwelveMonth',
ISNULL(SUM(XCumulative),0) as 'XCumulative',
ISNULL(SUM(HCumulative),0) as 'HCumulative',
ISNULL(SUM(UsualAlterAmount),0) as 'UsualAlterAmount',
ISNULL(SUM(ZhuhaiPilot),0) as 'ZhuhaiPilot',
ISNULL(SUM(SiNO),0) as 'SiNO',
ISNULL(SUM(SiNOUsualAlter),0) as 'SiNOUsualAlter',
ISNULL(SUM(WuhanPilotThisYear),0) as 'WuhanPilotThisYear',
ISNULL(SUM(WuhanPilotUsualAlter),0) as 'WuhanPilotUsualAlter',
ISNULL(SUM(Discovery),0) as 'Discovery',
ISNULL(SUM(HongKongPilot),0) as 'HongKongPilot',
ISNULL(SUM(HuaXiaYunLian),0) as 'HuaXiaYunLian',
ISNULL(SUM(PilotSumAmount),0) as 'PilotSumAmount',
'',
'',
1 Sort
From
#TempTable2
Where SBU in ('','','','EMT/','线','','')
UNION ALL
Select
'线+SBU++++EMT团队+线+++' as 'Salesperson',
ISNULL(SUM(XOneMonth),0) as 'XOneMonth',
ISNULL(SUM(HOneMonth),0) as 'HOneMonth',
ISNULL(SUM(XTwoMonth),0) as 'XTwoMonth',
ISNULL(SUM(HTwoMonth),0) as 'HTwoMonth',
ISNULL(SUM(XThreeMonth),0) as 'XThreeMonth',
ISNULL(SUM(HThreeMonth),0) as 'HThreeMonth',
ISNULL(SUM(XFourMonth),0) as 'XFourMonth',
ISNULL(SUM(HFourMonth),0) as 'HFourMonth',
ISNULL(SUM(XFiveMonth),0) as 'XFiveMonth',
ISNULL(SUM(HFiveMonth),0) as 'HFiveMonth',
ISNULL(SUM(XSixMonth),0) as 'XSixMonth',
ISNULL(SUM(HSixMonth),0) as 'HSixMonth',
ISNULL(SUM(XSevenMonth),0) as 'XSevenMonth',
ISNULL(SUM(HSevenMonth),0) as 'HSevenMonth',
ISNULL(SUM(XEightMonth),0) as 'XEightMonth',
ISNULL(SUM(HEightMonth),0) as 'HEightMonth',
ISNULL(SUM(XNineMonth),0) as 'XNineMonth',
ISNULL(SUM(HNineMonth),0) as 'HNineMonth',
ISNULL(SUM(XTenMonth),0) as 'XTenMonth',
ISNULL(SUM(HTenMonth),0) as 'HTenMonth',
ISNULL(SUM(XElevenMonth),0) as 'XElevenMonth',
ISNULL(SUM(HElevenMonth),0) as 'HElevenMonth',
ISNULL(SUM(XTwelveMonth),0) as 'XTwelveMonth',
ISNULL(SUM(HTwelveMonth),0) as 'HTwelveMonth',
ISNULL(SUM(XCumulative),0) as 'XCumulative',
ISNULL(SUM(HCumulative),0) as 'HCumulative',
ISNULL(SUM(UsualAlterAmount),0) as 'UsualAlterAmount',
ISNULL(SUM(ZhuhaiPilot),0) as 'ZhuhaiPilot',
ISNULL(SUM(SiNO),0) as 'SiNO',
ISNULL(SUM(SiNOUsualAlter),0) as 'SiNOUsualAlter',
ISNULL(SUM(WuhanPilotThisYear),0) as 'WuhanPilotThisYear',
ISNULL(SUM(WuhanPilotUsualAlter),0) as 'WuhanPilotUsualAlter',
ISNULL(SUM(Discovery),0) as 'Discovery',
ISNULL(SUM(HongKongPilot),0) as 'HongKongPilot',
ISNULL(SUM(HuaXiaYunLian),0) as 'HuaXiaYunLian',
ISNULL(SUM(PilotSumAmount),0) as 'PilotSumAmount',
'',
'',
2 Sort
From
#TempTable2;");
sql += string.Format(@"/*dialect*/
Select
B.FNAME,
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=1 AND YEAR(A.FDATE)={0}),0)
as 'XOneMonth', -->
CASE WHEN MONTH(A.FDATE) = 1
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HOneMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=2 AND YEAR(A.FDATE)={0}),0)
as 'XTwoMonth', -->
CASE WHEN MONTH(A.FDATE) = 2
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HTwoMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=3 AND YEAR(A.FDATE)={0}),0)
as 'XThreeMonth', -->
CASE WHEN MONTH(A.FDATE) = 3
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HThreeMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=4 AND YEAR(A.FDATE)={0}),0)
as 'XFourMonth', -->
CASE WHEN MONTH(A.FDATE) = 4
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HFourMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=5 AND YEAR(A.FDATE)={0}),0)
as 'XFiveMonth', -->
CASE WHEN MONTH(A.FDATE) = 5
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HFiveMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=6 AND YEAR(A.FDATE)={0}),0)
as 'XSixMonth', -->
CASE WHEN MONTH(A.FDATE) = 6
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HSixMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=7 AND YEAR(A.FDATE)={0}),0)
as 'XSevenMonth', -->
CASE WHEN MONTH(A.FDATE) = 7
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HSevenMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=8 AND YEAR(A.FDATE)={0}),0)
as 'XEightMonth', -->
CASE WHEN MONTH(A.FDATE) = 8
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HEightMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=9 AND YEAR(A.FDATE)={0}),0)
as 'XNineMonth', -->
CASE WHEN MONTH(A.FDATE) = 9
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HNineMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=10 AND YEAR(A.FDATE)={0}),0)
as 'XTenMonth', -->
CASE WHEN MONTH(A.FDATE) = 10
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HTenMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=11 AND YEAR(A.FDATE)={0}),0)
as 'XElevenMonth', -->
CASE WHEN MONTH(A.FDATE) = 11
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HElevenMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND Month(A.FDATE)=12 AND YEAR(A.FDATE)={0}),0)
as 'XTwelveMonth', -->
CASE WHEN MONTH(A.FDATE) = 12
THEN ISNULL(C.FALLAMOUNT,0)
ELSE 0
END as 'HTwelveMonth', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND YEAR(A.FDATE)={0}),0)
as 'XCumulative', -->
ISNULL(C.FALLAMOUNT,0) as 'HCumulative', -->
CASE WHEN YEAR(A.FDATE) < YEAR(GETDATE())
THEN
ISNULL(((SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MAX(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO)
-
(SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MIN(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO)),0)
ELSE 0
END as 'UsualAlterAmount', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND A.FSaleOrgId = 100302),0)
as 'ZhuhaiPilot', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND A.FSaleOrgId = 100303),0)
as 'SiNO', -->
CASE WHEN YEAR(A.FDATE) < YEAR(GETDATE()) AND A.FSaleOrgId = 100303 --
THEN
ISNULL(((SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MAX(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO)
-
(SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MIN(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO)),0)
ELSE 0
END as 'SiNOUsualAlter', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND A.FSaleOrgId = 100305),0)
as 'WuhanPilotThisYear', --> -
CASE WHEN YEAR(A.FDATE) < YEAR(GETDATE()) AND A.FSaleOrgId = 100305 --
THEN
ISNULL(((SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MAX(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO)
-
(SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MIN(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = A.FBILLNO)),0)
ELSE 0
END as 'WuhanPilotUsualAlter', --> -
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND A.FSaleOrgId = 438223),0)
as 'Discovery', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND A.FSaleOrgId = 438224),0)
as 'HongKongPilot', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID AND A.FSaleOrgId = 533896),0)
as 'HuaXiaYunLian', -->
ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C'
AND a1.FID = A.FID),0)
as 'PilotSumAmount', -->
'' as 'SBU',
'' as 'DetailArea'
Into #TempTable5
From
T_SAL_ORDER A
Right JOIN
(Select a2.FNAME,a1.FORGID From
T_ORG_ORGANIZATIONS a1
JOIN
T_ORG_ORGANIZATIONS_L a2
on a1.FORGID = a2.FORGID
Where a2.FLOCALEID = 2052
AND a1.FDocumentStatus = 'C'
AND a2.FNAME != '') B
on A.FSaleOrgId = B.FORGID
AND A.FDocumentStatus = 'C'
AND A.FCancelStatus = 'A'
LEFT JOIN
(Select
a1.FORDERNUMBER,
SUM(a1.FALLAMOUNT) as 'FALLAMOUNT'
From
T_AR_RECEIVABLEENTRY a1
JOIN
T_AR_RECEIVABLE a2
on a1.FID = a2.FID
Where a1.FORDERNUMBER != '' AND a2.FSETACCOUNTTYPE = 3
GROUP BY a1.FORDERNUMBER) C
on A.FBILLNO = C.FORDERNUMBER
LEFT JOIN
(Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8 --
on W8.FENTRYID = A.F_ORDERCATEGORY
Where A.FDocumentStatus = 'C' AND W8.FNumber != 'Z' --AND A.FID in (Select * From #TABLEXYX)", year);
if (!string.IsNullOrEmpty(salespersonString))
{
sql += string.Format(@" AND A.FSalerId in ({0})", salespersonString);
}
if (!string.IsNullOrEmpty(organization))
{
sql += string.Format(@" AND A.FSaleOrgId in ({0})", organization);
}
2025-03-20 11:58:03 +08:00
//if (!string.IsNullOrEmpty(fStrartDate))
//{
// sql += string.Format(@" AND A.FDate >= '{0}'", fStrartDate);
//}
//if (!string.IsNullOrEmpty(fEndDate))
//{
// sql += string.Format(@" AND A.FDate <= '{0}'", fEndDate);
//}
//if (!string.IsNullOrEmpty(fSDate))
//{
// sql += string.Format(@" AND A.FAPPROVEDATE >= '{0}'", fSDate);
//}
//if (!string.IsNullOrEmpty(fEDate))
//{
// sql += string.Format(@" AND A.FAPPROVEDATE <= '{0}'", fEDate);
//}
2025-03-14 10:00:24 +08:00
sql += string.Format(@";");
sql += string.Format(@"/*dialect*/
Select
FNAME+'' as 'FNAME',
ISNULL(SUM(XOneMonth),0) as 'XOneMonth',
ISNULL(SUM(HOneMonth),0) as 'HOneMonth',
ISNULL(SUM(XTwoMonth),0) as 'XTwoMonth',
ISNULL(SUM(HTwoMonth),0) as 'HTwoMonth',
ISNULL(SUM(XThreeMonth),0) as 'XThreeMonth',
ISNULL(SUM(HThreeMonth),0) as 'HThreeMonth',
ISNULL(SUM(XFourMonth),0) as 'XFourMonth',
ISNULL(SUM(HFourMonth),0) as 'HFourMonth',
ISNULL(SUM(XFiveMonth),0) as 'XFiveMonth',
ISNULL(SUM(HFiveMonth),0) as 'HFiveMonth',
ISNULL(SUM(XSixMonth),0) as 'XSixMonth',
ISNULL(SUM(HSixMonth),0) as 'HSixMonth',
ISNULL(SUM(XSevenMonth),0) as 'XSevenMonth',
ISNULL(SUM(HSevenMonth),0) as 'HSevenMonth',
ISNULL(SUM(XEightMonth),0) as 'XEightMonth',
ISNULL(SUM(HEightMonth),0) as 'HEightMonth',
ISNULL(SUM(XNineMonth),0) as 'XNineMonth',
ISNULL(SUM(HNineMonth),0) as 'HNineMonth',
ISNULL(SUM(XTenMonth),0) as 'XTenMonth',
ISNULL(SUM(HTenMonth),0) as 'HTenMonth',
ISNULL(SUM(XElevenMonth),0) as 'XElevenMonth',
ISNULL(SUM(HElevenMonth),0) as 'HElevenMonth',
ISNULL(SUM(XTwelveMonth),0) as 'XTwelveMonth',
ISNULL(SUM(HTwelveMonth),0) as 'HTwelveMonth',
ISNULL(SUM(XCumulative),0) as 'XCumulative',
ISNULL(SUM(HCumulative),0) as 'HCumulative',
ISNULL(SUM(UsualAlterAmount),0) as 'UsualAlterAmount',
ISNULL(SUM(ZhuhaiPilot),0) as 'ZhuhaiPilot',
ISNULL(SUM(SiNO),0) as 'SiNO',
ISNULL(SUM(SiNOUsualAlter),0) as 'SiNOUsualAlter',
ISNULL(SUM(WuhanPilotThisYear),0) as 'WuhanPilotThisYear',
ISNULL(SUM(WuhanPilotUsualAlter),0) as 'WuhanPilotUsualAlter',
ISNULL(SUM(Discovery),0) as 'Discovery',
ISNULL(SUM(HongKongPilot),0) as 'HongKongPilot',
ISNULL(SUM(HuaXiaYunLian),0) as 'HuaXiaYunLian',
ISNULL(SUM(PilotSumAmount),0) as 'PilotSumAmount',
SBU,
DetailArea,
3 Sort
Into #TempTable6
From
#TempTable5
Group by FNAME,SBU,DetailArea;");
sql += string.Format(@"/*dialect*/
Select
*
INTO #TempTable7
From
#TempTable6
UNION ALL
Select
'' as 'FNAME',
ISNULL(SUM(XOneMonth),0) as 'XOneMonth',
ISNULL(SUM(HOneMonth),0) as 'HOneMonth',
ISNULL(SUM(XTwoMonth),0) as 'XTwoMonth',
ISNULL(SUM(HTwoMonth),0) as 'HTwoMonth',
ISNULL(SUM(XThreeMonth),0) as 'XThreeMonth',
ISNULL(SUM(HThreeMonth),0) as 'HThreeMonth',
ISNULL(SUM(XFourMonth),0) as 'XFourMonth',
ISNULL(SUM(HFourMonth),0) as 'HFourMonth',
ISNULL(SUM(XFiveMonth),0) as 'XFiveMonth',
ISNULL(SUM(HFiveMonth),0) as 'HFiveMonth',
ISNULL(SUM(XSixMonth),0) as 'XSixMonth',
ISNULL(SUM(HSixMonth),0) as 'HSixMonth',
ISNULL(SUM(XSevenMonth),0) as 'XSevenMonth',
ISNULL(SUM(HSevenMonth),0) as 'HSevenMonth',
ISNULL(SUM(XEightMonth),0) as 'XEightMonth',
ISNULL(SUM(HEightMonth),0) as 'HEightMonth',
ISNULL(SUM(XNineMonth),0) as 'XNineMonth',
ISNULL(SUM(HNineMonth),0) as 'HNineMonth',
ISNULL(SUM(XTenMonth),0) as 'XTenMonth',
ISNULL(SUM(HTenMonth),0) as 'HTenMonth',
ISNULL(SUM(XElevenMonth),0) as 'XElevenMonth',
ISNULL(SUM(HElevenMonth),0) as 'HElevenMonth',
ISNULL(SUM(XTwelveMonth),0) as 'XTwelveMonth',
ISNULL(SUM(HTwelveMonth),0) as 'HTwelveMonth',
ISNULL(SUM(XCumulative),0) as 'XCumulative',
ISNULL(SUM(HCumulative),0) as 'HCumulative',
ISNULL(SUM(UsualAlterAmount),0) as 'UsualAlterAmount',
ISNULL(SUM(ZhuhaiPilot),0) as 'ZhuhaiPilot',
ISNULL(SUM(SiNO),0) as 'SiNO',
ISNULL(SUM(SiNOUsualAlter),0) as 'SiNOUsualAlter',
ISNULL(SUM(WuhanPilotThisYear),0) as 'WuhanPilotThisYear',
ISNULL(SUM(WuhanPilotUsualAlter),0) as 'WuhanPilotUsualAlter',
ISNULL(SUM(Discovery),0) as 'Discovery',
ISNULL(SUM(HongKongPilot),0) as 'HongKongPilot',
ISNULL(SUM(HuaXiaYunLian),0) as 'HuaXiaYunLian',
ISNULL(SUM(PilotSumAmount),0) as 'PilotSumAmount',
'',
'',
4 Sort
From
#TempTable6;");
sql += string.Format(@"/*dialect*/
Select
*
Into #TempTable8
From
#TempTable4 v1
UNION ALL
Select * From #TempTable7;");
sql += string.Format(@"/*dialect*/
Select *,0 A
INTO #TempTable9
From #TempTable8");
sql += string.Format(@"/*dialect*/
SELECT
*,
ROW_NUMBER() OVER (ORDER BY A) AS FID,
ROW_NUMBER() OVER (ORDER BY A) AS FIDENTITYID
INTO {0}
From
#TempTable9;", tableName);
2025-03-17 19:04:06 +08:00
Loghelp.Log("年度销售额&回款额汇总");
Loghelp.Log(sql);
2025-03-14 10:00:24 +08:00
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)
{
// 销售员
var salesperson = (customFilter["F_Salesperson"] as DynamicObjectCollection)?.Select(n => (n["F_Salesperson"] as DynamicObject)["Name"].ToString()).ToList();
// 年份
string fDate = customFilter["F_Date"]?.ToString();
// 开始日期
string fStrartDate = customFilter["FStrartDate"]?.ToString();
// 结束日期
string fEndDate = customFilter["FEndDate"]?.ToString();
// 开始日期
string fSDate = customFilter["FSDate"]?.ToString();
// 结束日期
string fEDate = customFilter["FEDate"]?.ToString();
// 组织
var organizationList = (customFilter["FZuZhi"] as DynamicObjectCollection)?.Select(n => (n["FZuZhi"] as DynamicObject)["Name"].ToString()).ToList();
//这里是报表页面的标识 FStrartDate
reportTitles.AddTitle("FSalesperson", salesperson == null ? "" : string.Join(",", salesperson));
reportTitles.AddTitle("FDate", fDate == null ? null : Convert.ToDateTime(fDate).ToString("yyyy-MM-dd"));
reportTitles.AddTitle("FStrartDate", string.IsNullOrWhiteSpace(fStrartDate) ? "" : Convert.ToDateTime(fStrartDate).ToString("yyyy-MM-dd"));
reportTitles.AddTitle("FEndDate", string.IsNullOrWhiteSpace(fEndDate) ? "" : Convert.ToDateTime(fEndDate).ToString("yyyy-MM-dd"));
reportTitles.AddTitle("FSDate", string.IsNullOrWhiteSpace(fSDate) ? "" : Convert.ToDateTime(fSDate).ToString("yyyy-MM-dd"));
reportTitles.AddTitle("FEDate", string.IsNullOrWhiteSpace(fEDate) ? "" : Convert.ToDateTime(fEDate).ToString("yyyy-MM-dd"));
reportTitles.AddTitle("FZuZhi", organizationList == null ? "" : string.Join(",", organizationList));
}
return reportTitles;
}
}
}