1
This commit is contained in:
parent
7d9ab5b504
commit
f2034ff913
@ -100,41 +100,88 @@ namespace Pilot.Report.Exploitation.SBUYingShouBiao
|
|||||||
//创建表头对象
|
//创建表头对象
|
||||||
ReportHeader header = new ReportHeader();
|
ReportHeader header = new ReportHeader();
|
||||||
header.AddChild("SBU", new LocaleValue("SBU", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
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.SqlMoney);
|
||||||
header.AddChild("已到期应收账款", new LocaleValue("已到期应收账款", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
header.AddChild("已到期应收账款", new LocaleValue("已到期应收账款(含子公司)", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||||
//一级表头
|
//一级表头
|
||||||
var header1 = header.AddChild("应收账款账龄", new LocaleValue("应收账款账龄"));
|
var header1 = header.AddChild("应收账款账龄", new LocaleValue("应收账款账龄"));
|
||||||
header1.AddChild("1-6个月", new LocaleValue("1-6个月", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
header1.AddChild("A6", new LocaleValue("1-6个月", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||||
header1.AddChild("7-12个月", new LocaleValue("7-12个月", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
header1.AddChild("A12", new LocaleValue("7-12个月", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||||
header1.AddChild("13-18个月", new LocaleValue("13-18个月", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
header1.AddChild("A2Y", new LocaleValue("1-2年", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||||
header1.AddChild("19个月以上", new LocaleValue("19个月以上", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
header1.AddChild("A3Y", new LocaleValue("2-3年", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||||
header.AddChild("回款额(含子公司)", new LocaleValue("回款额(含子公司)", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
header1.AddChild("A5Y", new LocaleValue("4-5年", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||||
header.AddChild("专责小组回款额", new LocaleValue("专责小组回款额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
header1.AddChild("A5YY", new LocaleValue("5年以上", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||||
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.Sqlvarchar);
|
header.AddChild("本年专责小组回款额", new LocaleValue("本年专责小组回款额", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||||
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.Sqlvarchar);
|
header.AddChild("上年度应收额", new LocaleValue("上年度应收额", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||||
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.Sqlvarchar);
|
header.AddChild("回款率", new LocaleValue("回款率", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||||
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.Sqlvarchar);
|
header.AddChild("预发货回款额", new LocaleValue("预发货回款额", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
|
||||||
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.Sqlvarchar);
|
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;
|
return header;
|
||||||
}
|
}
|
||||||
|
|
||||||
//创建临时表
|
//创建临时表
|
||||||
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
|
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);
|
string Filter = GetFilterWhere(filter);
|
||||||
/*
|
/*
|
||||||
取数SQL
|
取数SQL
|
||||||
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并动态创建报表
|
//执行SQL并动态创建报表
|
||||||
DBUtils.ExecuteDynamicObject(this.Context, sql);
|
DBUtils.ExecuteDynamicObject(this.Context, sql);
|
||||||
}
|
}
|
||||||
@ -151,33 +198,51 @@ namespace Pilot.Report.Exploitation.SBUYingShouBiao
|
|||||||
if (orgFid != null)
|
if (orgFid != null)
|
||||||
{
|
{
|
||||||
string org = string.IsNullOrWhiteSpace(customFilter["F_YKQC_OrgId_uky"].ToString()) ? "" :
|
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);
|
strwhere.AppendLine(org);
|
||||||
}
|
}
|
||||||
|
|
||||||
//日期
|
////日期
|
||||||
string startValue = (customFilter["F_YKQC_Date_qtr"] == null) ? string.Empty :
|
//string startValue = (customFilter["F_YKQC_Date_qtr"] == null) ? string.Empty :
|
||||||
Convert.ToDateTime(customFilter["F_YKQC_Date_qtr"]).ToString("yyyy-MM-dd");
|
// Convert.ToDateTime(customFilter["F_YKQC_Date_qtr"]).ToString("yyyy-MM-dd");
|
||||||
string endValue = (customFilter["F_YKQC_Date_83g"] == null) ? string.Empty :
|
//string endValue = (customFilter["F_YKQC_Date_83g"] == null) ? string.Empty :
|
||||||
Convert.ToDateTime(customFilter["F_YKQC_Date_83g"]).ToString("yyyy-MM-dd");
|
// Convert.ToDateTime(customFilter["F_YKQC_Date_83g"]).ToString("yyyy-MM-dd");
|
||||||
//添加日期过滤条件
|
////添加日期过滤条件
|
||||||
if (!String.IsNullOrWhiteSpace(startValue))
|
//if (!String.IsNullOrWhiteSpace(startValue))
|
||||||
{
|
//{
|
||||||
strwhere.AppendLine(string.Format(@"AND A.FDate >= '{0}'", startValue));
|
// strwhere.AppendLine(string.Format(@"AND A.FDate >= '{0}'", startValue));
|
||||||
}
|
//}
|
||||||
if (!String.IsNullOrWhiteSpace(endValue))
|
//if (!String.IsNullOrWhiteSpace(endValue))
|
||||||
{
|
//{
|
||||||
strwhere.AppendLine(string.Format(@"AND A.FDate <= '{0}'", endValue));
|
// strwhere.AppendLine(string.Format(@"AND A.FDate <= '{0}'", endValue));
|
||||||
}
|
//}
|
||||||
return strwhere.ToString();
|
return strwhere.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override List<SummaryField> GetSummaryColumnInfo(IRptParams filter)
|
public override List<SummaryField> GetSummaryColumnInfo(IRptParams filter)
|
||||||
{
|
{
|
||||||
var result = base.GetSummaryColumnInfo(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;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user