1
This commit is contained in:
parent
539b0cc7c8
commit
9317c0ce22
@ -135,212 +135,7 @@ namespace GZ_LTHReportForms.YingShouBiao
|
|||||||
SQL查询字符串,提取所需数据并将结果存入临时表
|
SQL查询字符串,提取所需数据并将结果存入临时表
|
||||||
*/
|
*/
|
||||||
string sql = string.Format(@"/*dialect*/
|
string sql = string.Format(@"/*dialect*/
|
||||||
DECLARE @ThisDate VARCHAR(1000);
|
|
||||||
DECLARE @ResultDate VARCHAR(1000);
|
|
||||||
-- 取上一年的年底日期
|
|
||||||
SET @ResultDate = FORMAT(DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0)),'yyyy-MM-dd');
|
|
||||||
--取当前日期
|
|
||||||
SET @ThisDate = FORMAT(GETDATE(),'yyyy-MM-dd')
|
|
||||||
|
|
||||||
SELECT W.*,x.FNAME into #RecCond FROM T_SAL_ORDERPLAN W
|
|
||||||
INNER JOIN T_BD_RecCondition_L X on X.FID = W.F_RecConditionId
|
|
||||||
|
|
||||||
SELECT D.FID,sum(b.fqty) AS 'FQTY',sum(E.fallamount) AS 'FAMOUNT'
|
|
||||||
INTO #SAL
|
|
||||||
FROM T_SAL_DELIVERYNOTICE A
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY B ON A.FID = B.FID
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY D.FID
|
|
||||||
|
|
||||||
|
|
||||||
SELECT D.FID,sum(b.fqty) AS 'FQTY',sum(E.fallamount) AS 'FAMOUNT'
|
|
||||||
INTO #RETURN
|
|
||||||
FROM T_SAL_RETURNNOTICE A
|
|
||||||
INNER JOIN T_SAL_RETURNNOTICEENTRY B ON A.FID = B.FID
|
|
||||||
INNER JOIN T_SAL_RETURNNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_RETURNNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY D.FID
|
|
||||||
|
|
||||||
|
|
||||||
SELECT F.FID,sum(b.FREALQTY) AS 'FQTY',sum(G.FALLAMOUNT_LC) AS 'FAMOUNT'
|
|
||||||
INTO #OUTSTOCK
|
|
||||||
FROM T_SAL_OUTSTOCK A
|
|
||||||
INNER JOIN T_SAL_OUTSTOCKENTRY B ON A.FID = B.FID
|
|
||||||
INNER JOIN T_SAL_OUTSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_OUTSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID
|
|
||||||
INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY F.FID
|
|
||||||
|
|
||||||
SELECT F.FID,sum(b.FREALQTY) AS 'FQTY',sum(G.FALLAMOUNT_LC) AS 'FAMOUNT'
|
|
||||||
INTO #RETURNSTOCK
|
|
||||||
FROM T_SAL_RETURNSTOCK A
|
|
||||||
INNER JOIN T_SAL_RETURNSTOCKENTRY B ON A.FID = B.FID
|
|
||||||
INNER JOIN T_SAL_RETURNSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_RETURNSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_RETURNNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
|
|
||||||
INNER JOIN T_SAL_RETURNNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID
|
|
||||||
INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY F.FID
|
|
||||||
|
|
||||||
SELECT b.FORDERENTRYID as 'FENTRYID',sum(b.FPriceQty) AS 'FQTY',sum(b.FALLAMOUNT) AS 'FAMOUNT'
|
|
||||||
INTO #RECE
|
|
||||||
FROM t_AR_receivable A
|
|
||||||
INNER JOIN t_AR_receivableENTRY B ON A.FID = B.FID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY b.FORDERENTRYID
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
CASE WHEN ISNULL(O.FNAME,'') = ''THEN AC.区域
|
|
||||||
ELSE ACC.区域 END AS 'SBU',
|
|
||||||
'' AS '本年度发货及验收额', --待定取数
|
|
||||||
CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.Fid,n.FSaleId,X.FNAME ORDER BY n.FSaleId,X.FNAME) != 1 THEN null
|
|
||||||
WHEN X.FNAME in ('预付款(仪表)','预付款(系统)') THEN null
|
|
||||||
WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < GETDATE() AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < GETDATE() THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < GETDATE() AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < GETDATE() THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < GETDATE() AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < GETDATE() THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
ELSE null--款到发货(仪表)
|
|
||||||
END AS '已到期应收账款',
|
|
||||||
convert(nvarchar(100), '') AS '1-6个月',
|
|
||||||
convert(nvarchar(100), '') AS '7-12个月',
|
|
||||||
convert(nvarchar(100), '') AS '13-18个月',
|
|
||||||
convert(nvarchar(100), '') AS '19个月以上',
|
|
||||||
'' AS '回款额(含子公司)', --待定核销功能完成
|
|
||||||
'' AS '专责小组回款额', --待定取数
|
|
||||||
'' AS '实际业绩额(含往年变更金额)',--待定取数逻辑
|
|
||||||
'' AS '上年度应收额',--待定取数逻辑
|
|
||||||
'' AS '专责小组应收额',
|
|
||||||
'' AS '回款率',
|
|
||||||
'' AS '预发货到期应收账款',
|
|
||||||
'' AS '预发货回款额',
|
|
||||||
'' AS '预发货回款率',
|
|
||||||
'' AS '回款目标',
|
|
||||||
'' AS '应收款上限',
|
|
||||||
'' AS '回款达标率'
|
|
||||||
,SUM(w.FRECADVANCERATE)OVER(PARTITION BY A.FID,N.FENTRYID ORDER BY W.FSEQ) as '收款比例汇总'
|
|
||||||
,case when F.FBILLALLAMOUNT_LC - ISNULL(v.累计退货金额,0)= 0
|
|
||||||
THEN 0
|
|
||||||
ELSE round(( isnull(ae.累计收款,0) - ISNULL(v.累计退货金额,0))/( F.FBILLALLAMOUNT_LC - ISNULL(v.累计退货金额,0)) ,2)
|
|
||||||
END AS '收款比例'
|
|
||||||
,ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) AS '账龄-月'
|
|
||||||
,case when ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) <= 6 AND ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) >=1 then '一到六个月'
|
|
||||||
when ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) <= 12 AND ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) >=7 then '七到十二个月'
|
|
||||||
when ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) <= 18 AND ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) >=13 then '十三到十八个月'
|
|
||||||
when ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) >= 19 then '十九个月以上'
|
|
||||||
end AS '账龄-阶段'
|
|
||||||
INTO #TEMP1
|
|
||||||
FROM T_SAL_ORDER A --销售订单表头
|
|
||||||
LEFT JOIN
|
|
||||||
(Select a2.FENTRYID,a2.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY a1 JOIN T_BAS_ASSISTANTDATAENTRY_L a2 on a1.FENTRYID = a2.FENTRYID
|
|
||||||
Where a1.FID = '670cc977263353') B on A.F_ORDERCATEGORY = B.FENTRYID
|
|
||||||
--INNER JOIN T_SAL_orderentry b on a.FID = B.FID --销售订单表体
|
|
||||||
INNER JOIN T_BD_CUSTOMER_L C ON C.FCUSTID= A.FCUSTID AND C.FLOCALEID= 2052 --客户附属表
|
|
||||||
INNER JOIN T_SAL_ORDERFIN F ON F.FID = A.FID
|
|
||||||
INNER JOIN T_BD_CUSTOMER I ON I .FCUSTID = A.FCUSTID
|
|
||||||
INNER JOIN T_SAL_ORDERFIN J ON J.FID= A.FID
|
|
||||||
LEFT JOIN T_BAS_PREBDONE_L G ON G.FID = A.F_projectname AND G.FLocaleID =2052
|
|
||||||
LEFT JOIN T_BAS_PREBDTHREE H ON H.FID = A.F_BON
|
|
||||||
lEFT JOIN V_ASSISTANTDATA K ON K.FENTRYID = I.FCompanyNature
|
|
||||||
lEFT JOIN V_BD_SALESMAN_L L ON L.fid = A.FSALERID
|
|
||||||
left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO
|
|
||||||
left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID
|
|
||||||
LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID
|
|
||||||
LEFT JOIN V_ASSISTANTDATA P ON P.FENTRYID = I.F_CREDITCLASSIFICATION
|
|
||||||
LEFT JOIN T_SAL_OUTSTOCK CK on CK.F_CONTRACTNUMBER = A.F_CONTRACTNUMBER --销售出库单
|
|
||||||
LEFT JOIN T_IV_SALESIC FP on FP.F_PAPERNUMBER = A.F_CONTRACTNUMBER --销售增值税专用发票
|
|
||||||
--LEFT JOIN T_SAL_DELIVERYNOTICE FH on FH.F_PAPERCONTRACT = A.F_CONTRACTNUMBER --发货通知单
|
|
||||||
LEFT JOIN
|
|
||||||
(
|
|
||||||
SELECT F_Papercontract,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '发货日期',SUM(B.FBILLALLAMOUNT_LC) AS '累计发货金额' FROM T_SAL_DELIVERYNOTICE A
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEFIN B ON A.FID =B.FID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY A.F_Papercontract
|
|
||||||
) Q ON Q.F_PAPERCONTRACT = A.F_contractnumber --获取发货通知单最大的发货日期
|
|
||||||
LEFT JOIN T_META_FORMENUMITEM R ON r.FVALUE = A.F_OrderType AND R.FID = 'bc2c1d77-0f4b-41d2-b61b-e29554c570d4'
|
|
||||||
LEFT JOIN T_META_FORMENUMITEM_L S ON S.FENUMID = R.FENUMID AND S.FLOCALEID = 2052
|
|
||||||
LEFT JOIN
|
|
||||||
(
|
|
||||||
SELECT F_Paper ,CONVERT(NVARCHAR(10), MAX(FDATE),23) AS '开票日期',CONVERT(NVARCHAR(10),
|
|
||||||
MAX(FDATE),23) AS '没有红色的开票日期'
|
|
||||||
FROM t_AR_receivable A
|
|
||||||
INNER JOIN T_AR_RECEIVABLEENTRY B ON A.FID = B.FID
|
|
||||||
WHERE A.FDOCUMENTSTATUS = 'C' AND A.FCancelStatus = 'A'
|
|
||||||
GROUP BY F_Paper
|
|
||||||
) T ON T.F_PAPER = A.F_contractnumber
|
|
||||||
LEFT JOIN V_ASSISTANTDATA U ON U.FENTRYID = A.F_Ordercategory
|
|
||||||
LEFT JOIN
|
|
||||||
(
|
|
||||||
SELECT F_contractnumber,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '退货日期',SUM(B.FBILLALLAMOUNT_LC) AS '累计退货金额' FROM T_SAL_RETURNSTOCK A
|
|
||||||
INNER JOIN T_SAL_RETURNSTOCKFIN B ON A.FID =B.FID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY A.F_contractnumber
|
|
||||||
) V ON V.F_contractnumber = A.F_contractnumber --获取销售退货单
|
|
||||||
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo AC ON AC.名称=L.FNAME
|
|
||||||
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACC ON ACC.名称=O.FNAME
|
|
||||||
LEFT JOIN T_SAL_ORDERPLAN W ON W.FID= A.FID --收款计划
|
|
||||||
LEFT JOIN T_BD_RecCondition_L X on X.FID = W.F_RecConditionId
|
|
||||||
LEFT JOIN #RecCond Y ON Y.FID =A.FID AND Y.FNAME LIKE '%质保金%'
|
|
||||||
LEFT JOIN (select distinct fid from #RecCond Z where Z.FNAME LIKE '%款到%') z on z.fid =a.fid
|
|
||||||
LEFT JOIN (select distinct fid from #RecCond AA where AA.FNAME LIKE '%协议%') AA on AA.fid =a.fid
|
|
||||||
LEFT JOIN T_ORG_ORGANIZATIONS_L asd on asd.FORGID = A.FSALEORGID
|
|
||||||
LEFT JOIN (SELECT distinct F_Papercontract FROM T_SAL_DELIVERYNOTICE WHERE F_SFYFH ='是') AB ON AB.F_PAPERCONTRACT = A.F_contractnumber
|
|
||||||
LEFT JOIN
|
|
||||||
(
|
|
||||||
SELECT
|
|
||||||
F_Papercontract,CAST( sum(b.FALLAMOUNT) AS REAL) AS '发票总金额',
|
|
||||||
CAST (sum(CASE WHEN F_Papercontract = 'Y' THEN b.FALLAMOUNT ELSE 0 END ) AS REAL) AS '发票总金额(普票存财务)'
|
|
||||||
FROM t_AR_receivable A
|
|
||||||
INNER JOIN T_AR_RECEIVABLEFIN B ON A.FID = B.FID
|
|
||||||
GROUP BY F_Papercontract
|
|
||||||
) AD ON AD.F_PAPERCONTRACT = A.F_contractnumber
|
|
||||||
LEFT JOIN
|
|
||||||
(
|
|
||||||
SELECT a.F_Papercontract,
|
|
||||||
avg(d.FCURWRITTENOFFAMOUNT) as '累计收款'
|
|
||||||
|
|
||||||
FROM t_AR_receivable A
|
|
||||||
INNER JOIN T_AR_RECEIVABLEENTRY E ON E.FID =A.FID
|
|
||||||
INNER JOIN T_AR_RECMacthLogENTRY B ON A.FBILLNO = B.FSRCBILLNO
|
|
||||||
INNER JOIN T_AR_RECMacthLog C ON C.FID = B.FID
|
|
||||||
INNER JOIN T_AR_RECMacthLogENTRY D ON D.FID = B.FID
|
|
||||||
AND D.FSOURCETYPE = '36cf265bd8c3452194ed9c83ec5e73d2'
|
|
||||||
WHERE
|
|
||||||
1=1
|
|
||||||
group by a.F_Papercontract
|
|
||||||
) AE ON AE.F_Papercontract = A.F_contractnumber
|
|
||||||
WHERE 1=1 AND
|
|
||||||
A.FDOCUMENTSTATUS = 'C'
|
|
||||||
and (@FSaleOrgId = '' or asd.FNAME = @FSaleOrgId)
|
|
||||||
AND (@FEndDate = '' or A.FDATE<=@FEndDate)
|
|
||||||
AND (@FStartDate = '' or A.FDATE>=@FStartDate)
|
|
||||||
ORDER BY A.F_contractnumber
|
|
||||||
{1}
|
|
||||||
ORDER BY 'SBU'
|
|
||||||
|
|
||||||
UPDATE #TEMP1 SET
|
|
||||||
[账龄-月] = 0 ,[账龄-阶段]=''
|
|
||||||
WHERE 收款比例汇总<=收款比例*100
|
|
||||||
|
|
||||||
--
|
|
||||||
|
|
||||||
UPDATE #TEMP1
|
|
||||||
SET [1-6个月]= case when [账龄-月] <> 0 AND [账龄-阶段]='一到六个月' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例*100) else '' end,
|
|
||||||
[7-12个月]= case when [账龄-月] <> 0 AND [账龄-阶段]='七到十二个月' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例*100) else '' end,
|
|
||||||
[13-18个月]=case when [账龄-月] <> 0 AND [账龄-阶段]='十三到十八个月' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例*100) else '' end,
|
|
||||||
[19个月以上]=case when [账龄-月] <> 0 AND [账龄-阶段]='十九个月以上' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例 *100) else '' end
|
|
||||||
|
|
||||||
SELECT * INTO {0} FROM #TEMP1
|
|
||||||
", tableName, Filter);
|
", tableName, Filter);
|
||||||
//执行SQL并动态创建报表
|
//执行SQL并动态创建报表
|
||||||
DBUtils.ExecuteDynamicObject(this.Context, sql);
|
DBUtils.ExecuteDynamicObject(this.Context, sql);
|
||||||
|
@ -89,13 +89,18 @@ namespace GZ_LTHReportForms.YingShouBaoBiao
|
|||||||
//设置单据列
|
//设置单据列
|
||||||
public override ReportHeader GetReportHeaders(IRptParams filter)
|
public override ReportHeader GetReportHeaders(IRptParams filter)
|
||||||
{
|
{
|
||||||
|
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
|
||||||
|
//结束日期
|
||||||
|
string FYear = (customFilter["F_EDate"] == null) ? DateTime.Now.Year.ToString() : Convert.ToDateTime(
|
||||||
|
customFilter["F_EDate"]).ToString("yyyy-MM");
|
||||||
|
|
||||||
//创建表头对象
|
//创建表头对象
|
||||||
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(FYear +"期初到期应收额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||||
header.AddChild("年底到期应收款专责小组", new LocaleValue("其中:期初应收款专责小组", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
header.AddChild("其中_年初应收款专责小组", new LocaleValue("其中:"+FYear+"期初应收款专责小组", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||||
header.AddChild("到期应收款额", new LocaleValue("本月到期应收额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
header.AddChild("本年到期应收款额", new LocaleValue(FYear+"到期应收额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
||||||
header.AddChild("应收款专责小组", new LocaleValue("其中:本月应收款专责小组", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
|
header.AddChild("其中_本年应收款专责小组", new LocaleValue("其中:"+FYear+"应收款专责小组", 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);
|
||||||
foreach(var item in header.GetChilds())
|
foreach(var item in header.GetChilds())
|
||||||
@ -108,285 +113,37 @@ namespace GZ_LTHReportForms.YingShouBaoBiao
|
|||||||
//创建临时表
|
//创建临时表
|
||||||
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
|
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
|
||||||
{
|
{
|
||||||
//获取过滤条件
|
base.BuilderReportSqlAndTempTable (filter, tableName);
|
||||||
string Filter = GetFilterWhere(filter);
|
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
|
||||||
/*
|
|
||||||
取数SQL
|
//开始日期
|
||||||
SQL查询字符串,提取所需数据并将结果存入临时表
|
string FStrartDate = (customFilter["F_SDate"] == null) ? string.Empty : Convert.ToDateTime(
|
||||||
*/
|
customFilter["F_SDate"]).ToString("yyyy-MM-dd");
|
||||||
|
|
||||||
|
//结束日期
|
||||||
|
string FEndDate = (customFilter["F_EDate"] == null) ? string.Empty : Convert.ToDateTime(
|
||||||
|
customFilter["F_EDate"]).ToString("yyyy-MM-dd");
|
||||||
|
|
||||||
string sql = String.Format(@"/*dialect*/
|
string sql = String.Format(@"/*dialect*/
|
||||||
DECLARE @ResultDate VARCHAR(1000);
|
EXEC YSQKGKSBU_GZTH '{0}' '{1}'
|
||||||
DECLARE @ThisDate VARCHAR(1000);
|
|
||||||
DECLARE @SUMDQ DECIMAL(10, 2);
|
|
||||||
|
|
||||||
|
|
||||||
-- 取上一年的年底日期
|
|
||||||
SET @ResultDate = FORMAT(DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0)),'yyyy-MM-dd');
|
|
||||||
--取当天日期
|
|
||||||
SET @ThisDate = FORMAT(GETDATE(),'yyyy-MM-dd')
|
|
||||||
|
|
||||||
SELECT W.*,x.FNAME into #RecCond FROM T_SAL_ORDERPLAN W
|
|
||||||
INNER JOIN T_BD_RecCondition_L X on X.FID = W.F_RecConditionId
|
|
||||||
|
|
||||||
SELECT D.FID,sum(b.fqty) AS 'FQTY',sum(E.fallamount) AS 'FAMOUNT'
|
|
||||||
INTO #SAL
|
|
||||||
FROM T_SAL_DELIVERYNOTICE A
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY B ON A.FID = B.FID
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY D.FID
|
|
||||||
|
|
||||||
|
|
||||||
SELECT D.FID,sum(b.fqty) AS 'FQTY',sum(E.fallamount) AS 'FAMOUNT'
|
|
||||||
INTO #RETURN
|
|
||||||
FROM T_SAL_RETURNNOTICE A
|
|
||||||
INNER JOIN T_SAL_RETURNNOTICEENTRY B ON A.FID = B.FID
|
|
||||||
INNER JOIN T_SAL_RETURNNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_RETURNNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY D.FID
|
|
||||||
|
|
||||||
|
|
||||||
SELECT F.FID,sum(b.FREALQTY) AS 'FQTY',sum(G.FALLAMOUNT_LC) AS 'FAMOUNT'
|
|
||||||
INTO #OUTSTOCK
|
|
||||||
FROM T_SAL_OUTSTOCK A
|
|
||||||
INNER JOIN T_SAL_OUTSTOCKENTRY B ON A.FID = B.FID
|
|
||||||
INNER JOIN T_SAL_OUTSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_OUTSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID
|
|
||||||
INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY F.FID
|
|
||||||
|
|
||||||
SELECT F.FID,sum(b.FREALQTY) AS 'FQTY',sum(G.FALLAMOUNT_LC) AS 'FAMOUNT'
|
|
||||||
INTO #RETURNSTOCK
|
|
||||||
FROM T_SAL_RETURNSTOCK A
|
|
||||||
INNER JOIN T_SAL_RETURNSTOCKENTRY B ON A.FID = B.FID
|
|
||||||
INNER JOIN T_SAL_RETURNSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_RETURNSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID
|
|
||||||
INNER JOIN T_SAL_RETURNNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID
|
|
||||||
INNER JOIN T_SAL_RETURNNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID
|
|
||||||
INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY F.FID
|
|
||||||
|
|
||||||
SELECT b.FORDERENTRYID as 'FENTRYID',sum(b.FPriceQty) AS 'FQTY',sum(b.FALLAMOUNT) AS 'FAMOUNT'
|
|
||||||
INTO #RECE
|
|
||||||
FROM t_AR_receivable A
|
|
||||||
INNER JOIN t_AR_receivableENTRY B ON A.FID = B.FID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY b.FORDERENTRYID
|
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
CASE WHEN ISNULL(O.FNAME,'') = '' THEN AC.区域
|
ROW_NUMBER() OVER (ORDER BY SBU DESC) AS FID,
|
||||||
ELSE ACC.区域 END AS 'SBU',
|
ROW_NUMBER() OVER (ORDER BY SBU DESC) AS FIDENTITYID,
|
||||||
CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.Fid,n.FSaleId,X.FNAME ORDER BY n.FSaleId,X.FNAME) != 1 THEN null
|
* INTO {2} FROM YSQKGK_SBU_GZTH
|
||||||
WHEN X.FNAME in ('预付款(仪表)','预付款(系统)') THEN null
|
", FStrartDate,FEndDate,tableName);
|
||||||
WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < @ResultDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < @ResultDate THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < @ResultDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < @ResultDate THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < @ResultDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < @ResultDate THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
ELSE null--款到发货(仪表)
|
|
||||||
END AS '年底到期应收款额',
|
|
||||||
CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.Fid,n.FSaleId,X.FNAME ORDER BY n.FSaleId,X.FNAME) != 1 THEN null
|
|
||||||
WHEN X.FNAME in ('预付款(仪表)','预付款(系统)') THEN null
|
|
||||||
WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
ELSE null--款到发货(仪表)
|
|
||||||
END AS '年底到期应收款专责小组',
|
|
||||||
CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.Fid,n.FSaleId,X.FNAME ORDER BY n.FSaleId,X.FNAME) != 1 THEN null
|
|
||||||
WHEN X.FNAME in ('预付款(仪表)','预付款(系统)') THEN null
|
|
||||||
WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < @ThisDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < @ThisDate THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < @ThisDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < @ThisDate THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < @ThisDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < @ThisDate THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
ELSE null--款到发货(仪表)
|
|
||||||
END AS '到期应收款额',
|
|
||||||
CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.Fid,n.FSaleId,X.FNAME ORDER BY n.FSaleId,X.FNAME) != 1 THEN null
|
|
||||||
WHEN X.FNAME in ('预付款(仪表)','预付款(系统)') THEN null
|
|
||||||
WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0)
|
|
||||||
WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0)
|
|
||||||
ELSE null--款到发货(仪表)
|
|
||||||
END AS '应收款专责小组'
|
|
||||||
INTO #TEMP1
|
|
||||||
FROM T_SAL_ORDER A --销售订单表头
|
|
||||||
LEFT JOIN
|
|
||||||
(Select a2.FENTRYID,a2.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY a1 JOIN T_BAS_ASSISTANTDATAENTRY_L a2 on a1.FENTRYID = a2.FENTRYID
|
|
||||||
Where a1.FID = '670cc977263353') B on A.F_ORDERCATEGORY = B.FENTRYID
|
|
||||||
--INNER JOIN T_SAL_orderentry b on a.FID = B.FID --销售订单表体
|
|
||||||
INNER JOIN T_BD_CUSTOMER_L C ON C.FCUSTID= A.FCUSTID AND C.FLOCALEID= 2052 --客户附属表
|
|
||||||
INNER JOIN T_SAL_ORDERFIN F ON F.FID = A.FID
|
|
||||||
INNER JOIN T_BD_CUSTOMER I ON I .FCUSTID = A.FCUSTID
|
|
||||||
INNER JOIN T_SAL_ORDERFIN J ON J.FID= A.FID
|
|
||||||
LEFT JOIN T_BAS_PREBDONE_L G ON G.FID = A.F_projectname AND G.FLocaleID =2052
|
|
||||||
LEFT JOIN T_BAS_PREBDTHREE H ON H.FID = A.F_BON
|
|
||||||
lEFT JOIN V_ASSISTANTDATA K ON K.FENTRYID = I.FCompanyNature
|
|
||||||
lEFT JOIN V_BD_SALESMAN_L L ON L.fid = A.FSALERID
|
|
||||||
left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO
|
|
||||||
left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID
|
|
||||||
LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID
|
|
||||||
LEFT JOIN V_ASSISTANTDATA P ON P.FENTRYID = I.F_CREDITCLASSIFICATION
|
|
||||||
LEFT JOIN T_SAL_OUTSTOCK CK on CK.F_CONTRACTNUMBER = A.F_CONTRACTNUMBER --销售出库单
|
|
||||||
LEFT JOIN T_IV_SALESIC FP on FP.F_PAPERNUMBER = A.F_CONTRACTNUMBER --销售增值税专用发票
|
|
||||||
LEFT JOIN
|
|
||||||
(
|
|
||||||
SELECT F_Papercontract,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '发货日期',SUM(B.FBILLALLAMOUNT_LC) AS '累计发货金额' FROM T_SAL_DELIVERYNOTICE A
|
|
||||||
INNER JOIN T_SAL_DELIVERYNOTICEFIN B ON A.FID =B.FID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY A.F_Papercontract
|
|
||||||
) Q ON Q.F_PAPERCONTRACT = A.F_contractnumber --获取发货通知单最大的发货日期
|
|
||||||
LEFT JOIN T_META_FORMENUMITEM R ON r.FVALUE = A.F_OrderType AND R.FID = 'bc2c1d77-0f4b-41d2-b61b-e29554c570d4'
|
|
||||||
LEFT JOIN T_META_FORMENUMITEM_L S ON S.FENUMID = R.FENUMID AND S.FLOCALEID = 2052
|
|
||||||
LEFT JOIN
|
|
||||||
(
|
|
||||||
SELECT F_Paper ,CONVERT(NVARCHAR(10), MAX(FDATE),23) AS '开票日期',CONVERT(NVARCHAR(10),
|
|
||||||
MAX(FDATE),23) AS '没有红色的开票日期'
|
|
||||||
FROM t_AR_receivable A
|
|
||||||
INNER JOIN T_AR_RECEIVABLEENTRY B ON A.FID = B.FID
|
|
||||||
WHERE A.FDOCUMENTSTATUS = 'C' AND A.FCancelStatus = 'A'
|
|
||||||
GROUP BY F_Paper
|
|
||||||
) T ON T.F_PAPER = A.F_contractnumber
|
|
||||||
LEFT JOIN V_ASSISTANTDATA U ON U.FENTRYID = A.F_Ordercategory
|
|
||||||
LEFT JOIN
|
|
||||||
(
|
|
||||||
SELECT F_contractnumber,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '退货日期',SUM(B.FBILLALLAMOUNT_LC) AS '累计退货金额' FROM T_SAL_RETURNSTOCK A
|
|
||||||
INNER JOIN T_SAL_RETURNSTOCKFIN B ON A.FID =B.FID
|
|
||||||
WHERE A.FDOCUMENTSTATUS= 'C'
|
|
||||||
GROUP BY A.F_contractnumber
|
|
||||||
) V ON V.F_contractnumber = A.F_contractnumber --获取销售退货单
|
|
||||||
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo AC ON AC.名称=L.FNAME
|
|
||||||
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACC ON ACC.名称=O.FNAME
|
|
||||||
--LEFT JOIN temp20241206 AC ON AC.名称=L.FNAME
|
|
||||||
--LEFT JOIN temp20241206 ACC ON ACC.名称=O.FNAME
|
|
||||||
LEFT JOIN T_SAL_ORDERPLAN W ON W.FID= A.FID
|
|
||||||
LEFT JOIN T_BD_RecCondition_L X on X.FID = W.F_RecConditionId
|
|
||||||
LEFT JOIN #RecCond Y ON Y.FID =A.FID AND Y.FNAME LIKE '%质保金%'
|
|
||||||
LEFT JOIN (select distinct fid from #RecCond Z where Z.FNAME LIKE '%款到%') z on z.fid =a.fid
|
|
||||||
LEFT JOIN (select distinct fid from #RecCond AA where AA.FNAME LIKE '%协议%') AA on AA.fid =a.fid
|
|
||||||
LEFT JOIN (SELECT distinct F_Papercontract FROM T_SAL_DELIVERYNOTICE WHERE F_SFYFH ='是') AB ON AB.F_PAPERCONTRACT = A.F_contractnumber
|
|
||||||
LEFT JOIN
|
|
||||||
(
|
|
||||||
SELECT
|
|
||||||
F_Papercontract,CAST( sum(b.FALLAMOUNT) AS REAL) AS '发票总金额',
|
|
||||||
CAST (sum(CASE WHEN F_Papercontract = 'Y' THEN b.FALLAMOUNT ELSE 0 END ) AS REAL) AS '发票总金额(普票存财务)'
|
|
||||||
FROM t_AR_receivable A
|
|
||||||
INNER JOIN T_AR_RECEIVABLEFIN B ON A.FID = B.FID
|
|
||||||
GROUP BY F_Papercontract
|
|
||||||
) AD ON AD.F_PAPERCONTRACT = A.F_contractnumber
|
|
||||||
LEFT JOIN
|
|
||||||
(
|
|
||||||
SELECT a.F_Papercontract,
|
|
||||||
avg(d.FCURWRITTENOFFAMOUNT) as '累计收款'
|
|
||||||
|
|
||||||
FROM t_AR_receivable A
|
|
||||||
INNER JOIN T_AR_RECEIVABLEENTRY E ON E.FID =A.FID
|
|
||||||
INNER JOIN T_AR_RECMacthLogENTRY B ON A.FBILLNO = B.FSRCBILLNO
|
|
||||||
INNER JOIN T_AR_RECMacthLog C ON C.FID = B.FID
|
|
||||||
INNER JOIN T_AR_RECMacthLogENTRY D ON D.FID = B.FID
|
|
||||||
AND D.FSOURCETYPE = '36cf265bd8c3452194ed9c83ec5e73d2'
|
|
||||||
WHERE
|
|
||||||
1=1
|
|
||||||
group by a.F_Papercontract
|
|
||||||
) AE ON AE.F_Papercontract = A.F_contractnumber
|
|
||||||
WHERE 1=1 AND A.FDOCUMENTSTATUS = 'C' AND B.FDATAVALUE != 'Z'
|
|
||||||
AND ((F.FBILLALLAMOUNT_LC * isnull(n.FSHARERATE,100) /100)!=0)
|
|
||||||
{1}
|
|
||||||
ORDER BY A.F_contractnumber
|
|
||||||
|
|
||||||
SELECT @SUMDQ = SUM(到期应收款额) FROM #TEMP1
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
SBU AS SBU1,
|
|
||||||
CONVERT(DECIMAL(10, 2),SUM(ISNULL(年底到期应收款额, 0)),2) AS '总年底到期应收款额',
|
|
||||||
CONVERT(DECIMAL(10, 2),SUM(ISNULL(到期应收款额, 0)),2) AS '总到期应收款额',
|
|
||||||
CONVERT(DECIMAL(10, 2),SUM(ISNULL(年底到期应收款专责小组, 0)),2) AS '年底到期应收款专责小组',
|
|
||||||
CONVERT(DECIMAL(10, 2),SUM(ISNULL(应收款专责小组, 0)),2) AS '应收款专责小组',
|
|
||||||
'' AS '占比',
|
|
||||||
0 AS '变化'
|
|
||||||
INTO #TEMP2
|
|
||||||
FROM
|
|
||||||
#TEMP1
|
|
||||||
GROUP BY
|
|
||||||
SBU
|
|
||||||
ORDER BY
|
|
||||||
SBU DESC;
|
|
||||||
|
|
||||||
ALTER TABLE #TEMP2
|
|
||||||
ALTER COLUMN 占比 NVARCHAR(100);
|
|
||||||
|
|
||||||
UPDATE #TEMP2
|
|
||||||
SET 占比 = CASE
|
|
||||||
WHEN 总到期应收款额 = 0 THEN '' -- 防止除以0
|
|
||||||
ELSE CONVERT(nvarchar(10), CONVERT(DECIMAL(10, 2), (总到期应收款额 / @SUMDQ) * 100),2) + '%'
|
|
||||||
END;
|
|
||||||
|
|
||||||
UPDATE #TEMP2
|
|
||||||
SET 变化 = CONVERT(DECIMAL(10, 2),(总到期应收款额 - 总年底到期应收款额),2)
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
ROW_NUMBER() OVER (ORDER BY B.SBU1 DESC) AS FID,
|
|
||||||
ROW_NUMBER() OVER (ORDER BY B.SBU1 DESC) AS FIDENTITYID,
|
|
||||||
B.SBU1 AS 'SBU',
|
|
||||||
CASE
|
|
||||||
WHEN B.总年底到期应收款额 = 0 THEN null
|
|
||||||
ELSE B.总年底到期应收款额 END AS '年底到期应收款额',
|
|
||||||
CASE
|
|
||||||
WHEN B.年底到期应收款专责小组 = 0 THEN null
|
|
||||||
ELSE B.年底到期应收款专责小组 END AS '年底到期应收款专责小组',
|
|
||||||
CASE
|
|
||||||
WHEN B.总到期应收款额 = 0 THEN null
|
|
||||||
ELSE B.总到期应收款额 END AS '到期应收款额',
|
|
||||||
CASE
|
|
||||||
WHEN B.应收款专责小组 = 0 THEN null
|
|
||||||
ELSE B.应收款专责小组 END AS '应收款专责小组',
|
|
||||||
B.占比 AS '占比',
|
|
||||||
B.变化 AS '变化'
|
|
||||||
INTO {0} FROM #TEMP2 B
|
|
||||||
GROUP BY B.年底到期应收款专责小组,B.应收款专责小组,B.SBU1,B.总年底到期应收款额,B.总到期应收款额,B.占比,B.变化
|
|
||||||
", tableName,Filter);
|
|
||||||
//执行SQL并动态创建报表
|
//执行SQL并动态创建报表
|
||||||
DBUtils.ExecuteDynamicObject(this.Context, sql);
|
DBUtils.ExecuteDynamicObject(this.Context, sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取过滤条件
|
|
||||||
private string GetFilterWhere(IRptParams fileter)
|
|
||||||
{
|
|
||||||
//获取自定义过滤条件
|
|
||||||
DynamicObject customFilter = fileter.FilterParameter.CustomFilter;
|
|
||||||
//创建字符串构建器
|
|
||||||
StringBuilder strwhere = new StringBuilder();
|
|
||||||
var orgFid = customFilter["F_YKQC_OrgId_uky"] as DynamicObject;
|
|
||||||
if (orgFid != null)
|
|
||||||
{
|
|
||||||
string org = string.IsNullOrWhiteSpace(customFilter["F_YKQC_OrgId_uky"].ToString()) ? "" :
|
|
||||||
string.Format("AND A.FSaleOrgId IN ({0})", orgFid["Id"].Long2Int());
|
|
||||||
//添加组织过滤条件
|
|
||||||
strwhere.AppendLine(org);
|
|
||||||
}
|
|
||||||
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("本年到期应收款额", 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,7 +292,7 @@ SELECT [
|
|||||||
INSERT INTO YJPHB_GZTH([部门_SBU],[区域明细],[姓名],[华夏云联累计回款额])
|
INSERT INTO YJPHB_GZTH([部门_SBU],[区域明细],[姓名],[华夏云联累计回款额])
|
||||||
SELECT [部门_SBU],[区域明细],[销售员],[收款金额] FROM #SKTEMP1 WHERE [销售组织FID] = '533896'
|
SELECT [部门_SBU],[区域明细],[销售员],[收款金额] FROM #SKTEMP1 WHERE [销售组织FID] = '533896'
|
||||||
|
|
||||||
--插入香港派诺累计回款额,收款退款金额
|
--插入华夏云联累计回款额,收款退款金额
|
||||||
INSERT INTO YJPHB_GZTH([部门_SBU],[区域明细],[姓名],[华夏云联累计回款额])
|
INSERT INTO YJPHB_GZTH([部门_SBU],[区域明细],[姓名],[华夏云联累计回款额])
|
||||||
SELECT [部门_SBU],[区域明细],[销售员],[收款退款金额] FROM #SKTKTEMP1 WHERE [销售组织FID] = '533896'
|
SELECT [部门_SBU],[区域明细],[销售员],[收款退款金额] FROM #SKTKTEMP1 WHERE [销售组织FID] = '533896'
|
||||||
|
|
||||||
|
12
派诺报表SQL文件/应收情况概况表按SBU区分.sql
Normal file
12
派诺报表SQL文件/应收情况概况表按SBU区分.sql
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
CREATE TABLE YSQKGK_SBU_GZTH
|
||||||
|
(
|
||||||
|
SBU NVARCHAR(100), -- 假设 SBU 字段长度为 100,可根据实际情况调整
|
||||||
|
年初到期应收款额 DECIMAL(23, 10),
|
||||||
|
其中_年初应收款专责小组 DECIMAL(23, 10),
|
||||||
|
本年到期应收款额 DECIMAL(23, 10),
|
||||||
|
其中_本年应收款专责小组 DECIMAL(23, 10),
|
||||||
|
占比 NVARCHAR(500),
|
||||||
|
变化 DECIMAL(23, 10)
|
||||||
|
);
|
||||||
|
|
||||||
|
--DROP TABLE YSQKGK_SBU_GZTH
|
10
派诺报表SQL文件/应收情况概况表按SBU区分创建表单.sql
Normal file
10
派诺报表SQL文件/应收情况概况表按SBU区分创建表单.sql
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
CREATE TABLE AccountsReceivable
|
||||||
|
(
|
||||||
|
SBU NVARCHAR(100), -- 假设 SBU 字段长度为 100,可根据实际情况调整
|
||||||
|
年初到期应收款额 DECIMAL(23, 10),
|
||||||
|
其中_应收款专责小组 DECIMAL(23, 10),
|
||||||
|
本年到期应收款额 DECIMAL(23, 10),
|
||||||
|
其中_应收款专责小组2024 DECIMAL(23, 10),
|
||||||
|
占比 DECIMAL(23, 10),
|
||||||
|
变化 DECIMAL(23, 10)
|
||||||
|
);
|
100
派诺报表SQL文件/应收情况概况表按SBU区分插入数据SQL.sql
Normal file
100
派诺报表SQL文件/应收情况概况表按SBU区分插入数据SQL.sql
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
CREATE PROCEDURE YSQKGKSBU_GZTH
|
||||||
|
@FSDate NVARCHAR(100),
|
||||||
|
@FEDate NVARCHAR(100)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @SumDQJE DECIMAL(23,10)
|
||||||
|
|
||||||
|
--定义变量
|
||||||
|
DECLARE @FEDateDate DATE;
|
||||||
|
|
||||||
|
--判断@FEDate日期是否为空
|
||||||
|
IF @FEDate IS NULL OR @FEDate = ''
|
||||||
|
BEGIN
|
||||||
|
SET @FEDateDate = GETDATE();
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
-- 转换为日期类型
|
||||||
|
SET @FEDateDate = CONVERT(DATE, @FEDate);
|
||||||
|
END
|
||||||
|
|
||||||
|
-- 获取上一年的 12 月 31 日
|
||||||
|
SET @FEDateDate = DATEFROMPARTS(YEAR(@FEDateDate) - 1, 12, 31);
|
||||||
|
|
||||||
|
--清空表里的数据
|
||||||
|
TRUNCATE TABLE YSQKGK_SBU_GZTH
|
||||||
|
--查询到期时间为年初前的到期金额
|
||||||
|
SELECT [SBU],SUM([到期金额]) AS '到期金额' INTO #NCTEMP1 FROM ZRP_YingShouMingXi_yuyubo
|
||||||
|
WHERE [到期时间] <= @FEDateDate
|
||||||
|
GROUP BY [SBU]
|
||||||
|
|
||||||
|
--插入到期时间为年初前的到期金额
|
||||||
|
INSERT INTO YSQKGK_SBU_GZTH([SBU],[年初到期应收款额])
|
||||||
|
SELECT [SBU],[到期金额] FROM #NCTEMP1 WHERE [到期金额] <> 0
|
||||||
|
|
||||||
|
--查询到期时间为年初前的到期金额,且收款人=应收款专责小组
|
||||||
|
SELECT [SBU],SUM([到期金额]) AS '到期金额' INTO #NCZZTEMP1 FROM ZRP_YingShouMingXi_yuyubo
|
||||||
|
WHERE [到期时间] <= @FEDateDate AND [收款人] = '应收款专责小组'
|
||||||
|
GROUP BY [SBU]
|
||||||
|
|
||||||
|
--插入到期时间为年初前的到期金额,且收款人=应收款专责小组
|
||||||
|
INSERT INTO YSQKGK_SBU_GZTH([SBU],[其中_年初应收款专责小组])
|
||||||
|
SELECT [SBU],[到期金额] FROM #NCZZTEMP1 WHERE [到期金额] <> 0
|
||||||
|
|
||||||
|
--查询本年度到期时间的到期金额
|
||||||
|
SELECT [SBU],SUM([到期金额]) AS '到期金额' INTO #BNTEMP1
|
||||||
|
FROM ZRP_YingShouMingXi_yuyubo
|
||||||
|
WHERE
|
||||||
|
format([到期时间],'yyyy-MM-dd') >= @FSDate
|
||||||
|
AND format([到期时间],'yyyy-MM-dd') <= @FEDate
|
||||||
|
GROUP BY [SBU]
|
||||||
|
|
||||||
|
--插入本年度到期时间的到期金额
|
||||||
|
INSERT INTO YSQKGK_SBU_GZTH([SBU],[本年到期应收款额])
|
||||||
|
SELECT [SBU],[到期金额] FROM #BNTEMP1 WHERE [到期金额] <> 0
|
||||||
|
|
||||||
|
--查询本年度到期时间的到期金额,其中收款人=应收款专责小组
|
||||||
|
SELECT [SBU],SUM([到期金额]) AS '到期金额' INTO #BNZZTEMP1
|
||||||
|
FROM ZRP_YingShouMingXi_yuyubo
|
||||||
|
WHERE
|
||||||
|
[到期时间] >= @FSDate
|
||||||
|
AND [到期时间] <= @FEDate
|
||||||
|
AND [收款人] = '应收款专责小组'
|
||||||
|
GROUP BY [SBU]
|
||||||
|
|
||||||
|
INSERT INTO YSQKGK_SBU_GZTH([SBU],[其中_年初应收款专责小组])
|
||||||
|
SELECT [SBU],[到期金额] FROM #BNZZTEMP1 WHERE [到期金额] <> 0
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
INTO #TEMP1
|
||||||
|
FROM(
|
||||||
|
SELECT [SBU],
|
||||||
|
SUM([年初到期应收款额]) AS 年初到期应收款额,
|
||||||
|
SUM([其中_年初应收款专责小组]) AS 其中_年初应收款专责小组,
|
||||||
|
SUM([本年到期应收款额]) AS 本年到期应收款额,
|
||||||
|
SUM([其中_本年应收款专责小组]) AS 其中_本年应收款专责小组
|
||||||
|
FROM YSQKGK_SBU_GZTH
|
||||||
|
GROUP BY [SBU]
|
||||||
|
)AS YS
|
||||||
|
|
||||||
|
--清空表的数据
|
||||||
|
TRUNCATE TABLE YSQKGK_SBU_GZTH
|
||||||
|
|
||||||
|
--重新插入数据
|
||||||
|
INSERT INTO YSQKGK_SBU_GZTH([SBU],[年初到期应收款额],[其中_年初应收款专责小组],
|
||||||
|
[本年到期应收款额],[其中_本年应收款专责小组])
|
||||||
|
SELECT * FROM #TEMP1
|
||||||
|
|
||||||
|
--更新占比数据
|
||||||
|
SELECT @SumDQJE = SUM([本年到期应收款额]) FROM YSQKGK_SBU_GZTH
|
||||||
|
|
||||||
|
UPDATE YSQKGK_SBU_GZTH
|
||||||
|
SET [占比] = CONVERT(VARCHAR, CAST(([本年到期应收款额] / @SumDQJE) * 100 AS DECIMAL(10, 2))) + '%'
|
||||||
|
|
||||||
|
--更新变化数据
|
||||||
|
UPDATE YSQKGK_SBU_GZTH
|
||||||
|
SET [变化] = ISNULL([本年到期应收款额],0) - ISNULL([年初到期应收款额],0)
|
||||||
|
|
||||||
|
DROP TABLE #NCTEMP1,#NCZZTEMP1,#BNTEMP1,#BNZZTEMP1,#TEMP1
|
||||||
|
END;
|
Loading…
x
Reference in New Issue
Block a user