viernes, 18 de noviembre de 2011

TA (1)

Crear un trigger que actualice la cantidad de unidades que se tiene en stock [Q_Stock] de la tabla Productos cuando el vendedor modifique el pedido de un cliente.
Tener presente que el campo [Q_Stock] se debe actualizar de forma correcta para los siguientes casos:
  • El cliente aumenta la cantidad unidades compradas
  • El cliente disminuye la cantidad unidades compradas
  • Validar la cantidad de unidades compradas (Mayor que cero).



CODIGO:


CREATE TRIGGER ACTUALIZAR_STOCK ON VENTA_DETALLE
FOR UPDATE
AS
BEGIN
DECLARE @CANT INT
DECLARE @AUX INT
DECLARE @PROD INT
DECLARE @STOCK INT
SELECT @AUX = Q_CANTIDAD FROM INSERTED
SELECT @PROD = C_PRODUCTO FROM INSERTED
SELECT @CANT = Q_CANTIDAD FROM DELETED
SELECT @STOCK=P.Q_STOCK FROM PRODUCTO P WHERE P.C_PRODUCTO=@PROD
IF UPDATE(Q_CANTIDAD)
BEGIN
IF(@CANT-@AUX) != 0
BEGIN
IF(@STOCK+@CANT-@AUX<0)
BEGIN
RAISERROR ('EL STOCK ES MENOR QUE CERO',16,1);
ROLLBACK TRANSACTION;
RETURN;
END
ELSE
BEGIN
UPDATE PRODUCTO
SET Q_STOCK=@STOCK+@CANT-@AUX
WHERE C_PRODUCTO=@PROD
END
END
END
END

No hay comentarios:

Publicar un comentario