9.12.11

Trigger Para Actualizar Stock

create table Producto(idPro integer primary key, nombre varchar2(25), stockActual integer);
create table Compra(idCompra integer primary key, fecha date);
create table DetalleCompra(Cantidad integer, idCompra references Compra, idPro references Producto);

begin
insert into producto values(1,'Plasma',5);
insert into producto values(2,'MiniComponente',3);
insert into producto values(3,'Dvd',2);
insert into producto values(4,'Lavadora',5);
end;

begin
insert into Compra values(1,'06/06/2011');
insert into Compra values(2,'05/02/2010');
insert into Compra values(3,'05/02/2010');
insert into Compra values(4,'06/03/2012');
end;

begin
insert into DetalleCompra values(6,2,3);
insert into DetalleCompra values(8,1,4);
insert into DetalleCompra values(5,3,2);
insert into DetalleCompra values(7,4,1);
insert into DetalleCompra values(10,2,2);
end;

create or replace trigger actualizaStock
after insert on detalleCompra
for each row
begin
update Producto
set stockActual = stockActual + :new.cantidad
where idPro = :new.idPro;
end;

create table merma(idMerma integer, fecha date, idProducto integer, cantidad integer)
insert into merma values(1, '24/09/2009', 1, 10)
insert into merma values(2, '04/08/2109', 2, 3)

create or replace trigger cantidadMerma
after insert on merma
for each row
begin
update Producto
set stockActual = stockActual - :new.cantidad
where idPro = :new.idProducto;
end;

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.