This commit is contained in:
PastSaid
2024-05-15 13:56:09 +08:00
parent 16fbd10312
commit 0a17c23e54
43 changed files with 1299 additions and 309 deletions

View File

@@ -23,16 +23,56 @@ from Kingdee.BOS.ServiceHelper import *
def AfterCreateNewData(e):
details = this.View.BusinessInfo.GetEntity("FContractPlan")
entrys = this.View.Model.GetEntityDataObject(details)
dataJson = [{"name":"预付","FRecAdvanceRate":100}
dataJson = [{"name":"预付","FRecAdvanceRate":0}
,{"name":"发货","FRecAdvanceRate":0}
,{"name":"到货","FRecAdvanceRate":0}
,{"name":"验收","FRecAdvanceRate":0}
,{"name":"质保","FRecAdvanceRate":0}]
# "预付" if FMaterialSeq == 1 else "发货" if FMaterialSeq == 2 else "到货" if FMaterialSeq == 3 else "验收" if FMaterialSeq == 4 else "质保"
if entrys != None and entrys.Count > 0:
contractAmount = this.View.Model.GetValue("FCONTRACTAMOUNT")
countRecAdvanceRate = 0
for entry in entrys:
rowIndex = this.View.Model.GetRowIndex(details, entry)
if rowIndex > 4:
continue
entry["F_CYG_Text"] = dataJson[rowIndex]["name"]
entry["FRecAdvanceRate"] = dataJson[rowIndex]["FRecAdvanceRate"]
recAdvanceRate = dataJson[rowIndex]["FRecAdvanceRate"]
countRecAdvanceRate = countRecAdvanceRate + recAdvanceRate
entry["FRecAdvanceRate"] = recAdvanceRate
entry["FRecAdvanceAmount"] = recAdvanceRate / 100 * contractAmount
# def AfterCreateNewData(e):
# details = this.View.BusinessInfo.GetEntity("FContractPlan")
# entrys = this.View.Model.GetEntityDataObject(details)
# dataJson = [{"name":"预付","FRecAdvanceRate":0}
# ,{"name":"发货","FRecAdvanceRate":0}
# ,{"name":"到货","FRecAdvanceRate":0}
# ,{"name":"验收","FRecAdvanceRate":0}
# ,{"name":"质保","FRecAdvanceRate":0}]
# # "预付" if FMaterialSeq == 1 else "发货" if FMaterialSeq == 2 else "到货" if FMaterialSeq == 3 else "验收" if FMaterialSeq == 4 else "质保"
# if entrys != None and entrys.Count > 0:
# contractAmount = this.View.Model.GetValue("FCONTRACTAMOUNT")
# countRecAdvanceRate = 0
# for entry in entrys:
# rowIndex = this.View.Model.GetRowIndex(details, entry)
# if rowIndex > 4:
# continue
# entry["F_CYG_Text"] = dataJson[rowIndex]["name"]
# recAdvanceRate = entry["FRecAdvanceRate"]
# recAdvanceRate = dataJson[rowIndex]["FRecAdvanceRate"] if recAdvanceRate == 0 else recAdvanceRate
# countRecAdvanceRate = countRecAdvanceRate + recAdvanceRate
# entry["FRecAdvanceRate"] = recAdvanceRate
# entry["FRecAdvanceAmount"] = recAdvanceRate / 100 * contractAmount
# if countRecAdvanceRate == 0:
# this.View.Model.SetValue("FRecAdvanceRate", 100, 0)
# this.View.Model.SetValue("FRecAdvanceAmount", contractAmount, 0)
# def DataChanged(e):
# if e.Field.Key == "FRecAdvanceRate":
# contractAmount = this.View.Model.GetValue("FCONTRACTAMOUNT")
# recAdvanceRate = e.NewValue
# rowIndex = e.Row
# recAdvanceAmount = recAdvanceRate * contractAmount / 100
# this.View.Model.SetValue("FRecAdvanceAmount", recAdvanceAmount, rowIndex)

View File

@@ -0,0 +1,46 @@
#引入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 System.Collections.Generic import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.ServiceHelper import *
# 执行保存操作前
def BeforeDoSaveExecute(e):
if e.DataEntities.Count > 0:
# raise Exception(JsonUtil.Serialize(e.DataEntities))
for item in e.DataEntities:
# 收款计划
FContractPlan = item["FContractPlan"]
# 财务信息
CRM_ContractFIN = item["CRM_ContractFIN"][0]
# 合同金额
FCONTRACTAMOUNT = CRM_ContractFIN["FCONTRACTAMOUNT"]
removeList = []
for idx, planItem in enumerate(FContractPlan):
# 应收金额
planItem["FRECADVANCEAMOUNT"] = planItem["FRECADVANCERATE"] * FCONTRACTAMOUNT / 100
if planItem["F_CYG_Text"] == None or planItem["F_CYG_Text"] == "":
removeList.append(idx)
for idx in removeList:
FContractPlan.RemoveAt(idx)
# raise Exception(JsonUtil.Serialize(e.DataEntities))