35 lines
1.2 KiB
SQL
35 lines
1.2 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`newItem`(IN vTicket INTEGER, IN vVolume INTEGER, IN vQuantity INTEGER)
|
|
BEGIN
|
|
|
|
DECLARE vLandingWarehouse INT;
|
|
DECLARE vLandingDate DATE;
|
|
DECLARE vShipmentDate DATE;
|
|
DECLARE vTravel INT;
|
|
DECLARE vEntry INT;
|
|
|
|
SELECT warehouse_id, Fecha, landing INTO vLandingWarehouse, vShipmentDate, vLandingDate FROM Tickets WHERE Id_Ticket = vTicket;
|
|
|
|
-- seleccionamos travel
|
|
SELECT id, Id_Entrada INTO vTravel, vEntry
|
|
FROM travel t LEFT JOIN Entradas e ON t.id = e.travel_id
|
|
WHERE t.landing = vLandingDate AND t.shipment = vShipmentDate AND t.warehouse_id_out = vLandingWarehouse AND t.warehouse_id = vWarehouse
|
|
AND t.delivered = FALSE ; -- agency ??
|
|
|
|
-- creamos el travel si es necesario
|
|
IF NOT vTravel THEN
|
|
INSERT INTO travel (shipment, landing, warehouse_id, warehouse_id_out, agency_id)
|
|
VALUES (vShipmentDate, vLandingDate, vLandingWarehouse, vShipmentWarehouse, a);
|
|
SELECT LAST_INSERT_ID() INTO vTravel;
|
|
END IF;
|
|
|
|
-- creamos la Entrada si es necesario
|
|
IF NOT vEntry THEN
|
|
INSERT INTO Entradas (Id_Proveedor, travel_id)
|
|
VALUES (13, vTravel); -- proveedor 'MOVIMIENTO ALMACEN'
|
|
SELECT LAST_INSERT_ID() INTO vEntry;
|
|
END IF;
|
|
|
|
END$$
|
|
DELIMITER ;
|