单据转换表体仓库设置上游单据表头供应商默认仓库无效

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

单据转换表体仓库设置上游单据表头供应商默认仓库无效

1、委外用料清单到委外领料单的单据转换中 字段映射仓库通过自定义公式设置用料清单表头的供应商默认仓库

设置入下

2323.webp

发现这里设置的是 ( FSupplierId.FWipStockId.Id )是因为供应商里面的默认仓库是一个基础资料 这里获取到供应商之后需要获取Id 但是很遗憾这样设置了发下携带下去还是空的  为什么呢?根据平台之前的回答 是因为单据转换中获取二层基础资料只能获取到名称 所以这里的id 获取不到 所以为空了

这里目前看 供应商字段携带到了下游领料单的表头

所以可以通过单据转换插件来处理

二开代码具体如下:

 public override void OnAfterFieldMapping(AfterFieldMappingEventArgs e)

        {

            base.OnAfterFieldMapping(e);

            List<ExtendedDataEntity> extendedDataEntitys = e.TargetExtendDataEntitySet.FindByEntityKey(CONST_SUB_PickMtrl.CONST_FEntity.ENTITY_FEntity).ToList();

            if (extendedDataEntitys.IsEmpty()) return;

            DynamicObject supplier = e.TargetExtendDataEntitySet.FindByEntityKey(CONST_SUB_PickMtrl.CONST_FBillHead.ENTITY_FBillHead).FirstOrDefault().DataEntity.GetDynamicObjectItemValue<DynamicObject>(CONST_SUB_PickMtrl.CONST_FBillHead.ORM_SupplierId, null);

            long suppWipStock = supplier.GetDynamicObjectItemValue<DynamicObjectCollection>("SupplierBusiness").FirstOrDefault().GetDynamicObjectItemValue<long>("WipStockId_Id");

            if (suppWipStock > 0)

            {

                //当前映射完数据以后 如果仓库没有值 设置为供应商的默认仓库

                foreach (ExtendedDataEntity extendedDataEntity in extendedDataEntitys)

                {

                    long stockid = 0;

                    DynamicObject rowData = extendedDataEntity.DataEntity;

                    stockid = rowData.GetDynamicObjectItemValue<long>(CONST_SUB_PickMtrl.CONST_FEntity.ORM_StockID_Id, 0);

                  

                    if (stockid <= 0)

                    {

                        rowData.SetDynamicObjectItemValue(CONST_SUB_PickMtrl.CONST_FEntity.ORM_StockID_Id, suppWipStock);

                    }

                }

            }

}

最终效果如下:


单据转换表体仓库设置上游单据表头供应商默认仓库无效

1、委外用料清单到委外领料单的单据转换中 字段映射仓库通过自定义公式设置用料清单表头的供应商默认仓库设置入下发现这里设置的是 ( FS...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息