Está en la página 1de 4

IF NOT EXISTS (SELECT 1 FROM producto_stock WHERE id_producto = NEW.

id_producto) THEN INSERT INTO producto_stock (producto_stock_id, id_producto, cantidad, pre cio) VALUES (null, NEW.id_producto, NEW.cantidad, NEW.valor_unitario); ELSE UPDATE producto_stock SET cantidad = (cantidad + NEW.cantidad) WHERE id_pr oducto = NEW.id_producto; END IF

CREATE DEFINER=`root`@`localhost` TRIGGER `actualizar_stock` AFTER INSERT ON `pr oducto_entrada` FOR EACH ROW IF NOT EXISTS (SELECT 1 FROM producto_stock WHERE id_producto = NEW .id_producto) THEN INSERT INTO producto_stock (producto_stock_id, id_producto, cantidad, pre cio) VALUES (null, NEW.id_producto, NEW.cantidad, NEW.valor_unitario); ELSE SELECT * FROM producto_stock WHERE id_producto = NEW.id_producto AS produc to; UPDATE producto_stock SET cantidad = (cantidad + NEW.cantidad) WHERE id_pr oducto = NEW.id_producto; END IF;

//CALCULAR VALOR TOTAL al ingreso de un nuevo producto UPDATE PRODUCTO_ENTRADA SET NEW.valor_total = cantidad * valor_unitario WHERE producto_entrada_id = new.producto_entrada_id IF NOT EXISTS (SELECT 1 FROM producto_stock WHERE id_producto = NEW.id_producto) THEN DECLARE FLOAT val_total; INSERT INTO producto_stock (producto_stock_id, id_producto, cantidad, pre cio, val_total) VALUES (null, NEW.id_producto, NEW.cantidad, NEW.valor_unitario , val_total); ELSE UPDATE producto_stock SET cantidad = (cantidad + NEW.cantidad) WHERE id_pr oducto = NEW.id_producto; END IF

CREATE TRIGGER ACTUALIZAR_STOCK AFTER INSERT ON producto_entrada FOR EACH ROW BEGIN DECLARE val_total FLOAT; DECLARE total_saldos FLOAT; DECLARE precio_nuevo FLOAT;

DECLARE num_totalunidades FLOAT; SET val_total = NEW.valor_unitario * NEW.cantidad; SET num_totalunidades = cantidad + NEW.cantidad; IF NOT EXISTS (SELECT 1 FROM producto_stock WHERE id_producto = NEW.id_p roducto) THEN INSERT INTO producto_stock (producto_stock_id, id_producto, cantidad, pre cio, valor_total) VALUES (null, NEW.id_producto, NEW.cantidad, NEW.valor_unitar io, val_total); ELSE SET precio_nuevo = (valor_total * val_total); UPDATE producto_stock SET cantidad = num_totalunidades WHERE id_producto = NEW.id_producto; END IF; END

CREATE TRIGGER ACTUALIZAR_STOCK AFTER INSERT ON producto_entrada FOR EACH ROW BEGIN DECLARE val_total FLOAT; DECLARE total_saldos FLOAT; SET val_total = NEW.valor_unitario * NEW.cantidad; IF NOT EXISTS (SELECT 1 FROM producto_stock WHERE id_producto = NEW.id_p roducto) THEN INSERT INTO producto_stock (producto_stock_id, id_producto, cantidad, pre cio, valor_total) VALUES (null, NEW.id_producto, NEW.cantidad, NEW.valor_unitar io, val_total); ELSE UPDATE producto_stock SET cantidad = cantidad + NEW.cantidad, valor_total = valor_total + val_total WHERE id_producto = NEW.id_producto; END IF; END

CREATE TRIGGER ACTUALIZAR_STOCK AFTER INSERT ON producto_entrada FOR EACH ROW BEGIN DECLARE val_total FLOAT; DECLARE total_saldos FLOAT; SET val_total = NEW.valor_unitario * NEW.cantidad; IF NOT EXISTS (SELECT 1 FROM producto_stock WHERE id_producto = NEW.id_p roducto) THEN INSERT INTO producto_stock (producto_stock_id, id_producto, cantidad, pre cio, valor_total) VALUES (null, NEW.id_producto, NEW.cantidad, NEW.valor_unitar io, val_total); ELSE UPDATE producto_stock SET cantidad = cantidad + NEW.cantidad, valor_total = valor_total + val_total, precio = (valor_total + val_total)/cantidad WHERE id _producto = NEW.id_producto; END IF; END

CREATE TRIGGER ACTUALIZAR_STOCK AFTER INSERT ON producto_entrada FOR EACH ROW BEGIN DECLARE val_total FLOAT; DECLARE total_saldos FLOAT; SET val_total = NEW.valor_unitario * NEW.cantidad; IF NOT EXISTS (SELECT 1 FROM producto_stock WHERE id_producto = NEW.id_p roducto) THEN INSERT INTO producto_stock (producto_stock_id, id_producto, cantidad, pre cio, valor_total) VALUES (null, NEW.id_producto, NEW.cantidad, NEW.valor_unitar io, val_total); ELSE UPDATE producto_stock SET cantidad = cantidad + NEW.cantidad, valor_total = valor_total + val_total, precio = (valor_total + NEW.valor_unitario)/cantidad WHERE id_producto = NEW.id_producto; END IF; END

DROP TRIGGER `ACTUALIZAR_STOCK_SALIDA`; CREATE DEFINER=`root`@`localhost` TRIGGER `ACTUALIZAR_STOCK_SALIDA` AFTER INSERT ON `detalles-factura` FOR EACH ROW BEGIN DECLARE val_total FLOAT; DECLARE total_saldos FLOAT; SET val_total = NEW.precio * NEW.cantidad; IF NOT EXISTS (SELECT 1 FROM producto_stock WHERE id_producto = NEW.id_p roducto) THEN INSERT INTO producto_stock (producto_stock_id, id_producto, cantidad, pre cio, valor_total) VALUES (null, NEW.id_producto, NEW.cantidad, NEW.precio, val_ total); ELSE UPDATE producto_stock SET cantidad = cantidad - NEW.cantidad, valor_total = valor_total - val_total WHERE id_producto = NEW.id_producto; END IF; END;

CREATE TRIGGER ACTUALIZAR_STOCK_SALIDA AFTER INSERT ON `detalles-factura` FOR EACH ROW BEGIN DECLARE val_total FLOAT; DECLARE total_saldos FLOAT;

SET val_total = NEW.precio * NEW.cantidad; IF NOT EXISTS (SELECT 1 FROM producto_stock WHERE id_producto = NEW.id_p roducto) THEN INSERT INTO producto_stock (producto_stock_id, id_producto, cantidad, pre cio, valor_total) VALUES (null, NEW.id_producto, NEW.cantidad, NEW.precio, val_ total); ELSE UPDATE producto_stock SET cantidad = cantidad + NEW.cantidad, valor_total = valor_total + val_total WHERE id_producto = NEW.id_producto; END IF; END

También podría gustarte