This commit is contained in:
liqionghai 2025-08-19 09:32:59 +08:00
parent 892d5d36c6
commit c8cb278e9d
12 changed files with 879 additions and 95 deletions

View File

@ -87,6 +87,8 @@
<Compile Include="YSZKDZGongNeng_MX\YourDataPlugIn2.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="HKBaoBiao\回款报表服务器插件.py" />
<Content Include="HKBaoBiao\回款报表表单插件.py" />
<Content Include="Library\Kingdee.BOS.App.Core.dll" />
<Content Include="Library\Kingdee.BOS.App.dll" />
<Content Include="Library\Kingdee.BOS.Contracts.dll" />

View File

@ -1,12 +1,10 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.12.35506.116 d17.12
VisualStudioVersion = 17.12.35506.116
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GZ_LTHReportForms", "GZ_LTHReportForms.csproj", "{D635EAA4-25EF-45D7-8AE4-A4A4EA71FE54}"
EndProject
Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "GZ_PilotPythonReport", "..\GZ_PilotPythonReport\GZ_PilotPythonReport.pyproj", "{88C65DD5-F80F-4497-932B-BE6B2AB9F8B1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -17,8 +15,6 @@ Global
{D635EAA4-25EF-45D7-8AE4-A4A4EA71FE54}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D635EAA4-25EF-45D7-8AE4-A4A4EA71FE54}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D635EAA4-25EF-45D7-8AE4-A4A4EA71FE54}.Release|Any CPU.Build.0 = Release|Any CPU
{88C65DD5-F80F-4497-932B-BE6B2AB9F8B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{88C65DD5-F80F-4497-932B-BE6B2AB9F8B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -0,0 +1,426 @@
#-*- encoding:utf-8 -*-
import clr
clr.AddReference("System")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
clr.AddReference("Kingdee.BOS.App")
clr.AddReference("Kingdee.BOS.Contracts")
from Kingdee.BOS import *
from Kingdee.BOS.Contracts import *
from Kingdee.BOS.Contracts.Report import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata import *
from Kingdee.BOS.Core.Report import *
from Kingdee.BOS.Core.SqlBuilder import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.Orm.DataEntity import *
from System import *
from System.ComponentModel import *
from System.Collections.Generic import *
from System.Text import *
from System.Threading.Tasks import *
#初始化
def Initialize():
this.ReportProperty.ReportName = LocaleValue("回款报表#", this.Context.UserLocale.LCID)
this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL
this.IsCreateTempTableByPlugin = True
this.ReportProperty.IsGroupSummary = True
this.ReportProperty.SimpleAllCols = False
#设置标题
def GetReportTitles(Filter):
reportTitles = ReportTitles()
customFiler = Filter.FilterParameter.CustomFilter
if customFiler:
F_YWZZ = customFiler["F_YWZZ"]
FStartDate = customFiler["F_SDate"]
FEndDate = customFiler["F_EDate"]
FCust = customFiler["FCust"]
FZZHTH = customFiler["F_contractnumber"]
if FStartDate != None and FStartDate.ToString() != "":
reportTitles.AddTitle("FSDate",str(FStartDate.ToString("yyyy-MM-dd")))
if FEndDate != None and FEndDate.ToString() != "":
reportTitles.AddTitle("FEDate",str(FEndDate.ToString("yyyy-MM-dd")))
if FCust != None:
reportTitles.AddTitle("FCust",str(FCust["Name"].ToString()))
reportTitles.AddTitle("FZZHTH",FZZHTH)
return reportTitles
#设置单据列
def GetReportHeaders(Filter):
header = ReportHeader()
# headerch = ReportHeader()
header.AddChild("业务日期",LocaleValue("业务日期",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
#header.AddChild("收款明细",LocaleValue("收款明细",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("日期",LocaleValue("日期",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("ShouKuanBillNo",LocaleValue("收款单号",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("付款名称",LocaleValue("付款名称",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("合同名称",LocaleValue("合同名称",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("金额",LocaleValue("金额(本位币)",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
header.AddChild("分摊金额",LocaleValue("分摊金额(本位币)",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
header.AddChild("订单号",LocaleValue("订单号",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("销售员",LocaleValue("销售员",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("SBU",LocaleValue("SBU",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("明细区域",LocaleValue("明细区域",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("备注",LocaleValue("备注",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("到期日期",LocaleValue("到期日期(银承)",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("款到发货",LocaleValue("款到发货",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
header.AddChild("一至六个月",LocaleValue("1-6个月",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
header.AddChild("七至十二个月",LocaleValue("7-12个月",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
header.AddChild("一至二年",LocaleValue("1-2年",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
header.AddChild("二至三年",LocaleValue("2-3年",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
header.AddChild("三至四年",LocaleValue("3-4年",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
header.AddChild("四至五年",LocaleValue("4-5年",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
header.AddChild("五年以上",LocaleValue("5年以上",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
header.AddChild("账龄阶段",LocaleValue("账龄/阶段",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("账龄月",LocaleValue("账龄/月",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
header.AddChild("币别",LocaleValue("币别",this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar)
header.AddChild("分摊比例",LocaleValue("分摊比例",this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal)
return header
#创建临时报表
def BuilderReportSqlAndTempTable(Filter,tableName):
# strFilter = GetFilterWhere(Filter)
strFilter = ""
seqFld = String.format(this.KSQL_SEQ,OrderColumn(Filter))
customFiler = Filter.FilterParameter.CustomFilter
#组织ID
ZZID = "0" if customFiler["F_YWZZ"] == None else str(customFiler["F_YWZZ"]["Id"])
#客户ID
KHID = "0" if customFiler["FCust"] == None else str(customFiler["FCust"]["Id"])
#日期类型
RQLX = str(customFiler["F_DateType"])
#币别
BB = "0" if customFiler["F_Currency"] == None else str(customFiler["F_Currency"]["Name"])
#只看特殊核销
# raise Exception(BB)
ZKTSHX = customFiler["F_ZKTSHX"]
#不看特殊核销
BKTSHX = customFiler["F_BKTSHX"]
#收款单号
SKDH = "" if customFiler["F_RECEIVEBILLNO"] == None else str(customFiler["F_RECEIVEBILLNO"])
#收款开始/结束日期
SKRQS = ""
SKRQE = ""
#核销开始/结束日期
HXRQS = ""
HXRQE = ""
tempsql = "SELECT * FROM #TEMP3 WHERE 1 = 1"
if customFiler["F_SDate"] != None and customFiler["F_SDate"].ToString() != "":
if RQLX == "1":
SKRQS = str(customFiler["F_SDate"].ToString("yyyy-MM-dd"))
strFilter += " AND (业务日期 >= '{0}' OR ISNULL(业务日期,'') = '' OR 分组 IN (3,4))".format(str(customFiler["F_SDate"].ToString("yyyy-MM-dd")))
if RQLX == "2":
strFilter += " AND (日期 >= '{0}' OR ISNULL(日期,'') = '' OR 分组 IN (3,4))".format(str(customFiler["F_SDate"].ToString("yyyy-MM-dd")))
HXRQS = str(customFiler["F_SDate"].ToString("yyyy-MM-dd"))
if customFiler["F_EDate"] != None and customFiler["F_EDate"].ToString() != "":
if RQLX == "1":
strFilter += " AND (业务日期 <= '{0}' OR ISNULL(业务日期,'') = '' OR 分组 IN (3,4))".format(str(customFiler["F_EDate"].ToString("yyyy-MM-dd")))
SKRQE = str(customFiler["F_EDate"].ToString("yyyy-MM-dd"))
if RQLX == "2":
strFilter += " AND (日期 <= '{0}' OR ISNULL(日期,'') = '' OR 分组 IN (3,4))".format(str(customFiler["F_EDate"].ToString("yyyy-MM-dd")))
HXRQE = str(customFiler["F_EDate"].ToString("yyyy-MM-dd"))
if customFiler["F_contractnumber"] != None and customFiler["F_contractnumber"].ToString() != "":
strFilter += " AND 订单号 = '{0}'".format(str(customFiler["F_contractnumber"].ToString()))
if customFiler["F_Currency"] != None and customFiler["F_Currency"].ToString() != "":
strFilter += " AND (币别 = '{0}' OR 分组 IN (3,4) OR '{0}' = '0')".format(BB)
if ZKTSHX:
strFilter += " AND 分组 IN (3,4)"
if BKTSHX:
strFilter += " AND 分组 NOT IN (3,4)"
if SKDH != "":
strFilter += " AND ShouKuanBillNo = '{0}'".format(SKDH)
sql = String.format("""/*dialect*/
/*抓取销售订单及分摊单数据*/
SELECT T1.FID,T1.F_CONTRACTNUMBER AS '订单号',CASE ISNULL(T3.F_RES,'') WHEN '' THEN ISNULL(T5.FNAME,CASE ISNULL(T1.F_RESPONSIBLE,'') WHEN '' THEN T4.FNAME ELSE T1.F_RESPONSIBLE END) ELSE F_RES END AS '销售员'
,FSHARERATE AS '分摊比例',FEXCHANGERATE AS '汇率',T7.FNAME AS '合同名称'
INTO #TEMP1
FROM T_SAL_ORDER T1
LEFT JOIN T_PerformanceSharing_LK T2 ON T2.FSID = T1.FID
LEFT JOIN T_PerformanceSharingEntry T3 ON T2.FID = T3.FID
LEFT JOIN V_BD_SALESMAN_L T4 ON T4.FID = T1.FSALERID AND T4.FLOCALEID = 2052
LEFT JOIN V_BD_SALESMAN_L T5 ON T5.FID = T3.FSALEID AND T5.FLOCALEID = 2052
LEFT JOIN T_SAL_ORDERFIN T6 ON T1.FID = T6.FID
LEFT JOIN T_BD_CUSTOMER_L T7 ON T1.FCUSTID = T7.FCUSTID AND T7.FLOCALEID = 2052
WHERE T1.FID IN (SELECT XiaoShouFid FROM ZZZ_HeXiaoBook)
AND T1.FDOCUMENTSTATUS = 'C'
--AND (T1.FSALEORGID = {4} OR {4} = 0)
--AND (T1.FCUSTID = {5} OR {5} = 0)
/*抓取收款单及应收票据数据*/
SELECT T1.FID,FORMAT(T1.FDATE,'yyyy-MM-dd') AS '收款日期',T1.FRECAMOUNT AS '收款金额'
,T3.FNAME AS '付款单位',T4.FNAME AS '结算方式',FORMAT(T6.FDUEDATE,'yyyy-MM-dd') AS '到期日期'
INTO #TEMP2
FROM T_AR_RECEIVEBILL T1
LEFT JOIN T_AR_RECEIVEBILLENTRY T2 ON T1.FID = T2.FID
LEFT JOIN T_BD_CUSTOMER_L T3 ON T1.FPAYUNITTYPE = 'BD_Customer' AND T1.FPAYUNIT = T3.FCUSTID AND T3.FLOCALEID = 2052
LEFT JOIN T_BD_SETTLETYPE_L T4 ON T2.FSETTLETYPEID = T4.FID AND T4.FLOCALEID = 2052
LEFT JOIN T_AR_RECEIVEBILLREC T5 ON T5.FID = T2.FID
LEFT JOIN T_CN_BILLRECEIVABLE T6 ON T5.FBILLID = T6.FID
WHERE 1=1
--AND T1.FID IN (SELECT ShouKuanFid FROM ZZZ_HeXiaoBook)
AND T1.FDOCUMENTSTATUS = 'C'
AND (T1.FPAYORGID = {4} OR {4} = 0)
AND (T1.FPAYUNIT = {5} OR {5} = 0)
--AND (T1.FDATE >= '{6}' OR '{6}' = '')
--AND (T1.FDATE <= '{7}' OR '{7}' = '')
/*抓取核销流水中间表正常核销部分*/
SELECT
T1.Fid,T1.XiaoShouFid,T1.ShouKuanFid,T1.ShouKuanBillNo
,CAST(ISNULL(T2.分摊比例,0)AS decimal(10,2)) AS '分摊比例'
,ROW_NUMBER() OVER(PARTITION BY T1.ShouKuanFid ORDER BY T1.ShouKuanFid,XiaoShouFid) AS '分摊序号'
,FORMAT(T1.ShouKuanFDate,'yyyy-MM-dd') AS '业务日期'
,CAST('' AS VARCHAR(500)) AS '收款明细'
,CAST('' AS VARCHAR(500)) AS '日期'
,CAST('' AS VARCHAR(500)) AS '付款名称'
,ISNULL(T2.合同名称,'') AS '合同名称'
,CAST(0 AS decimal(10,2)) AS '金额'
,CAST((ISNULL(T2.分摊比例,100)/100 * T1.BenCiHeXiao * T2.汇率) AS decimal(10,2)) AS '分摊金额'
,T2.订单号 AS '订单号'
,ISNULL(T2.销售员,'') AS '销售员'
,CAST('' AS VARCHAR(500)) AS 'SBU'
,CAST('' AS VARCHAR(500)) AS '明细区域'
,T1.Remark AS '备注'
,CAST('' AS VARCHAR(500)) AS '到期日期'
,CAST(0 AS decimal(10,2)) AS '款到发货'
,CAST(0 AS decimal(10,2)) AS '一至六个月'
,CAST(0 AS decimal(10,2)) AS '七至十二个月'
,CAST(0 AS decimal(10,2)) AS '一至二年'
,CAST(0 AS decimal(10,2)) AS '二至三年'
,CAST(0 AS decimal(10,2)) AS '三至四年'
,CAST(0 AS decimal(10,2)) AS '四至五年'
,CAST(0 AS decimal(10,2)) AS '五年以上'
,CAST('' AS VARCHAR(500)) AS '账龄阶段'
,T1.ZhangLing AS '账龄月'
,CAST('' AS VARCHAR(500)) AS '币别'
,1 AS '分组'
INTO #TEMP3
FROM ZZZ_HeXiaoBook T1
INNER JOIN #TEMP1 T2 ON T1.XiaoShouFid = T2.FID
WHERE T1.ShouKuanType = 0
AND (T1.FSaleOrgId = {4} OR {4} = 0)
AND (FORMAT(T1.ShouKuanFDate,'yyyy-MM-dd') >= '{8}' OR '{8}' = '')
AND (FORMAT(T1.ShouKuanFDate,'yyyy-MM-dd') <= '{9}' OR '{9}' = '')
/*插入待核销金额行*/
INSERT INTO #TEMP3 (Fid,ShouKuanFid,ShouKuanBillNo,分摊序号,日期,销售员,订单号,金额,分摊金额,付款名称,合同名称,款到发货,一至六个月,七至十二个月,一至二年,二至三年,三至四年,四至五年,五年以上,账龄阶段,账龄月,分组)
SELECT DISTINCT
'99999999' AS 'Fid'
,T1.FID
,T1.FBILLNO
,'99999999' AS '分摊序号'
,FORMAT(T1.FDATE,'yyyy-MM-dd') AS '日期'
,'' AS '销售员'
,'待核销' AS '订单号'
,0 AS '金额'
,ISNULL(T1.FRECAMOUNT,0)-(ISNULL(T1.F_AMOUNT,0)*ISNULL(T1.FEXCHANGERATE,0)) AS '分摊金额'
,'' AS '付款名称'
,T3.FNAME AS '合同名称'
,0 AS '款到发货'
,0 AS '一至六个月'
,0 AS '七至十二个月'
,0 AS '一至二年'
,0 AS '二至三年'
,0 AS '三至四年'
,0 AS '四至五年'
,0 AS '五年以上'
,CAST('' AS VARCHAR(500)) AS '账龄阶段'
,0
,1 AS '分组'
FROM T_AR_RECEIVEBILL T1
--INNER JOIN #TEMP3 T2 ON T1.FID = T2.ShouKuanFid
LEFT JOIN T_BD_CUSTOMER_L T3 ON T1.FPAYUNITTYPE = 'BD_Customer' AND T1.FPAYUNIT = T3.FCUSTID AND T3.FLOCALEID = 2052
WHERE ISNULL(T1.FRECAMOUNTFOR,0)-ISNULL(T1.F_AMOUNT,0) > 0
AND T1.FDOCUMENTSTATUS = 'C'
AND (T1.FPAYORGID = {4} OR {4} = 0)
AND ((T1.FPAYUNIT = {5} AND T1.FPAYUNITTYPE = 'BD_Customer') OR {5} = 0)
AND (T1.FDATE >= '{6}' OR '{6}' = '')
AND (T1.FDATE <= '{7}' OR '{7}' = '')
/*抓取核销流水中间表特殊核销部分*/
INSERT INTO #TEMP3 (Fid,XiaoShouFid,ShouKuanFid,ShouKuanBillNo,分摊比例,分摊序号,业务日期,付款名称,合同名称,金额,分摊金额,订单号,销售员,备注,账龄月,币别,分组)
SELECT a.* FROM(
SELECT 0 Fid,0 XiaoShouFid,0 ShouKuanFid,'' ShouKuanBillNo,0 分摊比例,0 分摊序号,'特殊核销' 业务日期,'' 付款名称,'' 合同名称,0 金额,0 分摊金额,'' 订单号,'' 销售员,'' 备注,0 账龄月,'' 币别,3 分组
UNION ALL
SELECT
T1.Fid,T1.XiaoShouFid,T1.ShouKuanFid,T1.ShouKuanBillNo
,CAST(ISNULL(T2.分摊比例,0)AS decimal(10,2)) AS '分摊比例'
,ROW_NUMBER() OVER(PARTITION BY T1.ShouKuanFid ORDER BY T1.ShouKuanFDate) AS '分摊序号'
,FORMAT(T1.ShouKuanFDate,'yyyy-MM-dd') AS '业务日期'
,ISNULL(T2.合同名称,'') AS '付款名称'
,ISNULL(T2.合同名称,'') AS '合同名称'
,CAST((ISNULL(T2.分摊比例,100)/100 * T1.BenCiHeXiao * T2.汇率) AS decimal(10,2)) AS '金额'
,CAST((ISNULL(T2.分摊比例,100)/100 * T1.BenCiHeXiao * T2.汇率) AS decimal(10,2)) AS '分摊金额'
,T2.订单号 AS '订单号'
,ISNULL(T2.销售员,'') AS '销售员'
,T1.Remark AS '备注'
,T1.ZhangLing AS '账龄月'
,CAST('' AS VARCHAR(500)) AS '币别'
,CASE T1.ShouKuanType WHEN 1 THEN 3 WHEN 2 THEN 4 END AS '分组'
FROM ZZZ_HeXiaoBook T1
INNER JOIN #TEMP1 T2 ON T1.XiaoShouFid = T2.FID
WHERE T1.ShouKuanType IN (1,2)
AND (T1.FSaleOrgId = {4} OR {4} = 0)
AND (FORMAT(T1.ShouKuanFDate,'yyyy-MM-dd') >= '{8}' OR '{8}' = '')
AND (FORMAT(T1.ShouKuanFDate,'yyyy-MM-dd') <= '{9}' OR '{9}' = '')
)a
/*修改待核销分摊序号*/
SELECT *, ROW_NUMBER() OVER(PARTITION BY ShouKuanFid ORDER BY ShouKuanFid,分摊序号) rownumber
INTO #TEMP4
FROM #TEMP3
UPDATE T1 SET 分摊序号 =T2.rownumber FROM #TEMP3 T1
INNER JOIN #TEMP4 T2 ON T1.Fid = T2.Fid
AND T1.ShouKuanFid = T2.ShouKuanFid
AND T1.分摊序号 = T2.分摊序号
/*更新备注字段*/
UPDATE T1 SET 备注 = T2.结算方式 +备注 FROM #TEMP3 T1
INNER JOIN #TEMP2 T2 ON T1.ShouKuanFid = T2.FID
WHERE T2.结算方式 <> '电汇'
/*更新收款日期*/
UPDATE T1 SET 日期 = T2.收款日期 FROM #TEMP3 T1
INNER JOIN #TEMP2 T2 ON T1.ShouKuanFid = T2.FID
/*更新付款单位字段*/
UPDATE A SET 付款名称 = T2.付款单位 FROM #TEMP3 A
INNER JOIN (SELECT A.FID
,CASE WHEN REPLACE(F_OTHER,' ','') <> '' AND F_OTHER IS NOT NULL THEN F_OTHER ELSE C.FNAME END AS '付款单位'
FROM T_AR_RECEIVEBILL A
LEFT JOIN T_AR_RECEIVEBILLENTRY B ON A.FID = B.FID
LEFT JOIN T_BD_CUSTOMER_L C ON A.FPAYUNITTYPE = 'BD_Customer' AND A.FPAYUNIT = C.FCUSTID AND C.FLOCALEID = 2052
) T2 ON A.ShouKuanFid = T2.FID
WHERE 分摊序号 = 1
/*更新币别字段*/
UPDATE A SET 币别 = T2.币别 FROM #TEMP3 A
INNER JOIN (SELECT A.FID
,D.FNAME AS '币别'
FROM T_AR_RECEIVEBILL A
LEFT JOIN T_AR_RECEIVEBILLENTRY B ON A.FID = B.FID
LEFT JOIN T_BD_CURRENCY_L D ON D.FCURRENCYID = A.FCURRENCYID AND D.FLOCALEID = 2052
) T2 ON A.ShouKuanFid = T2.FID
--/*更新待核销合同名称字段*/
--UPDATE A SET 合同名称 = ISNULL(付款名称,'') FROM #TEMP3 A
--WHERE 订单号 = '待核销' AND 分摊序号 = 1
/*只更新分摊序号为1的收款金额字段*/
UPDATE T1 SET 金额 = T2.收款金额 FROM #TEMP3 T1
INNER JOIN #TEMP2 T2 ON T1.ShouKuanFid = T2.FID
WHERE T1.分摊序号 = 1
/*更新到期日期银承字段*/
UPDATE T1 SET 到期日期 = T2.到期日期 FROM #TEMP3 T1
INNER JOIN #TEMP2 T2 ON T1.ShouKuanFid = T2.FID
WHERE T2.结算方式 IN ('银行承兑汇票','商业承兑汇票')
/*更新SBU明细区域字段*/
UPDATE #TEMP3 SET SBU=b.区域,[明细区域]=b.明细区域
FROM (SELECT DISTINCT ACO22.名称,ACO22.明细区域,ACO22.区域 FROM ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO22 ) b
WHERE 销售员=b.名称
/*处理分摊金额尾差*/
UPDATE T1 SET 分摊金额 = ISNULL(T1.分摊金额,0)+(ISNULL(T1.金额,0)-ISNULL(T2.分摊金额,0)) FROM #TEMP3 T1
INNER JOIN(SELECT ShouKuanFid,SUM(ISNULL(分摊金额,0)) 分摊金额 FROM #TEMP3 GROUP BY ShouKuanFid) T2 ON T1.ShouKuanFid = T2.ShouKuanFid
WHERE T1.分摊序号 = 1 AND T1.金额>0
/*更新账龄字段*/
UPDATE #TEMP3 SET
[账龄阶段]=CASE WHEN [账龄月]>=1 AND [账龄月]<=6 THEN '1-6个月' WHEN [账龄月]>=7 AND [账龄月]<=12 THEN '7-12个月' WHEN [账龄月]>=13 AND [账龄月]<=24
THEN '1-2年' WHEN [账龄月]>=25 AND [账龄月]<=36 THEN '2-3年' WHEN [账龄月]>=37 AND [账龄月]<=48 THEN '3-4年' WHEN [账龄月]>=49 THEN '5年以上' ELSE '款到发货' END
--,[风险评估级别]=CASE WHEN [账龄月]>=1 AND [账龄月]<=6 THEN '正常' WHEN [账龄月]>=7 AND [账龄月]<=12 THEN '催款函' WHEN [账龄月]>=13 AND [账龄月]<=18
--THEN '律师' WHEN [账龄月]>=19 THEN '诉讼' ELSE '' END
,[一至六个月]=CASE WHEN [账龄月]>=1 AND [账龄月]<=6 THEN 分摊金额 ELSE 0 END
,[七至十二个月]=CASE WHEN [账龄月]>=7 AND [账龄月]<=12 THEN 分摊金额 ELSE 0 END
,[一至二年]=CASE WHEN [账龄月]>=13 AND [账龄月]<=24 THEN 分摊金额 ELSE 0 END
,[二至三年]=CASE WHEN [账龄月]>=25 AND [账龄月]<=36 THEN 分摊金额 ELSE 0 END
,[三至四年]=CASE WHEN [账龄月]>=37 AND [账龄月]<=48 THEN 分摊金额 ELSE 0 END
,[四至五年]=CASE WHEN [账龄月]>=49 AND [账龄月]<=60 THEN 分摊金额 ELSE 0 END
,[五年以上]=CASE WHEN [账龄月]> 60 THEN 分摊金额 ELSE 0 END
,[款到发货]=CASE WHEN [账龄月]<= 0 THEN 分摊金额 ELSE 0 END
WHERE 业务日期 <> '特殊核销'
/*无特殊核销时清空特殊核销行栏头*/
IF (SELECT COUNT(*) FROM #TEMP3 WHERE 分组 IN (3,4)) = 1
BEGIN
DELETE FROM #TEMP3 WHERE 分组 IN (3,4)
END
UPDATE #TEMP3 SET 分组 = CASE WHEN Fid = '99999999' AND 分摊序号 = 1 THEN 2 ELSE 1 END WHERE 分组 NOT IN (3,4)
/*分组1为正常核销分组2为待核销分组3,4为特殊核销*/
SELECT t1.*,{0}
INTO {1}
FROM (
{3}
{2}
) t1
DROP TABLE #TEMP1,#TEMP2,#TEMP3,#TEMP4
""",seqFld,tableName,strFilter,tempsql,ZZID,KHID,SKRQS,SKRQE,HXRQS,HXRQE)
DBUtils.ExecuteDynamicObject(this.Context, sql)
#设置汇总信息
def GetSummaryColumnInfo(Filter):
lstfield = List[SummaryField]()
sField1 = SummaryField("金额",Core.Enums.BOSEnums.Enu_SummaryType.SUM)
sField2 = SummaryField("分摊金额",Core.Enums.BOSEnums.Enu_SummaryType.SUM)
sField3 = SummaryField("款到发货",Core.Enums.BOSEnums.Enu_SummaryType.SUM)
sField4 = SummaryField("一至六个月",Core.Enums.BOSEnums.Enu_SummaryType.SUM)
sField5 = SummaryField("七至十二个月",Core.Enums.BOSEnums.Enu_SummaryType.SUM)
sField6 = SummaryField("一至二年",Core.Enums.BOSEnums.Enu_SummaryType.SUM)
sField7 = SummaryField("二至三年",Core.Enums.BOSEnums.Enu_SummaryType.SUM)
sField8 = SummaryField("三至四年",Core.Enums.BOSEnums.Enu_SummaryType.SUM)
sField9 = SummaryField("四至五年",Core.Enums.BOSEnums.Enu_SummaryType.SUM)
sField10 = SummaryField("五年以上",Core.Enums.BOSEnums.Enu_SummaryType.SUM)
lstfield.Add(sField1)
lstfield.Add(sField2)
lstfield.Add(sField3)
lstfield.Add(sField4)
lstfield.Add(sField5)
lstfield.Add(sField6)
lstfield.Add(sField7)
lstfield.Add(sField8)
lstfield.Add(sField9)
lstfield.Add(sField10)
return lstfield
#排序
def OrderColumn(Filter):
OrderBy = ""
datasort = Filter.FilterParameter.SortString.ToString()
if datasort != "":
OrderBy = datasort
else:
OrderBy = " 分组,ShouKuanFid,分摊序号,业务日期 "
return OrderBy
#关闭清空临时表
def CloseReport():
this.DropTempTable()

View File

@ -0,0 +1,31 @@
import clr
clr.AddReference("System")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
clr.AddReference("Kingdee.BOS.App")
clr.AddReference("Kingdee.BOS.Contracts")
from Kingdee.BOS import *
from Kingdee.BOS.Contracts import *
from Kingdee.BOS.Contracts.Report import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata import *
from Kingdee.BOS.Core.Report import *
from Kingdee.BOS.Core.Report.PlugIn import *
from Kingdee.BOS.Core.Report.PlugIn.Args import *
from Kingdee.BOS.Core.SqlBuilder import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Util import *
from System import *
from System.ComponentModel import *
from System.Collections.Generic import *
from System.Text import *
#忽略系统公共参数隐藏尾零,格式化小数字段为两位小数
def FormatCellValue(args):
if (args.Header.ColType == SqlStorageType.SqlDecimal):
value = Decimal.Parse(args.FormateValue)
afterValue = value.ToString("N")
args.FormateValue = afterValue

View File

@ -75,17 +75,17 @@ namespace Pilot.Report.Exploitation.AccountsReceivableStatements
header.AddChild("K3发货金额", new LocaleValue("K3发货金额"), SqlStorageType.SqlDecimal);
header.AddChild("星空发货数量", new LocaleValue("星空发货数量"), SqlStorageType.SqlDecimal);
header.AddChild("星空发货金额", new LocaleValue("星空发货金额"), SqlStorageType.SqlDecimal);
header.AddChild("ShipmentsAmount", new LocaleValue("发货金额"), SqlStorageType.SqlDecimal);
header.AddChild("ShipmentsAmount", new LocaleValue("发货金额"), SqlStorageType.SqlDecimal);
header.AddChild("K3退货数量", new LocaleValue("K3退货数量"), SqlStorageType.SqlDecimal);
header.AddChild("K3退货金额", new LocaleValue("K3退货金额"), SqlStorageType.SqlDecimal);
header.AddChild("星空退货数量", new LocaleValue("星空退货数量"), SqlStorageType.SqlDecimal);
header.AddChild("星空退货金额", new LocaleValue("星空退货金额"), SqlStorageType.SqlDecimal);
header.AddChild("FBillAllAmount", new LocaleValue("退货金额"), SqlStorageType.SqlDecimal);
header.AddChild("PPBillingDate", new LocaleValue("普票开票日期"), SqlStorageType.Sqlvarchar);
header.AddChild("PPFALLAmountFor", new LocaleValue("普票开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("ZPBillingDate", new LocaleValue("专票开票日期"), SqlStorageType.Sqlvarchar);
header.AddChild("ZPFALLAmountFor", new LocaleValue("专票开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("FALLAMOUNTFOR", new LocaleValue("开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("FBillAllAmount", new LocaleValue("退货金额"), SqlStorageType.SqlDecimal);
header.AddChild("PPBillingDate", new LocaleValue("星空普票开票日期"), SqlStorageType.Sqlvarchar);
header.AddChild("PPFALLAmountFor", new LocaleValue("星空普票开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("ZPBillingDate", new LocaleValue("星空专票开票日期"), SqlStorageType.Sqlvarchar);
header.AddChild("ZPFALLAmountFor", new LocaleValue("星空专票开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("FALLAMOUNTFOR", new LocaleValue("开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("PaymentAmount", new LocaleValue("回款金额"), SqlStorageType.SqlDecimal);
header.AddChild("ShippedDebt", new LocaleValue("已出货欠款"), SqlStorageType.SqlDecimal);
header.AddChild("InvoicedDebt", new LocaleValue("已开票欠款"), SqlStorageType.SqlDecimal);

View File

@ -81,20 +81,20 @@ namespace Pilot.Report.Exploitation.AccountsReceivableStatements
header.AddChild("K3发货金额", new LocaleValue("K3发货金额"), SqlStorageType.SqlDecimal);
header.AddChild("星空发货数量", new LocaleValue("星空发货数量"), SqlStorageType.SqlDecimal);
header.AddChild("星空发货金额", new LocaleValue("星空发货金额"), SqlStorageType.SqlDecimal);
header.AddChild("ShipmentsNum", new LocaleValue("发货数量"), SqlStorageType.SqlDecimal);
header.AddChild("ShipmentsAmount", new LocaleValue("发货金额"), SqlStorageType.SqlDecimal);
header.AddChild("ShipmentsNum", new LocaleValue("发货数量"), SqlStorageType.SqlDecimal);
header.AddChild("ShipmentsAmount", new LocaleValue("发货金额"), SqlStorageType.SqlDecimal);
header.AddChild("ReturnDate", new LocaleValue("退货日期"), SqlStorageType.Sqlvarchar);
header.AddChild("K3退货数量", new LocaleValue("K3退货数量"), SqlStorageType.SqlDecimal);
header.AddChild("K3退货金额", new LocaleValue("K3退货金额"), SqlStorageType.SqlDecimal);
header.AddChild("星空退货数量", new LocaleValue("星空退货数量"), SqlStorageType.SqlDecimal);
header.AddChild("星空退货金额", new LocaleValue("星空退货金额"), SqlStorageType.SqlDecimal);
header.AddChild("ReturnNum", new LocaleValue("退货数量"), SqlStorageType.SqlInt);
header.AddChild("ReturnAmount", new LocaleValue("退货金额"), SqlStorageType.SqlDecimal);
header.AddChild("PPBillingDate", new LocaleValue("普票开票日期"), SqlStorageType.Sqlvarchar);
header.AddChild("PPBillingAmount", new LocaleValue("普票开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("ZPBillingDate", new LocaleValue("专票开票日期"), SqlStorageType.Sqlvarchar);
header.AddChild("ZPBillingAmount", new LocaleValue("专票开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("BillingAmount", new LocaleValue("开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("ReturnNum", new LocaleValue("退货数量"), SqlStorageType.SqlInt);
header.AddChild("ReturnAmount", new LocaleValue("退货金额"), SqlStorageType.SqlDecimal);
header.AddChild("PPBillingDate", new LocaleValue("星空普票开票日期"), SqlStorageType.Sqlvarchar);
header.AddChild("PPBillingAmount", new LocaleValue("星空普票开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("ZPBillingDate", new LocaleValue("星空专票开票日期"), SqlStorageType.Sqlvarchar);
header.AddChild("ZPBillingAmount", new LocaleValue("星空专票开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("BillingAmount", new LocaleValue("开票金额"), SqlStorageType.SqlDecimal);
header.AddChild("PaymentDate", new LocaleValue("回款日期"), SqlStorageType.Sqlvarchar);
header.AddChild("PaymentAmount", new LocaleValue("回款金额"), SqlStorageType.SqlDecimal);
header.AddChild("ShippedDebt", new LocaleValue("已出货欠款"), SqlStorageType.SqlDecimal);
@ -257,7 +257,8 @@ namespace Pilot.Report.Exploitation.AccountsReceivableStatements
{
fState = "未完结订单";
}
//是否月结客户
var SFQJFWDZ = customFilter["F_ALL_GROUP2"]?.ToString();
//这里是报表页面的标识
reportTitles.AddTitle("FState", fGROUP == null ? "" : fState);
reportTitles.AddTitle("FClient", fClientList == null ? "" : fClientList);
@ -266,6 +267,7 @@ namespace Pilot.Report.Exploitation.AccountsReceivableStatements
reportTitles.AddTitle("FProject", fProjectList == null ? "" : string.Join(",", fProjectList));
reportTitles.AddTitle("F_ZZHTH", ZZHTH == null ? "" : ZZHTH);
reportTitles.AddTitle("F_XSY", XSYFID == null ? "" : XSYFID);
reportTitles.AddTitle("F_SFYJKH", SFQJFWDZ == null ? "" : SFQJFWDZ);
}
return reportTitles;
}

View File

@ -3,6 +3,7 @@ using Kingdee.BOS.Core;
using Kingdee.BOS.Core.CommonFilter.ConditionVariableAnalysis;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Metadata.FormElement;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Core.Report.PlugIn;
@ -118,6 +119,9 @@ namespace Pilot.Report.Exploitation.AccountsReceivable
cellStyle2.BorderLeft = BorderStyle.Thin;
cellStyle2.BorderRight = BorderStyle.Thin;
//垂直居中
cellStyle2.VerticalAlignment = VerticalAlignment.Center;
// 创建单元格样式---------------------------------------
ICellStyle style = workbook.CreateCellStyle();
@ -218,15 +222,33 @@ namespace Pilot.Report.Exploitation.AccountsReceivable
style2.SetFont(font2);
int n = 14;
string GroupCONTRACTNUMBER = "";
int GroupIndex = 13;
int GroupCount = 0;
int j = 13;
for (var i = 0; i < list.Count; i++)
{
//不导出待核销
if (list[i]["Number"].ToString() == "待核销")
{
continue;
}
string date = string.IsNullOrWhiteSpace(list[i]["DATE"].ToString()) ? "" : list[i]["DATE"].ToString().Split(' ')[0];
string ShipmentsDate = string.IsNullOrWhiteSpace(list[i]["ShipmentsDate"].ToString()) ? "" : list[i]["ShipmentsDate"].ToString().Split(' ')[0];
string PaymentDate = string.IsNullOrWhiteSpace(list[i]["PaymentDate"].ToString()) ? "" : list[i]["PaymentDate"].ToString().Split(' ')[0];
string BillingDate = string.IsNullOrWhiteSpace(list[i]["ZPBillingDate"].ToString()) ? "" : list[i]["ZPBillingDate"].ToString().Split(' ')[0];
string ReturnDate = string.IsNullOrWhiteSpace(list[i]["ReturnDate"].ToString()) ? "" : list[i]["ReturnDate"].ToString().Split(' ')[0];
IRow rowi = sheet.CreateRow(13 + i);
//将合计行放到最下方
IRow rowi = sheet.CreateRow(j + i);
if (list[i]["Number"].ToString() == "合计")
{
rowi = sheet.CreateRow(j + list.Count-2);
j = 12;
}
ICell c1 = rowi.CreateCell(0); c1.SetCellValue(list[i]["Number"].ToString()); c1.CellStyle = cellStyle;
ICell c2 = rowi.CreateCell(1); c2.SetCellValue(""+date+""); c2.CellStyle = cellStyle2;
ICell c3 = rowi.CreateCell(2); c3.SetCellValue(list[i]["CONTRACTNUMBER"].ToString()); c3.CellStyle = cellStyle2;
@ -327,6 +349,70 @@ namespace Pilot.Report.Exploitation.AccountsReceivable
ICell c22 = rowi.CreateCell(21); c22.SetCellValue(list[i]["IsEnded"].ToString()); c22.CellStyle = cellStyle2;
ICell c23 = rowi.CreateCell(22); c23.SetCellValue(list[i]["Remark"].ToString()); c23.CellStyle = cellStyle2;
n++;
//根据订单号分组合并单元格
if(list[i]["CONTRACTNUMBER"].ToString() != GroupCONTRACTNUMBER || i == list.Count-2)
{
int k = (i == list.Count - 2) ? 0 : 1;
if (GroupCount > 1)
{
// 创建CellRangeAddress对象
CellRangeAddress cellRangeAddress = new CellRangeAddress(GroupIndex, j + i - k, 1, 1);
CellRangeAddress cellRangeAddress2 = new CellRangeAddress(GroupIndex, j + i - k, 2, 2);
CellRangeAddress cellRangeAddress3 = new CellRangeAddress(GroupIndex, j + i - k, 3, 3);
CellRangeAddress cellRangeAddress8 = new CellRangeAddress(GroupIndex, j + i - k, 8, 8);
CellRangeAddress cellRangeAddress9 = new CellRangeAddress(GroupIndex, j + i - k, 9, 9);
CellRangeAddress cellRangeAddress15 = new CellRangeAddress(GroupIndex, j + i - k, 15, 15);
CellRangeAddress cellRangeAddress16 = new CellRangeAddress(GroupIndex, j + i - k, 16, 16);
CellRangeAddress cellRangeAddress17 = new CellRangeAddress(GroupIndex, j + i - k, 17, 17);
CellRangeAddress cellRangeAddress18 = new CellRangeAddress(GroupIndex, j + i - k, 18, 18);
CellRangeAddress cellRangeAddress19 = new CellRangeAddress(GroupIndex, j + i - k, 19, 19);
CellRangeAddress cellRangeAddress20 = new CellRangeAddress(GroupIndex, j + i - k, 20, 20);
CellRangeAddress cellRangeAddress21 = new CellRangeAddress(GroupIndex, j + i - k, 21, 21);
// 检查并移除重叠的合并区域
RemoveOverlappingMergedRegions(sheet, cellRangeAddress);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress2);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress3);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress8);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress9);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress15);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress16);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress17);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress18);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress19);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress20);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress21);
// 合并单元格
sheet.AddMergedRegion(cellRangeAddress);
sheet.AddMergedRegion(cellRangeAddress2);
sheet.AddMergedRegion(cellRangeAddress3);
sheet.AddMergedRegion(cellRangeAddress8);
sheet.AddMergedRegion(cellRangeAddress9);
sheet.AddMergedRegion(cellRangeAddress15);
sheet.AddMergedRegion(cellRangeAddress16);
sheet.AddMergedRegion(cellRangeAddress17);
sheet.AddMergedRegion(cellRangeAddress18);
sheet.AddMergedRegion(cellRangeAddress19);
sheet.AddMergedRegion(cellRangeAddress20);
sheet.AddMergedRegion(cellRangeAddress21);
}
GroupCONTRACTNUMBER = list[i]["CONTRACTNUMBER"].ToString();
GroupIndex = j + i;
GroupCount = 1;
}
else
{
GroupCount++;
}
if(list[i]["Number"].ToString() == "合计")
{
c1.CellStyle = style3;
@ -540,7 +626,8 @@ namespace Pilot.Report.Exploitation.AccountsReceivable
sheet.AddMergedRegion(cellRangeAddress2);
sheet.AddMergedRegion(cellRangeAddress3);
}
//移除第二个工作表
workbook.RemoveSheetAt(1);
#endregion
#region Excel代码2

View File

@ -76,8 +76,8 @@ namespace GZ_LTHReportForms.YeJiPaiHangBang
header.AddChild("职位名称", new LocaleValue("职位名称"), SqlStorageType.Sqlvarchar);
header.AddChild("姓名", new LocaleValue("姓名"), SqlStorageType.Sqlvarchar);
header.AddChild("入司时间1", new LocaleValue("入司时间"), SqlStorageType.SqlDatetime);
header.AddChild("担任本职位日期1", new LocaleValue("担任本职位日期"), SqlStorageType.SqlDatetime);
header.AddChild("担任销售日期1", new LocaleValue("担任销售日期"), SqlStorageType.SqlDatetime);
//header.AddChild("担任本职位日期1", new LocaleValue("担任本职位日期"), SqlStorageType.SqlDatetime);
//header.AddChild("担任销售日期1", new LocaleValue("担任销售日期"), SqlStorageType.SqlDatetime);
header.AddChild("入职年限", new LocaleValue("入职年限"), SqlStorageType.Sqlvarchar);
header.AddChild("派诺集团_已进行集团业绩调整_含往年订单变更", new LocaleValue("派诺集团-已进行集团业绩调整(含往年订单变更)"), SqlStorageType.SqlDecimal);
header.AddChild("派诺业绩_含往年订单变更", new LocaleValue("派诺业绩(含往年订单变更)"), SqlStorageType.SqlDecimal);

View File

@ -1,4 +1,6 @@
ALTER PROCEDURE GZYJPHB_TH
ALTER PROCEDURE [dbo].[GZYJPHB_TH]
@FSDate NVARCHAR(50),
@FEDate NVARCHAR(50),
@FSaleOrgId nvarchar(1000)
@ -10,7 +12,9 @@ DECLARE @SixYearsAgoYear INT;
DECLARE @FEDateDate DATE = CAST(@FEDate AS DATE);
DECLARE @FSDateDate DATE = CAST(@FSDate AS DATE);
-- 结束日期加一天
set @FEDate = CASE @FEDate WHEN '' THEN '' ELSE FORMAT(DateAdd(DAY,1,CAST(@FEDate AS Date)),'yyyy-MM-dd') END
-- 提取年份
SET @Year = YEAR(@FSDate) - 1;
@ -44,23 +48,26 @@ TRUNCATE TABLE YJPHB_GZTH
SELECT A.FID AS FID
INTO #TEMP3
FROM T_SAL_ORDER A
INNER JOIN T_BD_CUSTOMER_L C ON C.FCUSTID= A.FCUSTID AND C.FLOCALEID= 2052
INNER JOIN T_BD_CUSTOMER_L C ON C.FCUSTID= A.FCUSTID AND C.FLOCALEID= 2052
INNER JOIN T_BD_CUSTOMER D ON C.FCUSTID= D.FCUSTID
LEFT JOIN V_BD_SALESMAN_L L ON L.fid = A.FSALERID
left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO AND M.FDOCUMENTSTATUS = 'C'
left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID
LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO ON ACO.=O.FNAME
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.=L.FNAME
WHERE A.FSALEORGID = 100302 AND
ACO. = '碳索智控'
WHERE 1=1
--AND A.FSALEORGID = 100302
AND (ACO. = '碳索智控'
OR ACL. = '碳索智控'
OR C.FNAME IN ('派诺科技(香港)有限公司','武汉派诺科技发展有限公司','客户-样机使用'
,'珠海华夏云联技术有限公司','珠海兴诺能源技术有限公司','广东碳索智控科技有限公司','广东诺瓦数能科技有限公司')
OR (C.FCUSTID = 1150173 AND (ACO. = '决策团队' OR ACL. = '决策团队'))
OR L.FNAME = '兴诺总'
OR A.FID IN (110185,207800)
AND (ISNULL(@FSDate,'') = '' or FORMAT(A.FDate,'yyyy-MM-dd') > @FSDate)
AND (ISNULL(@FEDate,'') = '' or FORMAT(A.FDate,'yyyy-MM-dd')< @FEDate)
OR A.FID IN (110185,207800)
OR D.F_correlation = 1)
AND (ISNULL(@FSDate,'') = '' or FORMAT(A.FAPPROVEDATE,'yyyy-MM-dd') > @FSDate)
AND (ISNULL(@FEDate,'') = '' or FORMAT(A.FAPPROVEDATE,'yyyy-MM-dd')< @FEDate)
--
SELECT
@ -82,28 +89,147 @@ TRUNCATE TABLE YJPHB_GZTH
LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO ON ACO.=O.FNAME AND ISNULL(ACO.,'') != ''
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.=L.FNAME AND ISNULL(ACL.,'') != ''
WHERE
1=1 AND
A.FID NOT IN(
SELECT FID FROM #TEMP3
)
WHERE 1=1
AND A.FID NOT IN(SELECT FID FROM #TEMP3)
AND(@FSaleOrgId = '' Or A.FSALEORGID IN (SELECT SalesID FROM SalesIDTable))
AND (ISNULL(@FSDate,'') = '' or FORMAT(A.FDate,'yyyy') >= @SixYearsAgoYear)
AND (ISNULL(@FEDate,'') = '' or FORMAT(A.FDate,'yyyy') <= @Year)
AND (ISNULL(@FSDate,'') = '' or FORMAT(A.FAPPROVEDATE,'yyyy') >= @SixYearsAgoYear)
AND (ISNULL(@FEDate,'') = '' or FORMAT(A.FAPPROVEDATE,'yyyy') <= @Year)
AND A.FDocumentStatus = 'C'
AND A.FManualClose <> '1'
AND B.FManualRowClose <> '1'
AND A.F_contractnumber NOT LIKE 'Z%'
--
SELECT
----
-- SELECT
-- A.FSALEORGID AS '组织FID',
-- CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.区域 ELSE ACO.区域 END AS '部门(SBU)',
-- CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.明细区域 ELSE ACO.明细区域 END AS '区域明细',
-- CASE WHEN ISNULL(O.FNAME,'')='' THEN L.FNAME ELSE O.FNAME END AS '销售员',
-- CASE WHEN n.FSHARERATE IS NULL THEN ROUND(F.FALLAMOUNT_LC,10)
-- ELSE ROUND( F.FALLAMOUNT_LC * (n.FSHARERATE/100) ,10) END as '订单业绩'
-- INTO #TEMP1
-- FROM T_SAL_ORDER A --销售订单表头
-- INNER JOIN T_SAL_orderentry b on a.FID = B.FID --销售订单表体
-- INNER JOIN T_SAL_ORDERENTRY_F F ON F.FENTRYID = B.FENTRYID
-- INNER JOIN T_SAL_ORDERENTRY_R AR ON AR.FENTRYID = B.FENTRYID
-- LEFT JOIN V_BD_SALESMAN_L L ON L.fid = A.FSALERID
-- left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO AND M.FDOCUMENTSTATUS = 'C'
-- left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID
-- LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID
-- LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO ON ACO.名称=O.FNAME AND ISNULL(ACO.明细区域,'') != ''
-- LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.名称=L.FNAME AND ISNULL(ACL.明细区域,'') != ''
-- WHERE 1=1
-- AND A.FID NOT IN(SELECT FID FROM #TEMP3)
-- AND(@FSaleOrgId = '' Or A.FSALEORGID IN(SELECT SalesID FROM SalesIDTable))
-- AND (ISNULL(@FSDate,'') = '' or FORMAT(A.FAPPROVEDATE,'yyyy-MM-dd') >= @FSDate)
-- AND (ISNULL(@FEDate,'') = '' or FORMAT(A.FAPPROVEDATE,'yyyy-MM-dd') < @FEDate)
-- AND A.FDocumentStatus = 'C'
-- AND A.FManualClose <> '1'
-- AND B.FManualRowClose <> '1'
-- AND A.F_contractnumber NOT LIKE 'Z%'
-- --查询全组织的订单变更金额
-- SELECT
-- A.FSaleOrgId AS '组织FID'
-- ,CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.区域 ELSE ACO.区域 END AS '部门(SBU)'
-- ,CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL.明细区域 ELSE ACO.明细区域 END AS '区域明细'
-- ,CASE WHEN ISNULL(O.FNAME,'')='' THEN XS_L.FNAME
-- ELSE O.FNAME END AS '销售员'
-- ,CAST(AN.FBillAllAmount_LC - A.F_Amountstar AS DECIMAL(20, 10)) AS '变更金额'
-- ,A.F_CONTRACTNUMBER as '纸质合同号'
-- ,A.fbillno as '销售订单号'
-- INTO #BGTEMP1
-- FROM T_SAL_ORDER A
-- LEFT JOIN T_SAL_ORDERFIN AN ON A.FID = AN.FID --关联销售订单财务明细,获取变更后合同金额
-- LEFT JOIN V_BD_SALESMAN XS ON XS.fid = A.FSalerId
-- LEFT JOIN V_BD_SALESMAN_L XS_L ON XS_L.fid = XS.fid --关联销售员数据模型,获取销售员名称
-- left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO AND M.FDOCUMENTSTATUS = 'C'
-- left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID --关联业绩分摊单,获取分摊比例
-- LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID --获取业绩分摊单的销售员,关联销售员表
-- LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO ON ACO.名称=O.FNAME AND ISNULL(ACO.明细区域,'') != ''
-- LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.名称=XS_L.FNAME AND ISNULL(ACL.明细区域,'') != ''
-- INNER JOIN T_SEC_USER TU ON A.FChangerId = TU.FUSERID -- 用户单关联表体,获取变更人人
-- WHERE 1=1
-- AND A.FID NOT IN(SELECT FID FROM #TEMP3)
-- AND(@FSaleOrgId = '' Or A.FSALEORGID IN (SELECT SalesID FROM SalesIDTable))
-- AND (ISNULL(@FSDate,'') = '' OR FORMAT(A.FCHANGEDATE,'yyyy-MM-dd') >= @FSDate)
-- AND (ISNULL(@FSDate,'') = '' OR FORMAT(A.FCHANGEDATE,'yyyy-MM-dd') < @FEDate)
-- --AND FORMAT(A.FDATE,'yyyy') != FORMAT(A.FCHANGEDATE,'yyyy')
-- AND A.F_contractnumber NOT LIKE 'Z%'
-- AND A.FManualClose <> '1'
-- AND (A.F_HSYJ <> '0' OR FORMAT(A.F_HSRQ,'yyyy') != FORMAT(A.FChangeDate,'yyyy'))
-- AND TU.FNAME NOT LIKE 'ERP%' AND TU.FNAME NOT LIKE '13570668909'
/*时间段内最后一个版本的变更单,且原单为今年审核 */
SELECT ROW_NUMBER() OVER(PARTITION BY FPKIDX ORDER BY AL.FCHANGEDATE DESC) AS 'rn',
AL.FID
INTO #TEMP5
FROM T_SAL_XORDER AL
INNER JOIN T_SAL_ORDER A ON A.FID = AL.FPKIDX
INNER JOIN T_SEC_USER TU ON AL.FCHANGERID = TU.FUSERID -- 用户单关联表体,获取变更人人
WHERE 1=1
AND A.FID NOT IN(SELECT FID FROM #TEMP3)
AND(@FSaleOrgId = '' Or A.FSALEORGID IN (SELECT SalesID FROM SalesIDTable))
AND (ISNULL(@FSDate,'') = '' OR FORMAT(AL.FCHANGEDATE,'yyyy-MM-dd') >= @FSDate)
AND (ISNULL(@FSDate,'') = '' OR FORMAT(AL.FCHANGEDATE,'yyyy-MM-dd') < @FEDate)
AND (ISNULL(@FSDate,'') = '' OR FORMAT(A.FAPPROVEDATE,'yyyy-MM-dd') >= FORMAT(CAST(@FSDate AS DATE),'yyyy-01-01'))
AND A.F_contractnumber NOT LIKE 'Z%'
AND AL.FDOCUMENTSTATUS = 'C'
AND A.FManualClose <> '1'
AND (A.F_HSYJ <> '0' OR FORMAT(A.F_HSRQ,'yyyy') != FORMAT(A.FChangeDate,'yyyy'))
AND TU.FNAME NOT LIKE 'ERP%' AND TU.FNAME NOT LIKE '13570668909'
DELETE FROM #TEMP5 WHERE rn > 1
--
SELECT
A.FSaleOrgId AS '组织FID'
,CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL. ELSE ACO. END AS '部门(SBU)'
,CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL. ELSE ACO. END AS '区域明细'
,CASE WHEN ISNULL(O.FNAME,'')='' THEN XS_L.FNAME
ELSE O.FNAME END AS '销售员'
,CASE WHEN n.FSHARERATE IS NULL THEN CAST(ROUND(AN.FBillAllAmount_LC, 2) AS DECIMAL(20,10))
ELSE CAST(ROUND(AN.FBillAllAmount_LC * (n.FSHARERATE/100),2) AS DECIMAL(20, 10)) END AS '订单业绩'
--,CAST(AN.FBillAllAmount_LC AS DECIMAL(20, 10)) AS '订单业绩'
,A.F_CONTRACTNUMBER AS '纸质合同号'
,A.fbillno AS '销售订单号'
,AL.FPKIDX AS '销售订单FID'
INTO #TEMP4
FROM T_SAL_XORDER AL
--LEFT JOIN T_SAL_ORDERFIN AN ON A.FID = AN.FID --
LEFT JOIN T_SAL_ORDER A ON A.FID = AL.FPKIDX
LEFT JOIN T_SAL_XORDERFIN AN ON AN.FID = AL.FID --
LEFT JOIN V_BD_SALESMAN XS ON XS.fid = A.FSalerId
LEFT JOIN V_BD_SALESMAN_L XS_L ON XS_L.fid = XS.fid --
left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO AND M.FDOCUMENTSTATUS = 'C'
left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID --
LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID --
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO ON ACO.=O.FNAME AND ISNULL(ACO.,'') != ''
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.=XS_L.FNAME AND ISNULL(ACL.,'') != ''
INNER JOIN T_SEC_USER TU ON A.FChangerId = TU.FUSERID -- 用户单关联表体,获取变更人人
WHERE 1=1
AND AL.FDOCUMENTSTATUS = 'C'
AND AL.FID IN (SELECT FID FROM #TEMP5)
SELECT *
INTO #TEMP1 FROM(
--
SELECT * FROM #TEMP4
UNION ALL
--
SELECT
A.FSALEORGID AS '组织FID',
CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL. ELSE ACO. END AS '部门(SBU)',
CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL. ELSE ACO. END AS '区域明细',
CASE WHEN ISNULL(O.FNAME,'')='' THEN L.FNAME ELSE O.FNAME END AS '销售员',
CASE WHEN n.FSHARERATE IS NULL THEN ROUND(F.FALLAMOUNT_LC,10)
ELSE ROUND( F.FALLAMOUNT_LC * (n.FSHARERATE/100) ,10) END as '订单业绩'
INTO #TEMP1
CASE WHEN n.FSHARERATE IS NULL THEN CAST(ROUND(F.FALLAMOUNT_LC, 2) AS DECIMAL(20,10))
ELSE CAST(ROUND( F.FALLAMOUNT_LC * (n.FSHARERATE/100) ,2) AS DECIMAL(20,10)) END as '订单业绩'
--,CASE WHEN n.FSHARERATE IS NULL THEN 0 ELSE ROUND( F.FALLAMOUNT_LC * (n.FSHARERATE/100) ,10) END as '分摊金额'
--,CASE WHEN n.FSHARERATE IS NULL THEN ROUND(F.FALLAMOUNT_LC,10) ELSE 0 END as '无分摊金额'
,A.F_CONTRACTNUMBER as '纸质合同号'
,A.fbillno as '销售订单号'
,A.FID as '销售订单FID'
FROM T_SAL_ORDER A --
INNER JOIN T_SAL_orderentry b on a.FID = B.FID --
INNER JOIN T_SAL_ORDERENTRY_F F ON F.FENTRYID = B.FENTRYID
@ -113,31 +239,62 @@ TRUNCATE TABLE YJPHB_GZTH
left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID
LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO ON ACO.=O.FNAME AND ISNULL(ACO.,'') != ''
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.=L.FNAME AND ISNULL(ACL.,'') != ''
WHERE
1=1 AND
A.FID NOT IN(
SELECT FID FROM #TEMP3
)
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.=L.FNAME AND ISNULL(ACL.,'') != ''
WHERE 1=1
AND A.FID NOT IN(SELECT FID FROM #TEMP3)
AND A.FID NOT IN(SELECT FID FROM #TEMP4)
AND(@FSaleOrgId = '' Or A.FSALEORGID IN(SELECT SalesID FROM SalesIDTable))
AND (ISNULL(@FSDate,'') = '' or FORMAT(A.FDate,'yyyy-MM-dd') >= @FSDate)
AND (ISNULL(@FEDate,'') = '' or FORMAT(A.FDate,'yyyy-MM-dd') <= @FEDate)
AND (ISNULL(@FSDate,'') = '' or FORMAT(A.FAPPROVEDATE,'yyyy-MM-dd') >= @FSDate)
AND (ISNULL(@FEDate,'') = '' or FORMAT(A.FAPPROVEDATE,'yyyy-MM-dd') < @FEDate)
AND A.FDocumentStatus = 'C'
AND A.FManualClose <> '1'
AND B.FManualRowClose <> '1'
AND A.F_contractnumber NOT LIKE 'Z%'
--
SELECT
AND A.F_contractnumber NOT LIKE 'Z%'
) a
/*当年截至结束日期累记变更差额*/
SELECT AL.FID,
SUM(CAST((
ROUND((AM.FQTY * AB.FTAXPRICE - (ISNULL(AM.FQTY,0) * ISNULL(AB.FTAXPRICE,0) * ISNULL(AB.FDISCOUNTRATE,0))/ 100*ISNULL(AN.FEXCHANGERATE,0))/( 1+ FTAXRATE /100 ),2)
+ROUND(((ISNULL(AM.FQTY,0) * ISNULL(AB.FTAXPRICE,0) - (ISNULL(AM.FQTY,0) * ISNULL(AB.FTAXPRICE,0) * ISNULL(AB.FDISCOUNTRATE,0)/ 100))/( 1+ FTAXRATE /100 )* (FTAXRATE /100)* ISNULL(AN.FEXCHANGERATE,0) ),2)
-ROUND((AM.FQTYX * AB.FTAXPRICEX - (ISNULL(AM.FQTYX,0) * ISNULL(AB.FTAXPRICEX,0) * ISNULL(AB.FDISCOUNTRATEX,0))/ 100*ISNULL(AN.FEXCHANGERATE,0))/( 1+ FTAXRATEX /100 ),2)
-ROUND(((ISNULL(AM.FQTYX,0) * ISNULL(AB.FTAXPRICEX,0) - (ISNULL(AM.FQTYX,0) * ISNULL(AB.FTAXPRICEX,0) * ISNULL(AB.FDISCOUNTRATEX,0)/ 100))/( 1+ FTAXRATEX /100 )* (FTAXRATEX /100)* ISNULL(AN.FEXCHANGERATE,0) ),2)) AS DECIMAL(20, 10))) AS '变更金额'
INTO #TEMPCHANGEFIN
FROM T_SAL_XORDER AL
LEFT JOIN T_SAL_ORDER A ON A.FID = AL.FPKIDX
LEFT JOIN T_SAL_XORDERFIN AN ON AN.FID = AL.FID --
LEFT JOIN T_SAL_XORDERENTRY AM ON AM.FID = AL.FID
LEFT JOIN T_SAL_XORDERENTRY_F AB ON AB.FENTRYID = AM.FENTRYID
INNER JOIN T_SEC_USER TU ON AL.FCHANGERID = TU.FUSERID -- 用户单关联表体,获取变更人人
WHERE 1=1
AND A.FID NOT IN(SELECT FID FROM #TEMP3)
AND(@FSaleOrgId = '' Or A.FSALEORGID IN (SELECT SalesID FROM SalesIDTable))
AND (ISNULL(@FSDate,'') = '' or FORMAT(A.FAPPROVEDATE,'yyyy-MM-dd') < FORMAT(CAST(@FSDate AS DATE),'yyyy-01-01'))
AND (ISNULL(@FSDate,'') = '' OR FORMAT(AL.FCHANGEDATE,'yyyy-MM-dd') >= FORMAT(CAST(@FSDate AS DATE),'yyyy-01-01'))
AND (ISNULL(@FEDate,'') = '' or FORMAT(AL.FCHANGEDATE,'yyyy-MM-dd') < @FEDate)
AND A.FManualClose <> '1'
AND AL.FDOCUMENTSTATUS = 'C'
AND (A.F_HSYJ <> '0' OR FORMAT(A.F_HSRQ,'yyyy') != FORMAT(A.FChangeDate,'yyyy'))
AND TU.FNAME NOT LIKE 'ERP%' AND TU.FNAME NOT LIKE '13570668909'
GROUP BY AL.FID
SELECT
A.FSaleOrgId AS '组织FID'
,CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL. ELSE ACO. END AS '部门(SBU)'
,CASE WHEN ISNULL(O.FNAME,'')='' THEN ACL. ELSE ACO. END AS '区域明细'
,CASE WHEN ISNULL(O.FNAME,'')='' THEN XS_L.FNAME
ELSE O.FNAME END AS '销售员'
,CAST(AN.FBillAllAmount_LC - A.F_Amountstar AS DECIMAL(20, 10)) AS '变更金额'
INTO #BGTEMP1
FROM T_SAL_ORDER A
LEFT JOIN T_SAL_ORDERFIN AN ON A.FID = AN.FID --
ELSE O.FNAME END AS '销售员'
,CASE WHEN n.FSHARERATE IS NULL THEN ROUND(AN.,2)
ELSE CAST(AN. * (n.FSHARERATE/100) AS DECIMAL(10, 2)) END AS '变更金额'
,A.F_CONTRACTNUMBER as '纸质合同号'
,A.fbillno as '销售订单号'
,A.FID as '销售订单FID'
,AL.FBILLNO AS '变更单号'
INTO #BGTEMP1
FROM T_SAL_XORDER AL
--LEFT JOIN T_SAL_ORDERFIN AN ON A.FID = AN.FID --
LEFT JOIN T_SAL_ORDER A ON A.FID = AL.FPKIDX
LEFT JOIN #TEMPCHANGEFIN AN ON AL.FID = AN.FID
LEFT JOIN V_BD_SALESMAN XS ON XS.fid = A.FSalerId
LEFT JOIN V_BD_SALESMAN_L XS_L ON XS_L.fid = XS.fid --
left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO AND M.FDOCUMENTSTATUS = 'C'
@ -145,19 +302,19 @@ TRUNCATE TABLE YJPHB_GZTH
LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID --
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO ON ACO.=O.FNAME AND ISNULL(ACO.,'') != ''
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL ON ACL.=XS_L.FNAME AND ISNULL(ACL.,'') != ''
INNER JOIN T_SEC_USER TU ON A.FChangerId = TU.FUSERID -- 用户单关联表体,获取变更人人
WHERE
A.FID NOT IN(
SELECT FID FROM #TEMP3
)
AND(@FSaleOrgId = '' Or A.FSALEORGID IN (SELECT SalesID FROM SalesIDTable))
AND (ISNULL(@FSDate,'') = '' OR FORMAT(A.FDate,'yyyy-MM-dd') <= @FSDate)
AND FORMAT(A.FDATE,'yyyy') != FORMAT(A.FDate,'yyyy')
AND A.F_contractnumber NOT LIKE 'Z%'
AND A.FManualClose <> '1'
INNER JOIN T_SEC_USER TU ON AL.FCHANGERID = TU.FUSERID -- 用户单关联表体,获取变更人人
WHERE 1=1
AND A.FID NOT IN(SELECT FID FROM #TEMP3)
AND(@FSaleOrgId = '' Or A.FSALEORGID IN (SELECT SalesID FROM SalesIDTable))
AND (ISNULL(@FEDate,'') = '' or FORMAT(A.FAPPROVEDATE,'yyyy-MM-dd') < FORMAT(CAST(@FSDate AS DATE),'yyyy-01-01'))
AND (ISNULL(@FSDate,'') = '' OR FORMAT(AL.FCHANGEDATE,'yyyy-MM-dd') >= FORMAT(CAST(@FSDate AS DATE),'yyyy-01-01'))
AND (ISNULL(@FEDate,'') = '' or FORMAT(AL.FCHANGEDATE,'yyyy-MM-dd') < @FEDate)
AND A.FManualClose <> '1'
AND AL.FDOCUMENTSTATUS = 'C'
AND (A.F_HSYJ <> '0' OR FORMAT(A.F_HSRQ,'yyyy') != FORMAT(A.FChangeDate,'yyyy'))
AND TU.FNAME NOT LIKE 'ERP%' AND TU.FNAME NOT LIKE '13570668909'
AND TU.FNAME NOT LIKE 'ERP%' AND TU.FNAME NOT LIKE '13570668909'
--()
INSERT INTO YJPHB_GZTH([_SBU],[],[],[_含往年订单变更])
SELECT [(SBU)],[],[],SUM([]) AS '订单业绩' FROM #TEMP1 WHERE [组织FID] = 100302 GROUP BY [部门(SBU)],[区域明细],[销售员]
@ -424,9 +581,16 @@ GROUP BY B.FNAME
--
update A
SET A.[] = CONVERT(NVARCHAR(10), B.[], 120),A.[]= B.[],A.[] = B.[]
SET --A.[] = CONVERT(NVARCHAR(10), B.[], 120),
A.[]= B.[],A.[] = B.[]
FROM YJPHB_GZTH A
INNER JOIN #DateTEMP3 B ON A.[姓名] = B.[员工姓名]
update A
SET A.[] = CONVERT(NVARCHAR(10), B.[], 120)
FROM YJPHB_GZTH A
INNER JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo B ON A.[] = B.[]
--
UPDATE A
@ -476,5 +640,5 @@ SET A.[Ŀ
FROM YJPHB_GZTH A
DROP TABLE #TEMP1,#TEMP2,#TEMP3,#BGTEMP1,#YGTEMP1,#DateTEMP3,#SKTEMP1,#SKTKTEMP1,#SixYearEMP1
DROP TABLE #TEMP1,#TEMP2,#TEMP3,#BGTEMP1,#YGTEMP1,#DateTEMP3,#SKTEMP1,#SKTKTEMP1,#SixYearEMP1,#TEMP4,#TEMP5
END;

View File

@ -81,7 +81,8 @@ BEGIN
SELECT F_CONTRACTNUMBER ZHHTH,FSALEORGID ZZ
FROM T_SAL_ORDER
WHERE FDOCUMENTSTATUS = 'C'
AND 1= @SFQJFWDZ
AND FApproveDate < @EndDate
AND 1= @SFQJFWDZ
)a
@ -107,7 +108,12 @@ BEGIN
,tmm.FOldNumber
,ROW_NUMBER() OVER(ORDER BY A.FID) AS NUMBER
FROM T_SAL_ORDER A
INNER JOIN T_SAL_ORDERFIN AF ON A.FID = AF.FID
INNER JOIN (
SELECT T1.FID,SUM(T1.FALLAMOUNT) FBillAllAmount
FROM T_SAL_ORDERENTRY_F T1
INNER JOIN T_SAL_ORDERENTRY T2 ON T1.FENTRYID = T2.FENTRYID AND T2.FRETURNTYPE <> 'RETURN'
GROUP BY T1.FID
) AF ON A.FID = AF.FID
INNER JOIN T_BAS_PREBDONE_L GC ON A.F_projectname = GC.FID
INNER JOIN T_SAL_ORDERENTRY B ON A.FID = B.FID
INNER JOIN T_BD_MATERIAL_L WL_L ON B.FMATERIALID = WL_L.FMATERIALID
@ -239,11 +245,21 @@ INNER JOIN (
INTO #FHTEMP1
FROM #TEMP1
GROUP BY FID,FENTRYID
--
UPDATE A
SET ShipmentsDate = B. --FORMAT( B.,'yyyy-MM-dd')
FROM YingShouZhanKuanMX_GZTH A
INNER JOIN #TEMP1 B ON A.FID = B.销售订单FID AND A.FENTRYID = B.销售订单FENTRYID
--K3发货日期
UPDATE A
SET ShipmentsDate = CONCAT(CASE WHEN A.ShipmentsDate IS NULL THEN '' ELSE A.ShipmentsDate+',' END ,B.)
FROM YingShouZhanKuanMX_GZTH A
INNER JOIN T_SAL_ORDERENTRY C ON A.FENTRYID = C.FENTRYID
INNER JOIN (SELECT ,STUFF((SELECT DISTINCT ','+ FROM oldk3seorder0701 WHERE = a. FOR XML PATH('')),1,1,'') AS '合并发货日期',
from oldk3seorder0701 a) b
ON C.F_K3SEQ = b. AND a.FBILLNO=b.[]
UPDATE A
SET A. = B.,A. = B.

View File

@ -71,12 +71,14 @@ BEGIN
AND FApproveDate < @EndDate
AND (ISNULL(@ZZHTH,'') = '' OR F_PAPERNUMBER = @ZZHTH)
AND FDOCUMENTSTATUS = 'C'
AND T1.F_SFQC = 0
UNION ALL
--
SELECT F_CONTRACTNUMBER ZHHTH,FSALEORGID ZZ
FROM T_SAL_ORDER
WHERE FDOCUMENTSTATUS = 'C'
AND 1= @SFQJFWDZ
AND FApproveDate < @EndDate
AND 1= @SFQJFWDZ
)a
@ -102,7 +104,12 @@ BEGIN
,tmm.FOldNumber
,ROW_NUMBER() OVER(ORDER BY A.FID) AS NUMBER
FROM T_SAL_ORDER A
INNER JOIN T_SAL_ORDERFIN AF ON A.FID = AF.FID
INNER JOIN (
SELECT T1.FID,SUM(T1.FALLAMOUNT) FBillAllAmount
FROM T_SAL_ORDERENTRY_F T1
INNER JOIN T_SAL_ORDERENTRY T2 ON T1.FENTRYID = T2.FENTRYID AND T2.FRETURNTYPE <> 'RETURN'
GROUP BY T1.FID
) AF ON A.FID = AF.FID
INNER JOIN T_BAS_PREBDONE_L GC ON A.F_projectname = GC.FID
INNER JOIN T_SAL_ORDERENTRY B ON A.FID = B.FID
INNER JOIN T_BD_MATERIAL_L WL_L ON B.FMATERIALID = WL_L.FMATERIALID
@ -119,16 +126,17 @@ BEGIN
AND B.FRETURNTYPE <> 'RETURN'
AND A.FDOCUMENTSTATUS = 'C'
UPDATE a
SET a.[K3发货数量]=b.,a.[K3发货金额]=b.,a.[K3退货数量]=b.退
,a.[K3退货金额]=b.退--,a.[K3专票金额] = b. ,a.[K3普票金额]= b.
FROM YingShouZhanKuanMX_GZTH A
INNER JOIN T_SAL_ORDERENTRY C ON A.FENTRYID = C.FENTRYID
INNER JOIN [oldk3seorder0701] b
ON C.F_K3SEQ = b. AND a.FBILLNO=b.[] --AND a.=[] AND a.FQty=[] AND (ABS(a.FTaxPrice-b.[])<=0.02 OR ABS(a.FTaxPrice-b.[])<=0.02)
WHERE K3数据=0
AND B. >= @StartDate
AND B. < @EndDate
/*2025-08-13调整发货数量逻辑,替换该逻辑*/
--UPDATE a
--SET a.[K3发货数量]=b.,a.[K3发货金额]=b.,a.[K3退货数量]=b.退
--,a.[K3退货金额]=b.退--,a.[K3专票金额] = b. ,a.[K3普票金额]= b.
--FROM YingShouZhanKuanMX_GZTH A
--INNER JOIN T_SAL_ORDERENTRY C ON A.FENTRYID = C.FENTRYID
--INNER JOIN [oldk3seorder0701] b
--ON C.F_K3SEQ = b. AND a.FBILLNO=b.[] --AND a.=[] AND a.FQty=[] AND (ABS(a.FTaxPrice-b.[])<=0.02 OR ABS(a.FTaxPrice-b.[])<=0.02)
--WHERE K3数据=0
--AND B. >= @StartDate
--AND B. < @EndDate
--k3专票
UPDATE a
@ -234,17 +242,44 @@ INNER JOIN (
INTO #FHTEMP1
FROM #TEMP1
GROUP BY FID,FENTRYID
--
UPDATE A
SET ShipmentsDate = B. --FORMAT( B.,'yyyy-MM-dd')
FROM YingShouZhanKuanMX_GZTH A
INNER JOIN #TEMP1 B ON A.FID = B.销售订单FID AND A.FENTRYID = B.销售订单FENTRYID
--K3发货日期
UPDATE A
SET ShipmentsDate = CONCAT(CASE WHEN A.ShipmentsDate IS NULL THEN '' ELSE A.ShipmentsDate+',' END ,B.)
FROM YingShouZhanKuanMX_GZTH A
INNER JOIN T_SAL_ORDERENTRY C ON A.FENTRYID = C.FENTRYID
INNER JOIN (SELECT ,STUFF((SELECT DISTINCT ','+ FROM oldk3seorder0701 WHERE = a. FOR XML PATH('')),1,1,'') AS '合并发货日期',
from oldk3seorder0701 a) b
ON C.F_K3SEQ = b. AND a.FBILLNO=b.[]
UPDATE A
SET A. = B.,A. = B.
FROM YingShouZhanKuanMX_GZTH A
INNER JOIN #FHTEMP1 B ON A.FID = B.销售订单FID AND A.FENTRYID = B.销售订单FENTRYID
/*2025-08-13调整发货数量逻辑"销售订单发货数量取数逻辑,要根据销售订单行数据进行判断:
1
2++"*/
UPDATE a
SET a.[K3发货数量]= CASE ISNULL(A.,0) WHEN 0 THEN b. ELSE ISNULL(b.,0)+ISNULL(b.,0) END
,a.[K3发货金额]= CASE ISNULL(A.,0) WHEN 0 THEN b. ELSE (ISNULL(b.,0)+ISNULL(b.,0))*b. END
,a.[K3退货数量]=b.退
,a.[K3退货金额]=b.退
FROM YingShouZhanKuanMX_GZTH A
INNER JOIN T_SAL_ORDERENTRY C ON A.FENTRYID = C.FENTRYID
INNER JOIN [oldk3seorder0701] b
ON C.F_K3SEQ = b. AND a.FBILLNO=b.[]
WHERE K3数据=0
AND B. >= @StartDate
AND B. < @EndDate
--
UPDATE A
SET A.ShipmentsNum = ISNULL([],0) + ISNULL([K3发货数量],0),A.ShipmentsAmount = ISNULL([],0) + ISNULL([K3发货金额],0)

View File

@ -276,12 +276,37 @@ BEGIN
INNER JOIN T_SAL_OUTSTOCKENTRY_LK J ON J.FENTRYID = G.FSID AND J.FSTABLENAME = 'T_SAL_ORDERENTRY' --
INNER JOIN T_SAL_ORDERENTRY LE ON LE.FENTRYID = J.FSID --
INNER JOIN T_SAL_ORDER L ON L.FID = LE.FID --
WHERE A.FID IN (SELECT FID FROM YingShouZhanKuanMX_GZTH)
WHERE L.FID IN (SELECT FID FROM YingShouZhanKuanMX_GZTH)
AND A.FDOCUMENTSTATUS = 'C'
AND A.FApproveDate >= @StartDate
AND A.FApproveDate < @EndDate
AND A.F_SFQC = 0
--
INSERT INTO FPYSDZDMX(XSDDFID,XSDDFENTRYID,FPJSZZ,FPLX,FPRQ,FPFID,FPFENTRYID,KPJE)
SELECT DISTINCT
L.FID AS '销售订单FID',
LE.FENTRYID AS '销售订单FENTRYID',
A.FSALEORGID AS '销售组织',
A.FBILLTYPEID AS '发票类型',
A.FDATE AS '发票日期',
A.FID AS '发票FID',
B.FENTRYID AS '发票FENTRYID',
B.FALLAMOUNTFOR AS '红字发票金额' --
FROM T_IV_SALESIC A
INNER JOIN T_IV_SALESICENTRY B ON A.FID = B.FID
INNER JOIN T_SAL_ORDER L ON L.F_CONTRACTNUMBER = A.F_PAPERNUMBER --
INNER JOIN T_SAL_ORDERENTRY LE ON LE.FSEQ = 1 AND L.FID = LE.FID --
WHERE 1 = 1
AND B.FENTRYID NOT IN (SELECT FPFENTRYID FROM FPYSDZDMX)
AND L.FID IN (SELECT FID FROM YingShouZhanKuanMX_GZTH)
AND A.FDOCUMENTSTATUS = 'C'
AND A.FApproveDate >= @StartDate
AND A.FApproveDate < @EndDate
AND A.F_SFQC = 0
--
SELECT DISTINCT
XSDDFID,