create trigger 调货_trig on dbo.调货表
after insert
as
begin
declare @a bit,@b bit
--判断是否是全部清空
if exists (select 1 from wz_kc a,inserted b where a.药品编号=b.药品编号 and a.进价=b.进价 and a.产地=b.产地
and a.批号=b.批号 and a.数量=b.数量 and a.货位=b.调出货位)
set @a=1
else
set @a=0
--判断原来是否存在
if exists(select 1 from wz_kc a,inserted b where a.药品编号=b.药品编号 and a.进价=b.进价 and a.产地=b.产地
and a.批号=b.批号 and a.货位=b.调入货位)
set @b=1
else
set @b=0if @a=1 and @b=1
begin
delete wz_kc from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位
update wz_kc set wz_kc.数量=wz_kc.数量+inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调入货位
end
else if @a=0 and @b=1
begin
update wz_kc set wz_kc.货位=inserted.调入地点,wz_kc.数量=wz_kc.数量+inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调入货位
update wz_kc set wz_kc.货位=inserted.调入地点,wz_kc.数量=wz_kc.数量-inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位
end
else if @a=1 and @b=0
update wz_kc set wz_kc.货位=inserted.调入地点 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位
else if @a=0 and @b=0
begin
insert into wz_kc (序号,药品编号,药品名称,药品规格,单位,数量,进价,金额,中包装,包装,批号,产地,建议价,货位,客户名称) select 序号,药品编号,药品名称,药品规格,单位,数量,进价,数量*进价,中包装,包装,批号,产地,建议价,调入地点,客户名称 from inserted
update wz_kc set wz_kc.货位=inserted.调入地点,wz_kc.数量=wz_kc.数量-inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位
end
end
after insert
as
begin
declare @a bit,@b bit
--判断是否是全部清空
if exists (select 1 from wz_kc a,inserted b where a.药品编号=b.药品编号 and a.进价=b.进价 and a.产地=b.产地
and a.批号=b.批号 and a.数量=b.数量 and a.货位=b.调出货位)
set @a=1
else
set @a=0
--判断原来是否存在
if exists(select 1 from wz_kc a,inserted b where a.药品编号=b.药品编号 and a.进价=b.进价 and a.产地=b.产地
and a.批号=b.批号 and a.货位=b.调入货位)
set @b=1
else
set @b=0if @a=1 and @b=1
begin
delete wz_kc from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位
update wz_kc set wz_kc.数量=wz_kc.数量+inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调入货位
end
else if @a=0 and @b=1
begin
update wz_kc set wz_kc.货位=inserted.调入地点,wz_kc.数量=wz_kc.数量+inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调入货位
update wz_kc set wz_kc.货位=inserted.调入地点,wz_kc.数量=wz_kc.数量-inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位
end
else if @a=1 and @b=0
update wz_kc set wz_kc.货位=inserted.调入地点 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位
else if @a=0 and @b=0
begin
insert into wz_kc (序号,药品编号,药品名称,药品规格,单位,数量,进价,金额,中包装,包装,批号,产地,建议价,货位,客户名称) select 序号,药品编号,药品名称,药品规格,单位,数量,进价,数量*进价,中包装,包装,批号,产地,建议价,调入地点,客户名称 from inserted
update wz_kc set wz_kc.货位=inserted.调入地点,wz_kc.数量=wz_kc.数量-inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位
end
end
after insert
as
begin
declare @a bit,@b bit--判断是否是全部清空
if exists (select 1 from wz_kc a,inserted b
where a.药品编号=b.药品编号 and a.进价=b.进价 and a.产地=b.产地
and a.批号=b.批号 and a.数量=b.数量 and a.货位=b.调出货位)
set @a=1
else
set @a=0
--判断原来是否存在
if exists(select 1 from wz_kc a,inserted b where a.药品编号=b.药品编号
and a.进价=b.进价 and a.产地=b.产地 and a.批号=b.批号 and a.货位=b.调入货位)
set @b=1
else
set @b=0if @a=1 and @b=1 --如果 是全部清空 且调入货位已经存在
begin
delete wz_kc from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位
update wz_kc set wz_kc.数量=wz_kc.数量+inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调入货位
end
else if @a=0 and @b=1 --如果 不是全部清空 且调入货位已经存在
begin
update wz_kc set wz_kc.货位=inserted.调入地点,wz_kc.数量=wz_kc.数量+inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调入货位
update wz_kc set wz_kc.货位=inserted.调入地点,wz_kc.数量=wz_kc.数量-inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位
end
else if @a=1 and @b=0 --如果 是全部清空 调入货位不存在
update wz_kc set wz_kc.货位=inserted.调入货位 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位else if @a=0 and @b=0 --如果 不是全部清空 调入货位不存在
begin
update wz_kc set wz_kc.货位=inserted.调入地点,wz_kc.数量=wz_kc.数量-inserted.数量 from inserted where wz_kc.药品编号=inserted.药品编号 and wz_kc.批号=inserted.批号 and wz_kc.货位=inserted.调出货位
insert into wz_kc (序号,药品编号,药品名称,药品规格,单位,数量,进价,金额,中包装,包装,批号,产地,建议价,货位,客户名称) select 序号,药品编号,药品名称,药品规格,单位,数量,进价,数量*进价,中包装,包装,批号,产地,建议价,调入地点,客户名称 from inserted
end
end