1
This commit is contained in:
parent
7d9ab5b504
commit
f2034ff913
@ -100,41 +100,88 @@ namespace Pilot.Report.Exploitation.SBUYingShouBiao
|
||||
//创建表头对象
|
||||
ReportHeader header = new ReportHeader();
|
||||
header.AddChild("SBU", new LocaleValue("SBU", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("本年度发货及验收额", new LocaleValue("本年度发货及验收额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("已到期应收账款", new LocaleValue("已到期应收账款", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
//header.AddChild("本年度发货及验收额", new LocaleValue("已到期应收账款(含子公司)", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header.AddChild("已到期应收账款", new LocaleValue("已到期应收账款(含子公司)", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
//一级表头
|
||||
var header1 = header.AddChild("应收账款账龄", new LocaleValue("应收账款账龄"));
|
||||
header1.AddChild("1-6个月", new LocaleValue("1-6个月", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header1.AddChild("7-12个月", new LocaleValue("7-12个月", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header1.AddChild("13-18个月", new LocaleValue("13-18个月", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header1.AddChild("19个月以上", new LocaleValue("19个月以上", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("回款额(含子公司)", new LocaleValue("回款额(含子公司)", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("专责小组回款额", new LocaleValue("专责小组回款额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("实际业绩额(含往年变更金额)", new LocaleValue("实际业绩额(含往年变更金额)", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("上年度应收额", new LocaleValue("上年度应收额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("专责小组应收额", new LocaleValue("专责小组应收额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("回款率", new LocaleValue("回款率", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("预发货到期应收账款", new LocaleValue("预发货到期应收账款", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("预发货回款额", new LocaleValue("预发货回款额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("预发货回款率", new LocaleValue("预发货回款率", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("回款目标", new LocaleValue("回款目标", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("应收款上限", new LocaleValue("应收款上限", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header.AddChild("回款达标率", new LocaleValue("回款达标率", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||
header1.AddChild("A6", new LocaleValue("1-6个月", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header1.AddChild("A12", new LocaleValue("7-12个月", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header1.AddChild("A2Y", new LocaleValue("1-2年", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header1.AddChild("A3Y", new LocaleValue("2-3年", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header1.AddChild("A5Y", new LocaleValue("4-5年", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header1.AddChild("A5YY", new LocaleValue("5年以上", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header.AddChild("本年回款额", new LocaleValue("本年回款额(含子公司)", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header.AddChild("本年专责小组回款额", new LocaleValue("本年专责小组回款额", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header.AddChild("本年实际业绩额", new LocaleValue("本年实际业绩额(含往年变更金额)", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header.AddChild("上年度应收额", new LocaleValue("上年度应收额", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header.AddChild("本年专责小组应收额", new LocaleValue("本年专责小组应收额", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header.AddChild("回款率", new LocaleValue("回款率", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header.AddChild("预发货到期应收账款", new LocaleValue("预发货到期应收账款", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header.AddChild("预发货回款额", new LocaleValue("预发货回款额", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header.AddChild("预发货回款率", new LocaleValue("预发货回款率", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
header.AddChild("回款目标", new LocaleValue("回款目标", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
//header.AddChild("应收款上限", new LocaleValue("应收款上限", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
//header.AddChild("回款达标率", new LocaleValue("回款达标率", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||
return header;
|
||||
}
|
||||
|
||||
//创建临时表
|
||||
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
|
||||
{
|
||||
DateTime now = DateTime.Now.AddDays(1).Date;
|
||||
string begin = now.Year + "-01-01";
|
||||
string end = now.ToString();
|
||||
//获取过滤条件
|
||||
string Filter = GetFilterWhere(filter);
|
||||
/*
|
||||
取数SQL
|
||||
SQL查询字符串,提取所需数据并将结果存入临时表
|
||||
*/
|
||||
string sql = string.Format(@"/*dialect*/
|
||||
string sql = string.Format($@"/*dialect*/
|
||||
SELECT ROW_NUMBER() OVER(ORDER BY SBU) AS FIDENTITYID,a.*,[上年度应收额]=[上年度应收额2]-[本年回款额]
|
||||
,[回款率]=CASE WHEN ([本年实际业绩额]+[上年度应收额2]-[本年回款额]-[本年专责小组应收额]) <>0 THEN ([本年回款额]-[本年专责小组回款额])/([本年实际业绩额]+[上年度应收额2]-[本年回款额]-[本年专责小组应收额])
|
||||
ELSE 0 END
|
||||
,[预发货回款率]=CASE WHEN [预发货到期应收账款] >0 THEN [预发货回款额]/[预发货到期应收账款] ELSE 0 end
|
||||
,[回款目标]=0.0
|
||||
into {tableName}
|
||||
FROM (
|
||||
SELECT ISNULL(SBU,'其他') AS SBU
|
||||
,SUM([1-6个月]*A.汇率) [A6],SUM([7-12个月]*A.汇率) [A12],SUM([1-2年]*A.汇率)[A2Y],SUM([2-3年]*A.汇率) [A3Y],SUM([4-5年]*A.汇率) [A5Y],SUM([5年以上]*A.汇率) [A5YY]
|
||||
|
||||
", tableName, Filter);
|
||||
,[本年回款额]=ISNULL((SELECT SUM(aa.[BenCiHeXiao]*aa.[FExchangeRate]) FROM [ZZZ_HeXiaoBook] aa
|
||||
WHERE [XiaoShouFid] IN (SELECT akk.销售单主键ID FROM ZRP_YingShouMingXi_yuyubo akk WHERE akk.SBU=a.SBU )
|
||||
AND aa.[ShouKuanFDate] >='{begin}' AND aa.[ShouKuanFDate]< '{end}'),0)
|
||||
,[本年专责小组回款额]=ISNULL((SELECT SUM(aa.[BenCiHeXiao]*aa.[FExchangeRate]) FROM [ZZZ_HeXiaoBook] aa
|
||||
WHERE [XiaoShouFid] IN (SELECT akk.销售单主键ID FROM ZRP_YingShouMingXi_yuyubo akk WHERE akk.SBU=a.SBU AND akk.[账龄月]>12 )
|
||||
AND aa.[ShouKuanFDate] >='{begin}' AND aa.[ShouKuanFDate]< '{end}'),0)
|
||||
,[本年实际业绩额]=
|
||||
(ISNULL((
|
||||
SELECT SUM(
|
||||
CASE WHEN B.FCHANGEDATE IS not NULL AND b.FDate <'{begin}' THEN
|
||||
aa.FBILLALLAMOUNT_LC - b.F_AMOUNTSTAR WHEN b.FDate >= '{begin}' THEN aa.FBILLALLAMOUNT_LC end )
|
||||
FROM T_SAL_ORDERFIN aa
|
||||
LEFT JOIN T_SAL_ORDER B
|
||||
ON aa.FID = B.FID
|
||||
WHERE b.FDocumentStatus='C' AND aa.FID IN
|
||||
(
|
||||
SELECT DISTINCT akk.销售单主键ID
|
||||
FROM ZRP_YingShouMingXi_yuyubo akk
|
||||
WHERE akk.SBU = a.SBU
|
||||
)
|
||||
AND (( B.FCHANGEDATE >= '{begin}' AND B.FCHANGEDATE < '2026-01-01 00:00:00') OR (b.FDate >= '{begin}' AND B.FDate < '2026-01-01 00:00:00' ) )
|
||||
)
|
||||
,0))
|
||||
,[本年专责小组应收额]=ISNULL((SELECT SUM(aa.实际已出货应收款合计) FROM ZRP_YingShouMingXi_yuyubo aa where aa.账龄月>12 AND aa.SBU=A.SBU),0)
|
||||
,[上年度应收额2]=ISNULL((SELECT SUM(aa.应收款合计) FROM ZRP_YingShouMingXi_yuyubo aa where aa.SBU=A.SBU),0)
|
||||
,[预发货到期应收账款]=ISNULL((SELECT SUM(aa.到期金额*aa.汇率) FROM ZRP_YingShouMingXi_yuyubo aa where aa.收款条件 LIKE '款到发货%'AND aa.SBU=A.SBU),0)
|
||||
,[预发货回款额]=ISNULL((SELECT SUM(aa.累计到款金额*aa.[收款条件分摊比例]*0.01) FROM ZRP_YingShouMingXi_yuyubo aa where aa.收款条件 LIKE '款到发货%'AND aa.SBU=A.SBU AND aa.到期金额 >0),0)
|
||||
,[已到期应收账款]=SUM(a.到期金额*a.汇率)
|
||||
FROM ZRP_YingShouMingXi_yuyubo a
|
||||
{Filter}
|
||||
GROUP BY a.SBU) a
|
||||
|
||||
|
||||
");
|
||||
//执行SQL并动态创建报表
|
||||
DBUtils.ExecuteDynamicObject(this.Context, sql);
|
||||
}
|
||||
@ -151,33 +198,51 @@ namespace Pilot.Report.Exploitation.SBUYingShouBiao
|
||||
if (orgFid != null)
|
||||
{
|
||||
string org = string.IsNullOrWhiteSpace(customFilter["F_YKQC_OrgId_uky"].ToString()) ? "" :
|
||||
string.Format("AND A.FSaleOrgId IN ({0})", orgFid["Id"].Long2Int());
|
||||
string.Format("AND a.组织ID={0}", orgFid["Id"].Long2Int());
|
||||
//添加组织过滤条件
|
||||
strwhere.AppendLine(org);
|
||||
}
|
||||
|
||||
//日期
|
||||
string startValue = (customFilter["F_YKQC_Date_qtr"] == null) ? string.Empty :
|
||||
Convert.ToDateTime(customFilter["F_YKQC_Date_qtr"]).ToString("yyyy-MM-dd");
|
||||
string endValue = (customFilter["F_YKQC_Date_83g"] == null) ? string.Empty :
|
||||
Convert.ToDateTime(customFilter["F_YKQC_Date_83g"]).ToString("yyyy-MM-dd");
|
||||
//添加日期过滤条件
|
||||
if (!String.IsNullOrWhiteSpace(startValue))
|
||||
{
|
||||
strwhere.AppendLine(string.Format(@"AND A.FDate >= '{0}'", startValue));
|
||||
}
|
||||
if (!String.IsNullOrWhiteSpace(endValue))
|
||||
{
|
||||
strwhere.AppendLine(string.Format(@"AND A.FDate <= '{0}'", endValue));
|
||||
}
|
||||
////日期
|
||||
//string startValue = (customFilter["F_YKQC_Date_qtr"] == null) ? string.Empty :
|
||||
// Convert.ToDateTime(customFilter["F_YKQC_Date_qtr"]).ToString("yyyy-MM-dd");
|
||||
//string endValue = (customFilter["F_YKQC_Date_83g"] == null) ? string.Empty :
|
||||
// Convert.ToDateTime(customFilter["F_YKQC_Date_83g"]).ToString("yyyy-MM-dd");
|
||||
////添加日期过滤条件
|
||||
//if (!String.IsNullOrWhiteSpace(startValue))
|
||||
//{
|
||||
// strwhere.AppendLine(string.Format(@"AND A.FDate >= '{0}'", startValue));
|
||||
//}
|
||||
//if (!String.IsNullOrWhiteSpace(endValue))
|
||||
//{
|
||||
// strwhere.AppendLine(string.Format(@"AND A.FDate <= '{0}'", endValue));
|
||||
//}
|
||||
return strwhere.ToString();
|
||||
}
|
||||
|
||||
public override List<SummaryField> GetSummaryColumnInfo(IRptParams filter)
|
||||
{
|
||||
var result = base.GetSummaryColumnInfo(filter);
|
||||
result.Add(new SummaryField("年底到期应收款额", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("到期应收款额", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("已到期应收账款", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
//result.Add(new SummaryField("应收账款账龄", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("A6", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("A12", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("A2Y", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("A3Y", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("A5Y", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("A5YY", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("本年回款额", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("本年专责小组回款额", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("本年实际业绩额", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("上年度应收额", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("本年专责小组应收额", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("回款率", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("预发货到期应收账款", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("预发货回款额", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("预发货回款率", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("回款目标", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user