viernes, 18 de noviembre de 2011

TA (2)

Crear un trigger que actualice el monto de la venta total [S_VentaTotal] de la tabla Ventas cuando el vendedor anule o elimine la compra de uno de los productos en venta a un cliente.


CODIGO:

CREATE TRIGGER ACTUALIZAR_MONTO_VENTAS ON VENTA_DETALLE
FOR DELETE
AS
BEGIN
DECLARE @cant_prod INT
DECLARE @prec_unit MONEY
DECLARE @VENTA_TOTAL MONEY
SELECT @cant_prod = Q_CANTIDAD FROM DELETED
SELECT @VENTA_TOTAL= S_VENTA_TOTAL FROM VENTA_DETALLE WHERE C_PRODUCTO=(SELECT C_PRODUCTO FROM DELETED)
SELECT @prec_unit = S_PRECIO_UNITARIO FROM PRODUCTO
WHERE C_PRODUCTO=(SELECT C_PRODUCTO FROM DELETED)
IF(@VENTA_TOTAL-@cant_prod*@prec_unit<0)
BEGIN
RAISERROR ('LA VENTA TOTAL ES MENOR QUE CERO',16,1);
ROLLBACK TRANSACTION;
RETURN;
END
ELSE
BEGIN
UPDATE VENTA
SET S_VENTA_TOTAL=@VENTA_TOTAL-@cant_prod*@prec_unit
WHERE C_VENTA = (SELECT C_VENTA FROM DELETED)
END
END

No hay comentarios:

Publicar un comentario