CREATE TRIGGER tar_K3_2Conctrol ON dbo.ICStockBill
FOR INSERT
AS
DECLARE @FInterID Int, @IQCFInterID Int,
@TranType int, @FCount int ,@FSaleNo VarChar(1000), @FTranType int,
@FROB INT, @BillDateTime Datetime, @FSupplyID INT,
@FBillNo VarChar(50), @NowDateTime DateTime
SELECT @FInterID = FInterID, @TranType = FTranType,
@FTranType=FTranType,
@FROB=FROB,@FSupplyID=FSupplyID,@FBillNo=FBillNo
From INSERTED
SELECT @IQCFInterID=FInterID, @BillDateTime=BillDateTime FROM
ICStockBillEntryIQC WHERE FInterID=@FInterID
SELECT @NowDateTime = GETDATE()
--IQC START:
--1. 制单日期改成年月日时分秒;
--2. 备份外购入库, 委外入库记录到IQC辅助表
--3. 更改子表会触发主表 UPDATE DELETE INSERT;
--4. ICStockBillEntryIQC只做删除标志,因为有可能已经做判定
--EDIT BY hsyou 2009/12/03
IF @IQCFInterID>0
BEGIN
UPDATE
ICStockBill SET FHeadSelfA0141=@BillDateTime
WHERE FInterID=@FInterID
INSERT INTO
ICStockBillEntryIQC
(FInterID,FEntryID,FItemID,BillDateTime,FSourceBillNo,FChangeDate)
SELECT
a1.FInterID,a1.FEntryID,a1.FItemID,@BillDateTime,FSourceBillNo,@NowDateTime
FROM ICStockBillEntry a1 WHERE a1.FInterID=@FInterID
UPDATE ICStockBillEntryIQC SET FState=0 WHERE
FInterID=@FInterID AND
FChangeDate<@NowDateTime
UPDATE ICStockBillEntryIQC SET
FSupplyID=@FSupplyID, FBillNo= @FBillNo WHERE FInterID=@FInterID
AND FState=1
--反写已判定记录,相同入库单,物料才允许更新
UPDATE a1
SET a1.IQCResult=b1.IQCResult,
a1.IQCRemark=b1.IQCRemark, a1.IQCStaffID=b1.IQCStaffID,
a1.IQCDateTime=b1.IQCDateTime
FROM ICStockBillEntryIQC a1,ICStockBillEntryIQC b1
WHERE a1.fsourcebillno=b1.fsourcebillno and a1.fitemid=b1.fitemid
and a1.iqcresult=10 and
b1.iqcresult<>10 and
a1.FInterID=b1.FInterID and a1.fsourcebillno is not null
END
ELSE
BEGIN
UPDATE
ICStockBill SET FHeadSelfA0141=@NowDateTime WHERE
FInterID=@FInterID
IF
@FTranType IN (1,5) AND @FROB=1
BEGIN
INSERT INTO ICStockBillEntryIQC
(FInterID,FEntryID,FItemID,BillDateTime,FSourceBillNo,FChangeDate,FQty)
SELECT
a1.FInterID,a1.FEntryID,a1.FItemID,@NowDateTime,FSourceBillNo,@NowDateTime,FQty
FROM ICStockBillEntry a1 WHERE a1.FInterID=@FInterID
UPDATE ICStockBillEntryIQC SET
FSupplyID=@FSupplyID, FBillNo= @FBillNo WHERE FInterID=@FInterID
AND FState=1
END
END
--IQC END.