a
This commit is contained in:
@@ -19,16 +19,72 @@ from Kingdee.BOS.ServiceHelper import *
|
||||
|
||||
def BarItemClick(e):
|
||||
if e.BarItemKey.Equals("tbCRMCompute"):
|
||||
|
||||
# if this.Context.UserId != 134339:
|
||||
# raise Exception("没有此功能的操作权限!")
|
||||
|
||||
# 1.更新销售合同合同类型
|
||||
sql1 = """/*dialect*/
|
||||
UPDATE T_CRM_CONTRACT SET F_CYG_CONTRACTTYPE = '664cd624468638' WHERE F_CYG_CONTRACTTYPE = ''
|
||||
|
||||
"""
|
||||
|
||||
num = DBServiceHelper.Execute(this.Context, sql1)
|
||||
|
||||
# 2.更新销售合同关联关系
|
||||
sqlL2 = """/*dialect*/
|
||||
WITH #查询数据 AS (
|
||||
SELECT t0.FBILLNO,t0.FID,t0.FSALES,t1.FBILLNO '合同单据编号'
|
||||
,t0.FCREATEDATE,t1.FID 'CONTRACT_ID',t0.FCRMCONTRACTID
|
||||
,t0.FBILLTYPEID
|
||||
,ISNULL(t2.FID,0) AS Old_CRM_ID
|
||||
FROM T_SAL_ORDER t0
|
||||
INNER JOIN T_CRM_CONTRACT t1 on t0.FSALES = t1.F_CYG_YSALESNUMBER
|
||||
AND t0.FCUSTID = t1.FBDCUSTID
|
||||
LEFT JOIN T_CRM_CONTRACT t2 on t2.FID = t0.FCRMCONTRACTID AND t2.FDOCUMENTSTATUS = 'C'
|
||||
WHERE 1=1
|
||||
--AND t0.FCRMCONTRACTID = 0
|
||||
AND t0.FDOCUMENTSTATUS = 'C'
|
||||
AND t1.FDOCUMENTSTATUS = 'C'
|
||||
AND t0.FBILLTYPEID = 'eacb50844fc84a10b03d7b841f3a6278' --标准销售订单
|
||||
AND t1.F_CYG_CONTRACTTYPE = '664cd624468638'
|
||||
)
|
||||
,#单一数据 AS (
|
||||
SELECT t0.FBILLNO,t0.FID
|
||||
FROM #查询数据 t0
|
||||
WHERE t0.Old_CRM_ID = 0
|
||||
GROUP BY t0.FBILLNO,t0.FID
|
||||
HAVING COUNT(1) = 1
|
||||
)
|
||||
UPDATE t1 SET t1.FCRMCONTRACTID = t0.CONTRACT_ID
|
||||
FROM #查询数据 t0
|
||||
INNER JOIN T_SAL_ORDER t1 on t1.FID = t0.FID
|
||||
INNER JOIN #单一数据 tt on tt.FID = t0.FID
|
||||
WHERE 1=1
|
||||
|
||||
"""
|
||||
|
||||
num = DBServiceHelper.Execute(this.Context, sqlL2)
|
||||
|
||||
# 3.销售合同数据计算
|
||||
sqlL = """/*dialect*/
|
||||
;WITH #销售合同计算 AS (
|
||||
SELECT
|
||||
t0.FID,t0.FBILLNO
|
||||
;WITH #合同变更 AS (
|
||||
SELECT t4.FOldFId
|
||||
,CAST(t4.FJSONDATA AS nvarchar(4000)) AS 'FJSONDATA'
|
||||
,ROW_NUMBER() OVER (PARTITION BY t4.FOldFId ORDER BY t4.FVERSION DESC) RN
|
||||
FROM T_SCM_BILLCHANGEVERSIONS t4
|
||||
WHERE 1 = 1
|
||||
AND t4.FFormId = 'CRM_Contract'
|
||||
AND t4.FACTIVESTATUS != 'A'
|
||||
)
|
||||
,#销售合同计算 AS (
|
||||
SELECT t0.FID,t0.FBILLNO
|
||||
,t0.FNAME as FName
|
||||
,t0.FDOCUMENTSTATUS
|
||||
,t0.F_CYG_ContractNoDL
|
||||
,'A' AS 'FFORBIDSTATUS'
|
||||
,t0f.FCONTRACTAMOUNT_LC AS 'FCONTRACTAMOUNT'
|
||||
,ISNULL(t4.FCONTRACTAMOUNT_X,0) AS 'FCONTRACTAMOUNT_X'
|
||||
,ISNULL(t4.FCONTRACTAMOUNT_X,t0f.F_CYG_CONTRACTCHANGE) AS 'FCONTRACTAMOUNT_X'
|
||||
,ISNULL(t1.SAL_ORDER_AMOUNT,0) AS 'SAL_ORDER_AMOUNT'
|
||||
,ISNULL(t1.公开价小计,0) AS '公开价小计'
|
||||
,ISNULL(t1.外购价小计,0) AS '外购价小计'
|
||||
@@ -36,7 +92,6 @@ def BarItemClick(e):
|
||||
,ISNULL(t1.成本小计,0) AS '成本小计'
|
||||
,ISNULL(t2.AR_RECEIVABLE_AMOUNT,0) AS 'AR_RECEIVABLE_AMOUNT'
|
||||
,ISNULL(t3.AR_RECEIVABLE_AMOUNT2,0) AS 'AR_RECEIVABLE_AMOUNT2'
|
||||
--,ISNULL(t3.FIVALLAMOUNTFOR,0) AS 'FIVALLAMOUNTFOR'
|
||||
FROM T_CRM_CONTRACT t0
|
||||
INNER JOIN T_CRM_CONTRACTFIN t0f on t0f.FID = t0.FID
|
||||
OUTER APPLY (
|
||||
@@ -55,7 +110,6 @@ def BarItemClick(e):
|
||||
) t1
|
||||
OUTER APPLY (
|
||||
SELECT SUM(t3e.FALLAMOUNT) AS AR_RECEIVABLE_AMOUNT,tt.FCRMContractId
|
||||
--,SUM(t3e.FALLAMOUNTFOR) AS 'FALLAMOUNTFOR'
|
||||
FROM T_SAL_ORDER tt
|
||||
INNER JOIN T_AR_RECEIVABLE t3 on tt.FBILLNO = t3.FBILLNOS
|
||||
INNER JOIN T_AR_RECEIVABLEENTRY t3e on t3e.FID = t3.FID
|
||||
@@ -68,7 +122,6 @@ def BarItemClick(e):
|
||||
) t2
|
||||
OUTER APPLY (
|
||||
SELECT SUM(t3e.FALLAMOUNT) AS AR_RECEIVABLE_AMOUNT2,tt.FCRMContractId
|
||||
--,SUM(t3e.FALLAMOUNTFOR) AS 'FALLAMOUNTFOR'
|
||||
FROM T_SAL_ORDER tt
|
||||
INNER JOIN T_AR_RECEIVABLE t3 on tt.FBILLNO = t3.FBILLNOS
|
||||
INNER JOIN T_AR_RECEIVABLEENTRY t3e on t3e.FID = t3.FID
|
||||
@@ -80,14 +133,13 @@ def BarItemClick(e):
|
||||
GROUP BY tt.FCRMContractId
|
||||
) t3
|
||||
OUTER APPLY (
|
||||
SELECT TOP 1 t4f.FCONTRACTAMOUNT_LC AS 'FCONTRACTAMOUNT_X'
|
||||
FROM T_CRM_XCONTRACT t4
|
||||
INNER JOIN T_CRM_XCONTRACTFIN t4f on t4.FID = t4f.FID
|
||||
WHERE t4.FPKIDX = t0.FID
|
||||
ORDER BY t4.FID DESC
|
||||
SELECT CAST(JSON_VALUE(t4.FJSONDATA,'$.CRM_ContractFIN[0].FCONTRACTAMOUNT_LC') AS decimal(23,10)) - t0f.FCONTRACTAMOUNT_LC 'FCONTRACTAMOUNT_X'
|
||||
FROM #合同变更 t4
|
||||
WHERE t4.FOLDFID = t0.FID AND t4.RN = 2
|
||||
) t4
|
||||
WHERE 1=1
|
||||
AND t0.FDOCUMENTSTATUS = 'C'
|
||||
AND t0.F_CYG_CONTRACTTYPE = '664cd624468638'
|
||||
)
|
||||
, #最终数据 AS (
|
||||
SELECT t0.FID,t0.FBILLNO
|
||||
@@ -107,8 +159,9 @@ def BarItemClick(e):
|
||||
,t0.成本小计
|
||||
FROM #销售合同计算 t0
|
||||
)
|
||||
--SELECT * FROM #最终数据 t0
|
||||
--WHERE t0.FBILLNO = 'XSHT106734'
|
||||
--SELECT *
|
||||
--FROM #最终数据 t0
|
||||
--WHERE 1=1
|
||||
UPDATE t0 SET t0.F_CYG_CUMSALESORDERS = tt.累计销售订单本位币
|
||||
,t0.F_CYG_NOORDERSALES = tt.未下单销售订单本位币
|
||||
,t0.F_CYG_CUMSHIPMENT = tt.累计发货本位币
|
||||
|
||||
Reference in New Issue
Block a user