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