56 lines
1.8 KiB
SQL
56 lines
1.8 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`entryFromOrder`(IN vShipmentWarehouse INTEGER, IN vLandingWarehouse INTEGER, IN vItem INTEGER,
|
|
IN vAmount INTEGER,IN vVolume INTEGER,vCost DECIMAL(10,2), IN vRetailedPrice DECIMAL(10,2), vInOutDate DATE)
|
|
BEGIN
|
|
|
|
DECLARE vTravel INT;
|
|
DECLARE vEntry INT;
|
|
DECLARE vBucket VARCHAR(10);
|
|
|
|
-- 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 = vInOutDate AND t.shipment = vInOutDate AND t.warehouse_id_out = vShipmentWarehouse
|
|
AND t.warehouse_id = vLandingWarehouse AND agency_id = 15
|
|
LIMIT 1;
|
|
|
|
-- creamos el travel si es necesario
|
|
IF NOT IFNULL(vTravel,0) THEN
|
|
INSERT INTO travel (shipment, landing, warehouse_id, warehouse_id_out, agency_id)
|
|
VALUES (vInOutDate, vInOutDate, vLandingWarehouse, vShipmentWarehouse, 15);
|
|
SELECT LAST_INSERT_ID() INTO vTravel;
|
|
END IF;
|
|
-- creamos la Entrada si es necesario
|
|
IF NOT IFNULL(vEntry,0) THEN
|
|
INSERT INTO Entradas (Id_Proveedor, travel_id)
|
|
VALUES (13, vTravel); -- proveedor 'MOVIMIENTO ALMACEN'
|
|
SELECT LAST_INSERT_ID() INTO vEntry;
|
|
END IF;
|
|
|
|
-- creamos el cubo si es necesario
|
|
SELECT Id_Cubo INTO vBucket FROM Cubos WHERE Volumen = vVolume LIMIT 1;
|
|
|
|
IF NOT IFNULL(vBucket,'') > '' THEN
|
|
INSERT INTO Cubos (Id_Cubo, Volumen)
|
|
VALUES (CONCAT('dm',vVolume/1000), vVolume);
|
|
SELECT LAST_INSERT_ID() INTO vBucket;
|
|
END IF;
|
|
|
|
INSERT INTO Compres(Id_Article,Cantidad, Id_Entrada, Id_Cubo, Packing, `grouping`, caja, Costefijo, Portefijo, Embalajefijo,
|
|
Comisionfija, Tarifa2, Tarifa3)
|
|
VALUES(vItem,
|
|
vAmount,
|
|
vEntry,
|
|
vBucket,
|
|
1,
|
|
1,
|
|
0,
|
|
vCost,
|
|
0,
|
|
0,
|
|
0,
|
|
vRetailedPrice,
|
|
vRetailedPrice);
|
|
END$$
|
|
DELIMITER ;
|