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