?? tri_出庫.sql
字號:
---錦暉ERP推廣中心
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME= 'tri_出庫' AND TYPE='TR')
DROP TRIGGER tri_出庫---如果存在這個觸發(fā)器,刪除它,然后再創(chuàng)建.
GO
CREATE TRIGGER [tri_出庫]ON .[出庫]-----創(chuàng)建觸發(fā)器
FOR insert,update
AS
Declare/*定義變量*/
@年 INT,@月 INT,@KEY_ID INT,@物料編碼 varchar(30),@直接材料 Numeric(18,6),@直接人工 Numeric(18,6),@制造費用 Numeric(18,6),
@材料成本金額 Numeric(18,6),@直接人工金額 Numeric(18,6),@制造費用金額 Numeric(18,6),@出庫數(shù)量 Numeric(18,6),
@貨位編碼 varchar(10) ,@批號 varchar(15),@倉庫編碼 varchar(10)
select @KEY_ID=KEY_ID,@物料編碼=物料編碼,@年=YEAR(處理日期),@月=MONTH(處理日期),
@出庫數(shù)量=出庫數(shù)量, @材料成本金額=材料成本金額,@直接人工金額=人工成本金額,
@制造費用金額=制造費用金額,@貨位編碼=貨位編碼,@批號=批號,@倉庫編碼=倉庫編碼 from inserted
select @直接材料=直接材料, @直接人工=直接人工,@制造費用=制造費用 from 物料主文件_成本
where 物料編碼=@物料編碼 /*給變量賦值*/
UPDATE 出庫 SET 材料成本金額=@出庫數(shù)量*@直接材料,人工成本金額=@出庫數(shù)量*@直接人工,
制造費用金額=@出庫數(shù)量*@制造費用,
庫存調(diào)整金額=@出庫數(shù)量*@直接材料+@出庫數(shù)量*@直接人工+@出庫數(shù)量*@制造費用 WHERE KEY_ID=@KEY_ID/*取實際單位成本計算出庫成本*/
if not exists (select* from 明細庫存表 where 物料編碼=@物料編碼 AND 年=@年 AND 月=@月)
insert 明細庫存表(物料編碼,年,月,出庫累計數(shù)量,出庫累計材料成本,出庫累計人工成本,出庫累計制造費用)
values(@物料編碼,@年,@月,@出庫數(shù)量,@出庫數(shù)量*@直接材料,@出庫數(shù)量*@直接人工,@出庫數(shù)量*@制造費用 )/*增加新?lián)?/
ELSE
update 明細庫存表 set 出庫累計數(shù)量=出庫累計數(shù)量+@出庫數(shù)量, 出庫累計材料成本=出庫累計材料成本+@出庫數(shù)量*@直接材料,
出庫累計人工成本=出庫累計人工成本+@出庫數(shù)量*@直接人工,出庫累計制造費用=出庫累計制造費用+@出庫數(shù)量*@制造費用
where 物料編碼=@物料編碼 AND 年=@年 AND 月=@月/*更新數(shù)據(jù)*/
BEGIN
if not exists (select* from 物料與貨位對照表 where 物料編碼=@物料編碼 and 貨位編碼=@貨位編碼 and 批號=@批號 AND 倉庫編碼=@倉庫編碼)
insert 物料與貨位對照表(倉庫編碼,物料編碼,貨位存量,貨位編碼,批號)VALUES( @倉庫編碼,@物料編碼,-@出庫數(shù)量,@貨位編碼,@批號)
ELSE
update 物料與貨位對照表 set 貨位存量=貨位存量-@出庫數(shù)量 WHERE 物料編碼=@物料編碼 and 貨位編碼=@貨位編碼 and 批號=@批號 AND 倉庫編碼=@倉庫編碼
END
--DELETE 出庫
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -