首页 > 其他分享 >当仓库隔离时候在其他表单中获取仓库对应的库存

当仓库隔离时候在其他表单中获取仓库对应的库存

时间:2024-08-12 14:37:52浏览次数:12  
标签:AddReference 隔离 仓库 BOS Kingdee 表单 单据 import clr


#引入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.DataEntity') clr.AddReference('Kingdee.BOS.Contracts') clr.AddReference('Kingdee.BOS.ServiceHelper') clr.AddReference('Newtonsoft.Json') # clr.AddReference('Kingdee.K3.SCM')
#clr.AddReference('Kingdee.BOS.Orm') #导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入) from Kingdee.BOS import * from Kingdee.BOS.Core import * from Kingdee.BOS.Contracts import * from Kingdee.BOS.Orm.DataEntity import * from Kingdee.BOS.DataEntity import * from Kingdee.BOS.Core.Bill import * from Kingdee.BOS.Core.DynamicForm 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 Newtonsoft.Json import JsonConvert from Newtonsoft.Json.Linq import * from Kingdee.BOS.Orm import * from Kingdee.BOS.DataEntity import * # from  Kingdee.K3.SCM.App.Core import *

def OnPreparePropertys(e):     e.FieldKeys.Add("FBillTypeId");  #单据单据类型,标识  667e76c006c8a9
#def EndOperationTransaction(e): def BeginOperationTransaction(e):#AfterExecuteOperationTransaction(e):     #这里获取单据数据包方式和前面一样         SrcBillNolist=[];     PkIds=List[object]();#执行空操作的单据内码集合     for billObj in e.DataEntitys:    #获取单据整体数据(可能是多个单据)         billId=billObj["Id"];#单据ID  113907         billNo=billObj["BillNo"];#单据编号 WLYS2406290004           BillTypeId=billObj["BillTypeId"]   #获取单据类型         #typeID=BillTypeId["ID"]    #获取单据类型ID         typeNumber=""         stockid=0         matstockid=""         matfmid=""             if BillTypeId!=None:             typeNumber=BillTypeId["Number"]  #获取单据类型编码         #raise Exception(str(typeNumber))  #QTCKD01_SYS         Dept=billObj["DeptId"]  #获取领料部门信息
        if Dept!=None:             stocknc=Dept["F_TXBE_Base_qtr_83g"]  #获取商贸农场仓库信息
            if stocknc!=None:                 stockid=stocknc["Id"]                 matstockid="and stock.FStockId='{0}'".format(stockid)             #stockjc=Dept["F_TXBE_Base_qtr"]  #获取商贸集采仓库信息         F_TXBE_Stock=billObj["F_TXBE_Stock"]  #获取库存是否充足         F_TXBE_feiliao=billObj["F_TXBE_feiliao"] #是否农药或肥料         StockOrg=billObj["StockOrgId"]  #获取库存组织         stockTrue=False         if StockOrg!=None:             StockOrgId=StockOrg["Number"]   #获取库存组织ID             if StockOrgId in('1082','1087','4101','4102','4103','4104','4105','4107','4109','4110','4111','4112','4115','4117','9999'):                 stockTrue=True
        if typeNumber=="QTCKD01_SYS" and F_TXBE_Stock>=1 and F_TXBE_feiliao>0 and stockTrue==True:             entity=billObj["BillEntry"]#进一步解析单据体,明细信息             fmid=""             for rObj in entity:#在单据体中开始取值,判断,赋值                 FMATERIALID=rObj["MaterialId"]   #获取物料信息                 if FMATERIALID!=None:                     fmid=FMATERIALID["Number"]                     matfmid="and m.fnumber='{0}'".format(fmid)                 # service = StockLockService.GetInstance();                 #raise Exception(str(FMATERIALID))                 # #根据库存维度等信息查找即时库存                 # invStock = service.getInvStockID(this.Context, stockId, stockLocID, lotID, ownerTypeID, ownerID,materialID).FirstOrDefault();

            sql="""                 select                 a.FBASEQTY-0 as FBASEQTY                 from T_STK_INVENTORY a                 left join T_BD_LOTMASTER lotStock on lotStock.FLOTID=a.FLOT and lotStock.FMATERIALID=a.FMATERIALID and a.FSTOCKORGID=lotStock.FUSEORGID                 left JOIN (SELECT TLKE.FSUPPLYINTERID AS FINVENTRYID, SUM(TLKE.FBASEQTY) AS FBASELOCKQTY,                                             SUM(TLKE.FSECQTY) AS FSECLOCKQTY                                         FROM T_PLN_RESERVELINKENTRY TLKE INNER JOIN T_PLN_RESERVELINK TLKH ON TLKE.FID = TLKH.FID                         WHERE TLKE.FSUPPLYFORMID = 'STK_Inventory'  AND TLKE.FLINKTYPE = '4'                                         GROUP BY TLKE.FSUPPLYINTERID) TSUB ON a.FID = TSUB.FINVENTRYID                 inner join T_BD_MATERIAL m on m.FMATERIALID=a.FMATERIALID                 inner join T_BD_MATERIAL_L mL on ml.FMATERIALID=m.FMATERIALID and ml.FLOCALEID=2052                 inner join t_BD_StockStatus kczt on kczt.FSTOCKSTATUSID=a.FSTOCKSTATUSID                 inner join T_BD_STOCKSTATUS_L kcztL on kcztL.FSTOCKSTATUSID=kczt.FSTOCKSTATUSID and kcztL.FLOCALEID=2052                 inner join T_BD_UNIT_L baseUnit on baseUnit.FUNITID=a.FBASEUNITID and baseUnit.FLOCALEID=2052                 inner join T_BD_Stock_L stockL on stockL.FSTOCKID=a.FSTOCKID and stockL.FLOCALEID=2052                 inner join T_BD_Stock stock on stockL.FSTOCKID=stock.FSTOCKID                 where a.FBASEQTY>0   and FSTOCKORGID=1137712 {0} {1}                 """.format(matstockid,matfmid)                         # try:             ds = DBUtils.ExecuteDataSet(this.Context,sql);
            tab = ds.Tables[0];             FBASEQTY=0             tabcount=tab.Rows.Count
            if tabcount==0:                 rObj["F_TXBE_Ten_Qty"]=0             else:                  for dr in tab.Rows:                      FBASEQTY=dr["FBASEQTY"];                      rObj["F_TXBE_Ten_Qty"]=FBASEQTY                            
           

