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
}
}