Files
GateDge2023_ljy/CY.PRD_MORPT.Python/类1.py

82 lines
3.8 KiB
Python
Raw Normal View History

2024-03-04 16:50:20 +08:00
#<23><><EFBFBD><EFBFBD>clr<6C><72><EFBFBD>п<EFBFBD>
import clr
#<23><><EFBFBD>Ӷ<EFBFBD>cloud<75><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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<75><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еij<D0B5><C4B3><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>󣨷<EFBFBD><F3A3A8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<D5BC><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>ݹ鵼<DDB9>
from Kingdee.BOS.Core import *
from Kingdee.BOS.Util import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.Bill.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.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):
e.FieldKeys.Add("F_CYG_Worktype")
e.FieldKeys.Add("FFinishQty")
e.FieldKeys.Add("FStdManHour")
e.FieldKeys.Add("FMaterialId")
e.FieldKeys.Add("FHRWORKTIME")
def EndOperationTransaction(e):
# <20><><EFBFBD><EFBFBD>8<EFBFBD>ύ9<E1BDBB><39><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>26
if this.FormOperation.Operation == "DoUpdateWorkTime":
# sqlList = """"""
sqlLList=List[str]();
for data in e.DataEntitys:
billId = data["Id"]
formId = data["FFormId"]
for item in data["PRD_MORPTENTRY"]:
entryId =item["Id"]
entrySeq = item["Seq"]
# Ĭ<><C4AC>ȡ<EFBFBD><C8A1><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>Աʵ<D4B1><CAB5><EFBFBD><EFBFBD>ʱ
hrWorkTime = item["HrWorkTime"]
fitTimeTotal = 0
guideTimeTotal = 0
workTimeTypeVal = item["F_CYG_Worktype"]
workTimeType = (0 if workTimeTypeVal.strip() == '' else int(workTimeTypeVal))
# <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> 0.<2E><> 1.<2E><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ʱ 2.ָ<><D6B8><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ʱ 3.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ʱ
if (workTimeType) > 0:
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
finishQty = item["FinishQty"]
# <20><>׼<EFBFBD><D7BC>λʱ<CEBB><CAB1>
stdManHour = item["StdManHour"]
# 1.<2E><>׼<EFBFBD><D7BC>λʱ<CEBB>䲻Ϊ<E4B2BB><CEAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Աʵ<D4B1><CAB5><EFBFBD><EFBFBD>ʱ = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * <20><>׼<EFBFBD><D7BC>λʱ<CEBB>
if stdManHour != 0:
hrWorkTime = finishQty * stdManHour
if workTimeType != 3:
materialId = item["MaterialId"]
if workTimeType == 1:
fitTime = materialId["F_CYG_FitTime"]
fitTimeTotal = fitTime * finishQty
# 2.<2E><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ʱ <20><>׼<EFBFBD><D7BC>λʱ<CEBB><CAB1>Ϊ0ʱ <20><>Աʵ<D4B1><CAB5><EFBFBD><EFBFBD>ʱ = <20><><EFBFBD>ε<EFBFBD><CEB5>ݹ<EFBFBD>ʱ
if stdManHour == 0:
hrWorkTime = hrWorkTime - fitTimeTotal
if workTimeType == 2:
guideTime = materialId["F_CYG_GuideTime"]
guideTimeTotal = guideTime * finishQty
# 3.ָ<><D6B8><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ʱ <20><>׼<EFBFBD><D7BC>λʱ<CEBB><CAB1>Ϊ0ʱ <20><>Աʵ<D4B1><CAB5><EFBFBD><EFBFBD>ʱ = <20><><EFBFBD>ε<EFBFBD><CEB5>ݹ<EFBFBD>ʱ
if stdManHour == 0:
hrWorkTime = hrWorkTime - guideTimeTotal
sql = ("""/*dialect*/UPDATE T_CB_WORKHOURSENTRY SET F_CYG_Worktype = '{0}' ,FFitTimeTotal = {1},FguideTimeTotal = {2},FHrWorkTimePart = {3}
WHERE FSRCBILLID = {4} AND FSRCENTRYID = {5} AND FSRCSEQ = {6} AND FSRCBILLFORMID = '{7}' ;""").format(workTimeType,fitTimeTotal,guideTimeTotal,hrWorkTime,billId,entryId,entrySeq,formId)
# sqlList = sqlList + sql;
sqlLList.Add(sql);
# DBUtils.Execute(this.Context,sqlList)
if(sqlLList.Count > 0):
# raise Exception(",".join(sqlLList));
DBUtils.ExecuteBatch(this.Context,sqlLList,sqlLList.Count);