Trigger Para operaciones de traslado de productos en almacen
Publicado por nick (20 intervenciones) el 04/02/2020 19:08:30
Saludos cordiales de nuevo por aca, como notaron en la pregunta, quisiera un trigger que al hacer una inserción en la tabala de inventarios reste la existencia en la tabla existencia de los id de productos y el deposito de origen y al mismo tiempo sume la existencia de los id de productos y el deposito de destino, sino existe el deposito de destino que haga el insert, lo diseñe y solo me hace el trabajo con un solo insert perfectamente, pero cuando hago un insert masivo no funciona, aquí dejo el código para que se evalúe a ver que puedo estar haciendo mal:
Gracias de antemano por su ayuda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
ALTER trigger [dbo].[Traslado] on [dbo].[Detalle_Opei]
after insert
as
set nocount on
Begin
--Descontar existencia del deposito de Origen
update E set E.Existen=E.Existen-i.Cantidad
from inserted i inner join Existencia E
on i.Id_Prod=e.Prod_Id where i.Id_Prod=e.Prod_Id
and i.UbicOrigen=e.Deposito;
end;
--Si existe el código y el deposito en la tabla de existencia aumenta la existencia
--del deposito de destino
If exists(select e.Prod_Id,e.Deposito from Existencia e
inner join inserted i on e.Prod_Id=i.Id_Prod
where i.Id_Prod=e.Prod_Id and i.UbicDestino=e.Deposito)
Begin
Update E set E.Existen=E.existen+i.Cantidad
From
inserted i inner join Existencia E
on e.Prod_Id=i.Id_Prod
where i.Id_Prod=e.Prod_Id and i.UbicDestino=e.Deposito
End;
else
--Si no existe el codigo y el deposito en la tabla de existencia hace un insert
Begin
insert into Existencia(Prod_Id,Deposito,Existen)
Select i.Id_Prod,i.UbicDestino,i.Cantidad from inserted i
End;
Valora esta pregunta


0