需求:用户在使用MRP模块运算时,希望能够在MRP运行完生成采购申请单后显示物料建议供应商信息。
实现逻辑:
可以通过在物料主数据的来源字段补充对应的物料首选供应商信息,维护完毕后,再将该字段携带至MRP运算结果页面,下推采购申请单后,在申请单页面体现物料的默认供应商信息即可;
操作步骤:
由于物料主数据维护来源字段数据需要参考历史采购入库的相关供应商信息,所以先对历史数据进行提取,再筛选出物料首选供应商信息后,再依据整理后的清单对物料进行来源数据字段的批量更新;
1、历史数据提取:
以物料主数据为主维度,提取该物料对应的外购入库单上的供应商信息和对应物料主数据里边的来源数据。
SELECT DISTINCT
t.FNumber 物料编码,
t.FName 物料名称,
isnull((convert(char(10),t1.FDate,120)),'') 外购入库日期,
isnull(t2.FNumber,'') 供应商代码,
isnull(t2.FName,'') 供应商名称,
isnull(t3.FNumber,'') 物料主数据供应商代码,
isnull(t3.FName,'') 物料主数据供应商名称
FROM t_ICItem t
LEFT JOIN ICStockBillEntry t0 ON t0.FItemID=t.FItemID AND t0.FOrderInterID>0
LEFT JOIN ICStockBill t1 ON t1.FInterID=t0.FInterID AND t1.FTranType=1
LEFT JOIN t_Supplier t2 ON t2.FItemID=t1.FSupplyID
LEFT JOIN t_Supplier t3 ON t3.FItemID=t.FSource
WHERE t.FErpClsID=1
最终数据提取如下:用户可以把提取到的供应商代码和名称信息补充到红框位置。保留物料代码,供应商代码即可,作为后续数据批量更新的数据来源。
2、临时数据导入:数据去重后,将物料代码+供应商代码 数据导入临时表(本文临时表是portal.dbo.TSF1NK7)。不再详细赘述;
3、后台更新:更新代码如下:
update u1
set u1.FSource=t2.FItemID
from t_ICItem u1
inner join portal.dbo.TSF1NK7 t1 on t1.F8OJ0V5=u1.FNumber--物料代码匹配
inner join t_Supplier t2 on t2.FNumber=t1.F0ODL1N--供应商匹配
where u1.FSource=0
4、前台查看测试物料对应首选供应商数据:
5、采购申请单自动体现物料默认供应商字段:
OVER.