?? tri_庫存調整.sql
字號:
IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='tri_庫存調整' AND TYPE='TR')
DROP TRIGGER tri_庫存調整
GO
CREATE TRIGGER [tri_庫存調整]ON dbo.庫存調整
FOR insert,update
AS
Declare @KEY_ID INT,@來源 CHAR(1),
@年 INT,@月 INT,@物料編碼 varchar(30),@直接材料 Numeric(18,6),@直接人工 Numeric(18,6),@制造費用 Numeric(18,6),
@材料成本金額 Numeric(18,6),@直接人工金額 NumeriC(18,6),@制造費用金額 Numeric(18,6),
@調整數量 Numeric(18,6),@貨位編碼 varchar(10) ,@批號 varchar(15),@倉庫編碼 varchar(10)
select @物料編碼=物料編碼,@KEY_ID=KEY_ID,@調整數量=調整數量, @材料成本金額=材料成本金額,
@直接人工金額=人工成本金額,@制造費用金額=制造費用金額,@年=YEAR(處理日期),@月=MONTH(處理日期),
@貨位編碼=貨位編碼,@批號=批號,@倉庫編碼=倉庫編碼 from inserted
select @直接材料=直接材料, @直接人工=直接人工,@制造費用=制造費用 from 物料主文件_成本
where 物料編碼=@物料編碼
SELECT @來源=來源 FROM 物料主文件_基本 WHERE 物料編碼=@物料編碼
BEGIN
UPDATE 庫存調整 SET 材料成本金額=@調整數量*@直接材料,人工成本金額=@調整數量*@直接人工,
制造費用金額=@調整數量*@制造費用, 庫存調整金額=@調整數量*@直接材料+@調整數量*@直接人工
+@調整數量*@制造費用 WHERE KEY_ID=@KEY_ID
END
if not exists (select* from 明細庫存表 where 物料編碼=@物料編碼 AND 年=@年 AND 月=@月)
BEGIN
insert 明細庫存表(物料編碼,年,月,入庫累計數量,入庫累計材料成本,入庫累計人工成本,入庫累計制造費用)
values(@物料編碼,@年,@月,@調整數量,@調整數量*@直接材料,@調整數量*@直接人工,@調整數量*@制造費用 )
end
ELSE
BEGIN
update 明細庫存表 set 入庫累計數量=入庫累計數量+@調整數量, 入庫累計材料成本=入庫累計材料成本+@調整數量*@直接材料,
入庫累計人工成本=入庫累計人工成本+@調整數量*@直接人工,入庫累計制造費用=入庫累計制造費用+@調整數量*@制造費用
where 物料編碼=@物料編碼 AND 年=@年 AND 月=@月
END
if not exists (select* from 物料與貨位對照表 where 物料編碼=@物料編碼 and 貨位編碼=@貨位編碼 and 批號=@批號 AND 倉庫編碼=@倉庫編碼)
insert 物料與貨位對照表(物料編碼,貨位存量,貨位編碼,批號)VALUES( @物料編碼,@調整數量,@貨位編碼,@批號)
ELSE
update 物料與貨位對照表 set 貨位存量=貨位存量+@調整數量 WHERE 物料編碼=@物料編碼 and 貨位編碼=@貨位編碼 and 批號=@批號 AND 倉庫編碼=@倉庫編碼
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -