K3WISE 投料单物料自动替代
K3 WISE 物料替代,根据替代关系、库存状况、实现自动替代,包含多替一
-- =========================================================
-- Author: HUANGHAOYUN
-- Create date: 2020-07-30
-- Description: 委外订单入库时检查投料单子项物料是否需要替代
-- =========================================================
ALTER PROCEDURE HHY_PROC_AutoSubstitute
@PPBOMBillNo VARCHAR(20)--投料单编号
AS
BEGIN --1SET NOCOUNT ON;DECLARE @PPBOMinterId INT ,@HeadQty DECIMAL(13,4);SELECT @PPBOMinterId=FInterID ,@HeadQty=FAuxQty FROM PPBOM WHERE FBillNo =@PPBOMBillNo AND ISNULL(FCancellation,0)=0 --查询出库存小于应发数量的子项SELECT ROW_NUMBER() OVER ( ORDER BY B.FEntryID) ROWNUM,A.FInterID,A.FItemID ProductItem,A.FAuxQty,B.FEntryID,B.FItemID subItem,B.FAuxQtyScrap,B.FAuxQtyMust,C.FStockQtyINTO #TempPPBOMEntryFROM PPBOM A INNER JOIN PPBOMEntry B ON A.FInterID =B.FInterID LEFT JOIN (SELECT a.FItemID,SUM(ROUND(a.FQty, b.FQtydecimal)) AS FStockQty FROM ICinventory a inner join t_ICItem b on a.FItemID=b.FItemIDLEFT JOIN t_Stock C ON A.FStockID=C.FItemID WHERE A.FStockID=507GROUP BY a.FItemID ,a.FStockID) C ON B.FItemID=C.FItemIDWHERE A.FInterID =@PPBOMinterIdAND C.FStockQty''BEGINSELECT @ERROR=@ERROR+'在系统不存在替代关系,请检查所有材料是否已完成入库操作';raiserror(@ERROR,18,18);ENDELSE --如果有替代关系则进行替代更新投料单信息BEGIN --2SET @Index =1WHILE @Index<=@CountBEGIN --3DECLARE @FEntryId int,--投料单分录@FItemId int,--子项物料代码@STCOKQTY DECIMAL(13,4),--主料库存@AUXQTYMUST DECIMAL(13,4),--应发数量@AUXQTYMUSTSOR DECIMAL(13,4),--原始应发数量@FAuxQtyScrap DECIMAL(13,4)--单位用量SELECT @FEntryId=FEntryID,@FItemId=subItem,@STCOKQTY=ISNULL(FStockQty,0),@AUXQTYMUST=ISNULL(FAuxQtyMust,0),@AUXQTYMUSTSOR=ISNULL(FAuxQtyMust,0),@FAuxQtyScrap=ISNULL(FAuxQtyScrap,0) FROM #TempPPBOMEntry WHERE ROWNUM=@Index--拿出需要替代的料插入到临时表#PPBOMEntry,后面插入替代料时调用SELECT * INTO #PPBOMEntry FROM PPBOMEntry WHERE FInterID =@PPBOMinterId AND FEntryID=@
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
