Files
GateDge2023_ljy/GZ.LJY000.Eti/PUR_PurchaseOrder/OperationEventPlugInEx.py
PastSaid 9725ab5376 a
2024-12-05 15:39:19 +08:00

82 lines
3.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#引入clr运行库
import clr
#添加对cloud插件开发的常用组件引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.ServiceHelper')
#dairycloud基础库中的常用实体对象分命名空间导入不会递归导入
from Kingdee.BOS.Core import *
from Kingdee.BOS.Util import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
# 加载指定字段数据
# def OnPreparePropertys(e):
def EndOperationTransaction(e):
# 保存8提交9审核1反审核26删除3
if this.FormOperation.OperationId == 8:
Save2DoUpdateLIUSHUIHAO(e)
def Save2DoUpdateLIUSHUIHAO(e):
# sqlLList = List[str]();
# raise Exception(JsonUtil.Serialize(e.DataEntitys))
idList = List[str]();
for data in e.DataEntitys:
if data["PurchaseOrgId_Id"] == 1901189:
idList.Add(str(data["Id"]));
if idList.Count > 0:
idListStr = ",".join(idList)
sqlL = """/*dialect*/
;WITH #初始数据 AS (
SELECT t0.FBILLNO,t0e.FSEQ,t0.FDATE,t2.F_SUPPLIERCODE AS 'SCode'
,t0.FID,t0e_d.FDELIVERYDATE,t0e.FENTRYID
,SUBSTRING(CONVERT(varchar(8),t0e_d.FDELIVERYDATE,112),3,6) AS 'D'
,CONVERT(INT,t0e.FQTY) AS FQTY
,CONVERT(INT,SUM(t0e.FQTY) OVER(PARTITION BY t0e.FID ORDER BY t0e.FSEQ ROWS UNBOUNDED PRECEDING)) AS S
,ISNULL(t1.流水号,0) AS 'InitialValue'
FROM T_PUR_POORDER t0
OUTER APPLY (
SELECT MAX(CONVERT(INT,RIGHT(t1e.F_LIUSHUIHAO_TEXT_QTR,5))) AS '流水号'
FROM T_PUR_POORDER t1
INNER JOIN T_PUR_POORDERENTRY t1e on t1e.FID = t1.FID
WHERE 1=1 AND t0.FPURCHASEORGID = 1901189 AND t1e.F_LIUSHUIHAO_TEXT_QTR != ''
AND t0.FSUPPLIERID = t1.FSUPPLIERID AND CONVERT(varchar(8),t1.FDATE,112) = CONVERT(varchar(8),t0.FDATE,112)
) t1
INNER JOIN T_BD_SUPPLIER t2 on t2.FSUPPLIERID = t0.FSUPPLIERID AND t2.F_SUPPLIERCODE != ''
INNER JOIN T_PUR_POORDERENTRY t0e on t0.FID = t0e.FID
INNER JOIN T_PUR_POORDERENTRY_D t0e_d on t0e.FENTRYID = t0e_d.FENTRYID
WHERE 1 = 1
AND t0.FPURCHASEORGID = 1901189
AND t0.FID IN ({0})
AND t0e.F_LIUSHUIHAO_TEXT_QTR = ''
)
, #流水号拼接 AS (
SELECT t0.FID,t0.FENTRYID,t0.SCode,t0.D,t0.FQTY
,RIGHT('00000' + CONVERT(VARCHAR, (t0.S - t0.FQTY + 1 + t0.InitialValue)), 5) AS 'SSeq'
,RIGHT('00000' + CONVERT(VARCHAR, (S + t0.InitialValue)), 5) AS 'ESeq'
FROM #初始数据 t0
)
UPDATE t0e SET t0e.F_LIUSHUIHAO_TEXT_QTR = CONCAT(t1.SCode,t1.D,t1.SSeq,'-',t1.SCode,t1.D,t1.ESeq)
FROM T_PUR_POORDERENTRY t0e
INNER JOIN #流水号拼接 t1 on t0e.FENTRYID = t1.FENTRYID
""".format(idListStr)
# resultData = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL)
DBServiceHelper.Execute(this.Context, sqlL)
# raise Exception(JsonUtil.Serialize(resultData))