1324 lines
65 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-21 19:32:34 +08:00
using NPOI.Util;
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>
{
2025-03-21 19:32:34 +08:00
//new DecimalControlField("FDECIMALS", "OrigInvoiceAmount"),
//new DecimalControlField("FDECIMALS", "ExchangeRate"),
//new DecimalControlField("FDECIMALS", "InvoiceAmountTHB"),
//new DecimalControlField("FDECIMALS", "MonthEndExRate"),
//new DecimalControlField("FDECIMALS", "RevaluationAountInTHB"),
//new DecimalControlField("FDECIMALS", "UnrealizedGainLoss"),
2025-03-14 10:00:24 +08:00
};
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();
2025-03-21 19:32:34 +08:00
header.AddChild("Salesperson", new LocaleValue("销售员"), SqlStorageType.Sqlvarchar);
header.AddChild("X1Month", new LocaleValue("1月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H1Month", new LocaleValue("1月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("X2Month", new LocaleValue("2月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H2Month", new LocaleValue("2月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("X2Month", new LocaleValue("3月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H3Month", new LocaleValue("3月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("X4Month", new LocaleValue("4月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H4Month", new LocaleValue("4月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("X5Month", new LocaleValue("5月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H5Month", new LocaleValue("5月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("X6Month", new LocaleValue("6月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H6Month", new LocaleValue("6月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("X7Month", new LocaleValue("7月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H7Month", new LocaleValue("7月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("X8Month", new LocaleValue("8月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H8Month", new LocaleValue("8月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("X9Month", new LocaleValue("9月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H9Month", new LocaleValue("9月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("X10Month", new LocaleValue("10月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H10Month", new LocaleValue("10月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("X11Month", new LocaleValue("11月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H11Month", new LocaleValue("11月(回款额)"), SqlStorageType.SqlDecimal);
header.AddChild("X12Month", new LocaleValue("12月(销售额)"), SqlStorageType.SqlDecimal);
header.AddChild("H12Month", new LocaleValue("12月(回款额)"), SqlStorageType.SqlDecimal);
2025-03-14 10:00:24 +08:00
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;
}
2025-03-21 19:32:34 +08:00
#region SQL
///// <summary>
///// 显示报表数据
///// </summary>
///// <param name="filter"></param>
///// <param name="tableName"></param>
//public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
//{
// DynamicObject customFilter = filter.FilterParameter.CustomFilter;
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// // 销售员列表
// var salesperson = (customFilter["F_Salesperson"] as DynamicObjectCollection)?.Select(n => (n["F_Salesperson"] as DynamicObject)["msterID"].ToString()).ToList();
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// // 销售员
// var salespersonString = salesperson == null ? "" : string.Join(",", salesperson);
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// // 组织列表
// var organizationList = (customFilter["FZuZhi"] as DynamicObjectCollection)?.Select(n => (n["FZuZhi"] as DynamicObject)["ID"].ToString()).ToList();
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// // 组织
// var organization = organizationList == null ? "" : (string.Join(",", organizationList));
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// //// 开始日期
// //string fStrartDate = customFilter["FStrartDate"]?.ToString();
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// //// 结束日期
// //string fEndDate = customFilter["FEndDate"]?.ToString();
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// //// 审核开始日期
// //string fSDate = customFilter["FSDate"]?.ToString();
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// //// 审核结束日期
// //string fEDate = customFilter["FEDate"]?.ToString();
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// // 下单时间
// string fDate = customFilter["F_Date"]?.ToString();
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// int year = Convert.ToInt32(fDate.Split('-')[0]);
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// base.BuilderReportSqlAndTempTable(filter, tableName);
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// string sql = string.Format(@"/*dialect*/
// Select
// CASE WHEN ISNULL(W4.FNAME,'') = '' THEN W1.FNAME
// ELSE W4.FNAME END as 'Salesperson', --销售员
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// 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', --> 一月销售额
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// CASE WHEN MONTH(D.FDATE) = 1 AND YEAR(D.FDATE)= {0}
// THEN ISNULL(E.FALLAMOUNT,0)
// ELSE 0
// END as 'HOneMonth', --> 一月回款额
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
// 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);
// }
// //if (!string.IsNullOrEmpty(fStrartDate))
// //{
// // sql += string.Format(@" AND D.FDate >= '{0}'", fStrartDate);
// //}
// //if (!string.IsNullOrEmpty(fEndDate))
// //{
// // sql += string.Format(@" AND D.FDate <= '{0}'", fEndDate);
// //}
// 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);
// }
// //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);
// //}
// 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);
// Loghelp.Log("年度销售额&回款额汇总");
// Loghelp.Log(sql);
// DBUtils.Execute(this.Context, sql);
//}
#endregion
2025-03-14 10:00:24 +08:00
/// <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();
2025-03-21 19:32:34 +08:00
//// 开始日期
//string fStrartDate = customFilter["FStrartDate"]?.ToString();
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
//// 结束日期
//string fEndDate = customFilter["FEndDate"]?.ToString();
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
//// 开始日期
//string fSDate = customFilter["FSDate"]?.ToString();
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
//// 结束日期
//string fEDate = customFilter["FEDate"]?.ToString();
2025-03-14 10:00:24 +08:00
// 组织
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"));
2025-03-21 19:32:34 +08:00
//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"));
2025-03-14 10:00:24 +08:00
2025-03-21 19:32:34 +08:00
//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"));
2025-03-14 10:00:24 +08:00
reportTitles.AddTitle("FZuZhi", organizationList == null ? "" : string.Join(",", organizationList));
}
return reportTitles;
}
2025-03-21 19:32:34 +08:00
/// <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));
// 下单时间
string fDate = customFilter["F_Date"]?.ToString();
int year = Convert.ToInt32(fDate.Split('-')[0]);
base.BuilderReportSqlAndTempTable(filter, tableName);
string sqlWhere = " and 1=1 ";
if (!string.IsNullOrEmpty(salespersonString))
{
sqlWhere += string.Format(@" AND [销售员ID] in ({0}) ", salespersonString);
}
if (!string.IsNullOrEmpty(organization))
{
sqlWhere += string.Format(@" AND [组织ID] in ({0})", organization);
}
string sql2 = $@"/*dialect*/SELECT EE.*
,ee. AS Salesperson
,[] as XCumulative,[] as UsualAlterAmount,[] as SiNO,[] as SiNOUsualAlter,[-] as WuhanPilotThisYear
,[-] as WuhanPilotUsualAlter, [] as Discovery,[] as HongKongPilot,[] as HuaXiaYunLian ,[] as DetailArea
,[ZhuhaiPilot]=[]+[]
,[PilotSumAmount]=[]+[]+[]+[]+[-]+[-]+[]+[]+[]
2025-03-21 19:44:37 +08:00
,ROW_NUMBER() OVER (ORDER BY [ID]) AS FID
2025-03-21 19:32:34 +08:00
,ROW_NUMBER() OVER (ORDER BY [ID]) AS FIDENTITYID ,0 AS Sort, 0 as sortNum
into {tableName}
FROM (
SELECT DISTINCT
A.*";
DateTime monthStart = DateTime.Parse($@"{year}-01-01");
DateTime monthEnd = DateTime.Parse($@"{year}-02-01");
DateTime yearStart= DateTime.Parse($@"{year}-01-01");
DateTime yearEnd = yearStart.AddYears(1);
for (int i = 1; i < 13; i++)
{
sql2 += $@" ,[X{i}Month]=ISNULL((
SELECT SUM([]) FROM (
SELECT DISTINCT [ID],ID,[]
FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[ID]=A.[ID]
AND AA.[] >='{monthStart}' AND AA.[] <'{monthEnd}') kk
),0)
,[H{i}Month]=ISNULL((
SELECT SUM([]) FROM (
SELECT DISTINCT [ID],ID,[]
FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[ID]=A.[ID]
AND AA.[] >='{monthStart}' AND AA.[] <'{monthEnd}') kk
),0) ";
monthStart = monthStart.AddMonths(1);
monthEnd = monthEnd.AddMonths(1);
}
sql2 += $@",[累计销售额]=ISNULL((
SELECT SUM() FROM (
SELECT DISTINCT [ID],ID,
FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[ID]=A.[ID]
AND AA.[] >='{yearStart}' AND AA.[] <'{yearEnd}') kk
),0)
,[]=ISNULL((
SELECT SUM([]) FROM (
SELECT DISTINCT [ID],ID,[]
FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[ID]=A.[ID]
AND AA.[] >='{yearStart}' AND AA.[] <'{yearEnd}') kk
),0)
,[]=ISNULL((SELECT SUM(FBillAllAmount_LC-F_Amountstar)
FROM (
SELECT FChangeDate,FJoinOrderAmount ,b.FBILLNO, aa.FBillAllAmount_LC,F_Amountstar
FROM T_SAL_ORDERFIN aa
LEFT JOIN T_SAL_ORDER B
ON aa.FID=b.fid
WHERE aa.FID IN (SELECT [ID] FROM [ZZZ_SalesRportShareData] share WITH(NOLOCK)
WHERE [] >='{yearStart}' AND [] <'{yearEnd}' AND share.[ID]=a.[ID] AND ID=100302 )
AND B.FCHANGEDATE >='{yearStart}' AND B.FCHANGEDATE<'{yearEnd}'
) ss),0)
,[]=ISNULL((
SELECT SUM([]) FROM (
SELECT DISTINCT [ID],ID,[]
FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[ID]=A.[ID] AND ID=100303
AND AA.[] >='{yearStart}' AND AA.[] <'{yearEnd}') kk
),0)
,[]=ISNULL((SELECT SUM(FBillAllAmount_LC-F_Amountstar)
FROM (
SELECT FChangeDate,FJoinOrderAmount ,b.FBILLNO, aa.FBillAllAmount_LC,F_Amountstar
FROM T_SAL_ORDERFIN aa
LEFT JOIN T_SAL_ORDER B
ON aa.FID=b.fid
WHERE aa.FID IN (SELECT [ID] FROM [ZZZ_SalesRportShareData] share WITH(NOLOCK)
WHERE [] >='{yearStart}' AND [] <'{yearEnd}' AND share.[ID]=a.[ID] AND ID=100303 )
AND B.FCHANGEDATE >='{yearStart}' AND B.FCHANGEDATE<'{yearEnd}'
) ss),0)
,[-]=ISNULL((
SELECT SUM([]) FROM (
SELECT DISTINCT [ID],ID,[]
FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[ID]=A.[ID] AND ID=100305
AND AA.[] >='{yearStart}' AND AA.[] <'{yearEnd}') kk
),0)
,[-]=ISNULL((SELECT SUM(FBillAllAmount_LC-F_Amountstar)
FROM (
SELECT FChangeDate,FJoinOrderAmount ,b.FBILLNO, aa.FBillAllAmount_LC,F_Amountstar
FROM T_SAL_ORDERFIN aa
LEFT JOIN T_SAL_ORDER B
ON aa.FID=b.fid
WHERE aa.FID IN (SELECT [ID] FROM [ZZZ_SalesRportShareData] share WITH(NOLOCK)
WHERE [] >='{yearStart}' AND [] <'{yearEnd}' AND share.[ID]=a.[ID] AND ID=100305 )
AND B.FCHANGEDATE >='{yearStart}' AND B.FCHANGEDATE<'{yearEnd}'
) ss),0)
,[]=ISNULL((
SELECT SUM([]) FROM (
SELECT DISTINCT [ID],ID,[]
FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[ID]=A.[ID] AND ID=438223
AND AA.[] >='{yearStart}' AND AA.[] <'{yearEnd}') kk
),0)
,[]=ISNULL((
SELECT SUM([]) FROM (
SELECT DISTINCT [ID],ID,[]
FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[ID]=A.[ID] AND ID=438224
AND AA.[] >='{yearStart}' AND AA.[] <'{yearEnd}') kk
),0)
,[]=ISNULL((
SELECT SUM([]) FROM (
SELECT DISTINCT [ID],ID,[]
FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[ID]=A.[ID] AND ID=533896
AND AA.[] >='{yearStart}' AND AA.[] <'{yearEnd}') kk
),0)
FROM
(SELECT DISTINCT [] ,[ID],[SBU] ,[] FROM [ZZZ_SalesRportShareData] WITH(NOLOCK)
WHERE [] >='{yearStart}' AND [] <'{yearEnd}' {sqlWhere} ) A ) EE
ORDER BY [SBU] ,[ID] ";
//sqlWhere += 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);
Loghelp.Log("年度销售额&回款额汇总");
Loghelp.Log(sql2);
var list= DBUtils.ExecuteDynamicObject(this.Context, sql2);
//var sbuList = list.Select(t => t["SBU"].ToString).ToList();
//string sbu = "";
//int row = 0;
//foreach (var item in list)
//{
// if (sbu != item["sbu"] && row>0 ||(row==(list.Count-1)))
// {
// var templist = list.Where(t => t["sbu"] == sbu).ToList();
// sbu = item["sbu"].ToString();
// var tempItem = item.Copy();
// tempItem["Salesperson"] = sbu + "小计";
// tempItem["sbu"] = "";
// tempItem["X1Month"] = templist.Sum(t =>long.Parse( t["X1Month"].ToString()));
// tempItem["X2Month"] = templist.Sum(t => long.Parse(t["X2Month"].ToString()));
// tempItem["X3Month"] = templist.Sum(t => long.Parse(t["X3Month"].ToString()));
// tempItem["X4Month"] = templist.Sum(t => long.Parse(t["X4Month"].ToString()));
// tempItem["X5Month"] = templist.Sum(t => long.Parse(t["X5Month"].ToString()));
// tempItem["X6Month"] = templist.Sum(t => long.Parse(t["X6Month"].ToString()));
// tempItem["X7Month"] = templist.Sum(t => long.Parse(t["X7Month"].ToString()));
// tempItem["X8Month"] = templist.Sum(t => long.Parse(t["X8Month"].ToString()));
// tempItem["X9Month"] = templist.Sum(t => long.Parse(t["X9Month"].ToString()));
// tempItem["X10Month"] = templist.Sum(t => long.Parse(t["X10Month"].ToString()));
// tempItem["X11Month"] = templist.Sum(t => long.Parse(t["X11Month"].ToString()));
// tempItem["X12Month"] = templist.Sum(t => long.Parse(t["X12Month"].ToString()));
// tempItem["H1Month"] = templist.Sum(t => long.Parse(t["H1Month"].ToString()));
// tempItem["H2Month"] = templist.Sum(t => long.Parse(t["H2Month"].ToString()));
// tempItem["H3Month"] = templist.Sum(t => long.Parse(t["H3Month"].ToString()));
// tempItem["H4Month"] = templist.Sum(t => long.Parse(t["H4Month"].ToString()));
// tempItem["H5Month"] = templist.Sum(t => long.Parse(t["H5Month"].ToString()));
// tempItem["H6Month"] = templist.Sum(t => long.Parse(t["H6Month"].ToString()));
// tempItem["H7Month"] = templist.Sum(t => long.Parse(t["H7Month"].ToString()));
// tempItem["H8Month"] = templist.Sum(t => long.Parse(t["H8Month"].ToString()));
// tempItem["H9Month"] = templist.Sum(t => long.Parse(t["H9Month"].ToString()));
// tempItem["H10Month"] = templist.Sum(t => long.Parse(t["H10Month"].ToString()));
// tempItem["H11Month"] = templist.Sum(t => long.Parse(t["H11Month"].ToString()));
// tempItem["H12Month"] = templist.Sum(t => long.Parse(t["H12Month"].ToString()));
// tempItem["H1Month"] = templist.Sum(t => long.Parse(t["H1Month"].ToString()));
// list.Insert(row, tempItem);
// }
// if (row == 0)
// {
// sbu = item["sbu"].ToString();
// }
//}
}
2025-03-14 10:00:24 +08:00
}
}