通过python修改付款单默认收款方类型原创
金蝶云社区-毛竹
毛竹
16人赞赏了该文章 540次浏览 未经作者许可,禁止转载编辑于2023年01月06日 18:50:57

应用背景:当前付款单默认收款方类型,不管是上游单据下推付款单,比如费用报销单、付款申请单下推付款单,还是手动新增的付款单,都是根据收款单位类型代码里写死的,收款单位类型为“员工”,默认收款方类型默认为“个人”,其他类型则默认为“企业”。

二开场景:希望修改付款单默认收款方类型。

二开指导:

1.上游单据下推付款单,通过在对应单据转换的插件策略注册python脚本进行干预,python脚本内容如下

import clr

clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.DataEntity') 


from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Core.Metadata.FieldElement import * 


def AfterConvert(e):
  headEntity=e.Result.FindByEntityKey("FBillHead")
  for item in headEntity:
    data = item["PAYBILLENTRY"]
    for i in range(len(data)):

      #0为企业,1为个人
      data[i]["RecType"]="0"

2.手动新增的付款单,通过在付款单的表单插件注册python脚本进行干预,python脚本内容如下

import clr

clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.DataEntity') 


from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Core.Metadata.FieldElement import * 


#付款单新增明细给收款方类型设置默认值为企业
def AfterCreateNewEntryRow(e):
  this.Model.SetValue("FRecType","0",e.Row)
#新增付款单将明细收款方类型设置默认值为企业
def AfterCreateNewData(e):
  count=this.View.Model.GetEntryRowCount("FPAYBILLENTRY")
  for i in range(count):
    this.Model.SetValue("FRecType","0",i)


注意:因为付款单新增界面会触发实体服务规则,根据收款单位类型设置收款方类型默认值,所以对于下推付款单后弹出付款单新增界面的情况,则1、2两步二开都要做,如果下推后是后台生成付款单,则只需要做第1步。


赞 16