销售出库单检验物料库存查询无法填充问题分析

由于历史原因,在版本PT-146915 [8.0.0.202206]之前,销售出库单编辑界面在选择物料时会排除检验物料(物料基础资料中的质量页签如果勾选了发货检验就会不能选择),这样处理就是为了让检验物料先走检验路线再生成销售出库单(发货通知单先下推检验单再出库),但原先的版本处理时有几个小地方没有处理好,比如发货通知单下推销售出库单的单据转换中有一个批号拣货服务,它的前置条件设置为'发货检验物料不批号拣货',如下图1-1所示:

图1-1
从上图1-1可以看到,这个前置条件配置是有问题的,应该是要用发货通知单上的'发货检验'字段当前置条件的,而不是物料上的发货检验字段,因为有可能创建物料时勾选了'发货检验',但在做发货通知单时不启用发货检验,星空通版后续将修改此问题。
另外一个存在的问题就是当发货通知单下推销售出库单时,如果物料是发货检验的,并对此类型的物料使用库存查询功能,则会发现库存查询返回后只有一行数据返回成功,其它数据都不会正确填充。这个问题是因为销售出库单表单插件在物料字段赋值时会排除发货检验物料,显示然种情况是不正确的。针对此问题,星空通版后续预计在2022年9月版本中修复,届时更新补丁即可,如果客户不想升级,则可参照以下步骤解决:打开BOS IDE,扩展销售出库单元数据,在销售出库单的单据插件中注册Python插件,如下图1-2所示:

图1-2
其中的python脚本如下图所示:
# -*- coding: utf-8 -*-
#销售出库单表单插件
import clr
clr.AddReference('System')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from System import *
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
global deliveryCheckAssociateCopy;
deliveryCheckAssociateCopy = False;
def BeforeDoOperation(e):
if(e.Operation.FormOperation.Operation.ToUpperInvariant() == "ASSOCIATEDCOPYENTRYROW"):
rowIndex = this.View.Model.GetEntryCurrentRowIndex("FEntity");
material = this.View.Model.GetValue("FMaterialId", rowIndex);
if (material is not None and material.DynamicObjectType.Properties.ContainsKey("MaterialQM")):
materialQMs = material["MaterialQM"]
if (materialQMs is not NOne and materialQMs.Count > 0):
mQM = materialQMs[0];
if (mQM is not None and mQM.DynamicObjectType.Properties.ContainsKey("CheckDelivery")):
global deliveryCheckAssociateCopy;
deliveryCheckAssociateCopy = Convert.ToBoolean(mQM["CheckDelivery"]);
def BeforeSetItemValueByNu
销售出库单检验物料库存查询无法填充问题分析
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



