插件二开: 销售出库单同步销售订单单价(Python)原创
金蝶云社区-KanJian
KanJian
60人赞赏了该文章 325次浏览 未经作者许可,禁止转载编辑于2024年08月27日 11:45:59

销售订单由于有一段时间用新变更单修改单价没有同步下游单据,导致销售出库单的单价与订单单价不一致, 现在需要做插件同步,

开始想用关联表来取, 不过由于有发货通知单, 这样就需要取两个关联表, 非常不方便, 偶尔之间发现销售出库单明细有个销售订单EntryId

这个不是销售订单的FentryID吗,由于EntryId是唯一的,可以直接从T_SAL_ORDERENTRY_F取出单价了,于是在明细行添加一个按钮

添加插件如下

#引入clr运行库

import clr

#添加对cloud插件开发的常用组件的引用

clr.AddReference('System')

clr.AddReference('System.Data')

clr.AddReference('Kingdee.BOS')

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

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

clr.AddReference('Kingdee.BOS.App')

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

clr.AddReference('Kingdee.BOS.ServiceHelper')

#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)

from Kingdee.BOS import *

from Kingdee.BOS.Core import *

from Kingdee.BOS.Core.DependencyRules import *

from Kingdee.BOS.Core.Bill import *

from Kingdee.BOS.Core.DynamicForm.PlugIn 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 *

from Kingdee.BOS.Core.DynamicForm import *

from Kingdee.BOS.Core.Metadata.EntityElement import *

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

from Kingdee.BOS.Orm.DataEntity import *


def EntryBarItemClick(e):
    key=e.BarItemKey.ToUpperInvariant();#菜单标识大写
    if(key=="UAGW_SALUpdatePR".ToUpperInvariant()):#按钮ID
        #msg=("菜单[{0}]点击事件捕捉到了,可以继续菜单的功能啦!").format(key);
        entity= this.View.BusinessInfo.GetEntryEntity("FEntity")
        entryRows = this.View.Model.GetEntityDataObject(entity);
        #msg=""
        for each in entryRows:

             _rowIndex = this.View.Model.GetRowIndex(entity,each)

            SoentryID = each["SOEntryId"]#SalesEntryID
            strsql = "/*dialect*/ select FTAXPRICE  from T_SAL_ORDERENTRY_F where FENTRYID = {0}".format(SoentryID)
            salesTaxprice = DBUtils.ExecuteScalar(this.Context,strsql,None);
            #msg += "销售出库单价格" +str(each["TaxPrice"]) + "销售订单价格" + str(salesTaxprice) + "\t"
            this.View.Model.SetValue("FTaxPrice", salesTaxprice,_rowIndex);
            this.View.InvokeFieldUpdateService("FTaxPrice",_rowIndex)         
            
        #this.View.ShowMessage("单价修改完成");

赞 60