📄 tri_
字号:
---锦晖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 + -