Files
GateDge2023_ljy/Enpower.PRD_MO.Python/Enpower.PRD_MO.Python.py
PastSaid 5e2781182d a
2024-03-04 16:50:20 +08:00

82 lines
3.0 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')
# 常用金蝶插件类库start
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.App.Core')
clr.AddReference('Kingdee.BOS.Business.DynamicForm')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.ServiceHelper')
# 常用金蝶插件类库end
#dairycloud基础库中的常用实体对象分命名空间导入不会递归导入
from System import *
from System.Data import *
from System.Collections.Generic import List
from Kingdee.BOS.Core import *
from Kingdee.BOS.Util import *
from Kingdee.BOS.Core.List import *
from Kingdee.BOS.Core.List.PlugIn 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.App.Data import *
from Kingdee.BOS.ServiceHelper import *
# def OnPreparePropertys(e):
# e.FieldKeys.Add("FWorkTimeType")
def AfterDoOperation(e):
# 保存8提交9审核1反审核26
if e.Operation.Operation == "DoUpdatePPBOMLevel":
datas = this.View.SelectedRowsInfo
whereSql = ""
if datas.Count > 0:
whereSql = "AND t0.FID IN({0})".format( ",".join(set(map(lambda x :str(x.PrimaryKeyValue),datas))))
sql = """/*dialect*/
UPDATE t0e SET t0e.FFORECASTGROUP = t1e.FFORECASTGROUP
,t0e.FFORECASTGROUPFRIST = CASE
WHEN CHARINDEX( '-',REPLACE( t1e.FFORECASTGROUP,'_','-') ,0) = 0
THEN t1e.FFORECASTGROUP
ELSE SUBSTRING(t1e.FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( t1e.FFORECASTGROUP,'_','-') ,0))
END
FROM T_PRD_PPBOM t0
INNER JOIN T_PRD_PPBOMENTRY t0e on t0.FID = t0e.FID
INNER JOIN T_PRD_MOENTRY t1e on t1e.FID = t0.FMOID
WHERE 1 = 1 AND t1e.FFORECASTGROUP != ''
AND t0e.FFORECASTGROUP = ''
AND t0e.FFORECASTGROUPFRIST != t1e.FFORECASTGROUPFRIST
{0} """.format(whereSql)
# raise Exception(sql)
# count = DBUtils.Execute(this.Context, sql)
# def EndOperationTransaction(e):
# if this.FormOperation.Operation == "DoUpdatePPBOMLevel":
# datas = e.DataEntitys;
# whereSql = ""
# if datas.Count > 0:
# whereSql = "AND t0.FID IN({0})".format( ",".join(set(map(lambda x :str(x.Id),datas))))
# sql = """/*dialect*/
# UPDATE t0e SET t0e.FFORECASTGROUP = t1e.FFORECASTGROUP
# ,t0e.FFORECASTGROUPFRIST = CASE
# WHEN CHARINDEX( '-',REPLACE( t1e.FFORECASTGROUP,'_','-') ,0) = 0
# THEN t1e.FFORECASTGROUP
# ELSE SUBSTRING(t1e.FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( t1e.FFORECASTGROUP,'_','-') ,0))
# END
# FROM T_PRD_PPBOM t0
# INNER JOIN T_PRD_PPBOMENTRY t0e on t0.FID = t0e.FID
# INNER JOIN T_PRD_MOENTRY t1e on t1e.FID = t0.FMOID
# WHERE 1 = 1 AND t1e.FFORECASTGROUP != ''
# AND t0e.FFORECASTGROUP = ''
# AND t0e.FFORECASTGROUPFRIST != t1e.FFORECASTGROUPFRIST
# {0}
# """.format(whereSql)
# raise Exception(sql)