sábado, 26 de noviembre de 2011

TA-Ventas

-------------PREGUNTA 1---------------

CREATE TRIGGER ACTUALIZA_STOCK ON VENTA_DETALLE FOR UPDATE
AS
BEGIN
DECLARE @CANTIDAD INT
DECLARE @CANTIDAD_2 INT
DECLARE @PRODUCTO INT

IF UPDATE (Q_CANTIDAD)
BEGIN
SELECT @CANTIDAD_2=Q_CANTIDAD,@PRODUCTO = C_PRODUCTO FROM INSERTED
SELECT @CANTIDAD = Q_CANTIDAD FROM DELETED

UPDATE PRODUCTO
SET Q_STOCK = Q_STOCK + @CANTIDAD-@CANTIDAD_2
WHERE C_PRODUCTO = @PRODUCTO

END
END

UPDATE VENTA_DETALLE

SET Q_CANTIDAD = 6
WHERE C_PRODUCTO = 1

SELECT * FROM PRODUCTO
select * from VENTA
SELECT * FROM CLIENTE
SELECT * FROM VENTA_DETALLE

------PREGUNTA 2-----------

-------PREGUNTA 2----------
CREATE TRIGGER ANULVENTA ON VENTA_DETALLE FOR DELETE
AS
DECLARE @CANTIDAD_PRODUCTO INT
DECLARE @PRECIO_UNITARIO MONEY

BEGIN
SELECT @CANTIDAD_PRODUCTO = Q_CANTIDAD FROM DELETED
SELECT @PRECIO_UNITARIO = S_PRECIO_UNITARIO FROM PRODUCTO
WHERE C_PRODUCTO = (SELECT C_PRODUCTO FROM DELETED)

UPDATE VENTA

SET S_VENTA_TOTAL = S_VENTA_TOTAL -@CANTIDAD_PRODUCTO*@PRECIO_UNITARIO
WHERE C_VENTA= (SELECT C_VENTA FROM DELETED)
END

DELETE FROM VENTA_DETALLE WHERE C_PRODUCTO = 1 AND C_VENTA = 1

SELECT *FROM VENTA_DETALLE
SELECT * FROM VENTA

---------PREGUNTA 3-----------


CREATE TRIGGER ACTUALIZA_STOCK_ANUL ON VENTA_DETALLE FOR DELETE
AS
BEGIN
DECLARE @CANTIDAD INT
DECLARE @C_PRODU INT

SELECT @CANTIDAD=Q_CANTIDAD FROM DELETED
SELECT @C_PRODU = C_PRODUCTO FROM DELETED

UPDATE PRODUCTO

SET
Q_STOCK =Q_STOCK + @CANTIDAD
WHERE
C_PRODUCTO = @C_PRODU
END

SELECT * FROM PRODUCTO
DELETE FROM VENTA_DETALLE WHERE C_PRODUCTO = 1 and C_VENTA = 1 AND Q_CANTIDAD = 2

No hay comentarios:

Publicar un comentario