标签:AddReference,隔离,仓库,BOS,Kingdee,表单,单据,import,clr
From: https://www.cnblogs.com/woshinige/p/18354898

相关文章

  • 搭建docker私有仓库
    1.创建仓库镜像存放路径mkdir-p/opt/registry/registry2.生成帐号密码#安装密码生成命令htpasswd##centosyum-yinstallhttpd-tools##ubuntu/debian/deepinaptinstallapache2-utils#生成密钥文件touch/opt/registry/passwdhtpasswd-Bbnusernamepassw......
  • 【git】如何切换原仓库地址
    文章目录一、打开项目目录二、更换原仓库git1.使用rm-rf.git删除.git文件,或直接删除文件里的.git文件2.初始化仓库重新生成.git3.使用gitremoteaddorigin仓库地址关联到新的远程库地址4、使用gitremote-v查看仓库的关联信息5.使用gitadd.添加文件......
  • 搭建python私有仓库
    1.创建帐号密码文件,并添加内容touch/opt/pyserver/.htpasswdecho"username:password">/opt/pyserver/.htpasswd2.创建包路径mkdir/opt/pyserver/packages3.创建私有仓库#不带转发的命令dockerrun--namepypi--restartalways-v/opt/pyserver/packages:/d......
  • 如何忽略已经提交到 Git 仓库中的文件
    文章目录前言一、确认文件是否已经被提交二、确认.git文件存在三、修改.git/info/exclude文件四、修改文件名五、提交和推送六、验证总结前言在日常开发中,我们常常会遇到这样的情况:不小心将不应追踪的文件提交到了Git仓库中,例如配置文件、临时文件等。尽管可......
  • 016.Vue3入门,表单输入绑定,以及lazy延时回车才显示
    1、代码如下<template><h3>表单输入绑定</h3><form><!--编辑框内容变化时候,下面标签同步显示编辑框内容--><inputtype="text"v-model:="username"><P>{{username}}</P><!--编辑框内容变化时候,按下回车后,标......
  • linux 搭建yum仓库
    yum  Yum(全称为YellowdogUpdater,Modified),能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。自己本身也可以做yum服务器,本身可以根据光盘镜像做yum服务器。搭建yum服务器:(1)本地yum(服务器不能上......
  • 数据仓库与大数据的区别
    数据仓库和大数据都是数据处理领域的重要概念,它们有以下区别:1、数据规模不同数据仓库主要处理相对规模较小、结构化的数据,而大数据则强调海量数据和半结构化/非结构化数据的处理。2、数据来源不同数据仓库一般用于整合企业内部的数据源,大数据则可以从多个数据源(包括社交媒体、......
  • docker搭建本地仓库
    环境准备:服务器:9.134.130.35私有仓库服务器,运行registry容器客户端:9.208.244.175测试客户端,用于上传、下载镜像文件测试搭建本地仓库mkdir/docker/registry-p--创建主机目录dockerrun-itd-v/docker/registry/:/docker/registry-p5000:5000--restart=always--......
  • 配置 Containerd 在 harbor 私有仓库拉取镜像
    unexpectedstatuscode[manifests1.28]:401Unauthorized【问题描述】下载Harbor中的私有镜像时报错:[root@lidabaiapp]#ctr-nharbor.lidabaiimagespull192.168.2.22:443/lidabai/busybox:1.28-kctr:failedtoresolvereference"192.168.2.22:443/lidabai/busyb......
  • Spring Boot集成Resilience4J实现限流/重试/隔离
    在现代分布式系统中,可靠性和弹性是至关重要的。Resilience4J是一个专注于提高应用程序弹性和容错能力的库,它提供了多种模式,包括限流(RateLimiter)、重试(Retry)和隔离(Bulkhead)。在这篇文章中,我们将探讨如何在SpringBoot中集成Resilience4J,并分别展示如何实现这三种模式。一、限......