物料变更

alter TRIGGER [GF_物料变更] 
ON [dbo].[t_BOSPosqbg]
FOR update
AS 
SET ANSI_WARNINGS OFF

declare @FID int,@FMultiCheckStatus int,@FOldStatus int 

select @FID = FID,@FMultiCheckStatus = FMultiCheckStatus  from inserted
select @FOldStatus = FMultiCheckStatus from deleted 

if update (FMultiCheckStatus) and @FOldStatus = 2 and @FMultiCheckStatus = 4  --单据启动审核时
begin        
        update g2 set g2.FitemIDbcp = b1.FitemID,g2.FBOMNumber = b1.FBOMNumber from t_bosposqbg  g1
        inner join t_bosposqbgentry1 g2 on g1.fid = g2.fid
        inner join t_bosposqbgentry2 g3 on g1.fid = g3.fid and g2.findex = g3.findex
        inner join porequestentry    p2 on g2.FID_SRC = p2.FinterID and g2.FEntryID_SRC = p2.FEntryID
        inner join porequest         p1 on p2.FinterID = p1.FinterID
        inner join icmrpresult m1 on p2.FPlanOrderinterID = m1.finterid ---采购申请的计划订单 -变更-可不变更
        inner join ICMRPresult  m2 on m1.FSrcPlanOrderinterID = m2.FinterID  --取半成品名称,计划订单为空的为合并计算导致--半成品计划订单
        inner join icmo  r   on m2.finterid = r.FPlanOrderinterID --半成品生产任务单
        inner join icbom b1 on r.fitemid = b1.fitemid --半成品bom表
        inner join icbomchild b2 on b1.finterid = b2.finterid and p2.fitemid = b2.fitemid  --半成品bom明细表 -变更
end

if update (FMultiCheckStatus) and @FOldStatus = 4 and @FMultiCheckStatus = 16  --单据审核时
begin
        if exists (select 1 from t_bosposqbg where FID  = @FID and FBOMChange = 1)
        begin
        update b2 set b2.FitemID = g3.FitemID,b2.FunitID = g3.FunitID from t_bosposqbg  g1
        inner join t_bosposqbgentry1 g2 on g1.fid = g2.fid
        inner join t_bosposqbgentry2 g3 on g1.fid = g3.fid and g2.findex = g3.findex
        inner join porequestentry    p2 on g2.FID_SRC = p2.FinterID and g2.FEntryID_SRC = p2.FEntryID
        inner join porequest         p1 on p2.FinterID = p1.FinterID
        inner join icmrpresult m1 on p2.FPlanOrderinterID = m1.finterid ---采购申请的计划订单 -变更-可不变更
        inner join ICMRPresult  m2 on m1.FSrcPlanOrderinterID = m2.FinterID  --取半成品名称,计划订单为空的为合并计算导致--半成品计划订单
        inner join icmo  r   on m2.finterid = r.FPlanOrderinterID --半成品生产任务单
        inner join icbom b1 on r.fitemid = b1.fitemid --半成品bom表
        inner join icbomchild b2 on b1.finterid = b2.finterid and p2.fitemid = b2.fitemid  --半成品bom明细表 -变更
        where g1.FID = @FID
        end

update p2 set p2.FitemID = g3.FitemID,p2.FunitID = g3.FunitID from t_bosposqbg  g1
inner join t_bosposqbgentry1 g2 on g1.fid = g2.fid
inner join t_bosposqbgentry2 g3 on g1.fid = g3.fid and g2.findex = g3.findex
inner join porequestentry    p2 on g2.FID_SRC = p2.FinterID and g2.FEntryID_SRC = p2.FEntryID
where g1.FID = @FID

end


if update (FMultiCheckStatus) and @FOldStatus = 16 and @FMultiCheckStatus = 4  --单据审核时
begin
        if exists (select 1 from t_bosposqbg where FID  = @FID and FBOMChange = 1)
        begin
        update b2 set b2.FitemID = g2.FitemID,b2.FunitID = g2.FunitID from t_bosposqbg  g1
        inner join t_bosposqbgentry1 g2 on g1.fid = g2.fid
        inner join t_bosposqbgentry2 g3 on g1.fid = g3.fid and g2.findex = g3.findex
        inner join porequestentry    p2 on g2.FID_SRC = p2.FinterID and g2.FEntryID_SRC = p2.FEntryID
        inner join porequest         p1 on p2.FinterID = p1.FinterID
        inner join icmrpresult m1 on p2.FPlanOrderinterID = m1.finterid ---采购申请的计划订单 -变更-可不变更
        inner join ICMRPresult  m2 on m1.FSrcPlanOrderinterID = m2.FinterID  --取半成品名称,计划订单为空的为合并计算导致--半成品计划订单
        inner join icmo  r   on m2.finterid = r.FPlanOrderinterID --半成品生产任务单
        inner join icbom b1 on r.fitemid = b1.fitemid --半成品bom表
        inner join icbomchild b2 on b1.finterid = b2.finterid and p2.fitemid = b2.fitemid  --半成品bom明细表 -变更
        where g1.FID = @FID
        end

update p2 set p2.FitemID = g2.FitemID,p2.FunitID = g2.FunitID from t_bosposqbg  g1
inner join t_bosposqbgentry1 g2 on g1.fid = g2.fid
inner join t_bosposqbgentry2 g3 on g1.fid = g3.fid and g2.findex = g3.findex
inner join porequestentry    p2 on g2.FID_SRC = p2.FinterID and g2.FEntryID_SRC = p2.FEntryID
where g1.FID = @FID


end

猜你喜欢

转载自blog.csdn.net/qq_41969460/article/details/87880268