53 lines
1.5 KiB
MySQL
53 lines
1.5 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`travel_getForLogiflora`(vLanded DATE, vWarehouseFk INT)
|
||
|
RETURNS int(11)
|
||
|
NOT DETERMINISTIC
|
||
|
READS SQL DATA
|
||
|
BEGIN
|
||
|
|
||
|
/**
|
||
|
* Devuelve un número de travel para compras de Logiflora a partir de la fecha de llegada y del almacén.
|
||
|
* Si no existe lo genera.
|
||
|
*
|
||
|
* @param vLanded Fecha de llegada al almacén
|
||
|
* @param vWarehouseFk Identificador de vn.warehouse
|
||
|
*/
|
||
|
|
||
|
DECLARE vTravelFk INT;
|
||
|
|
||
|
IF vLanded THEN
|
||
|
|
||
|
SELECT IFNULL(MAX(tr.id),0) INTO vTravelFk
|
||
|
FROM vn.travel tr
|
||
|
JOIN vn.warehouse wIn ON wIn.id = tr.warehouseInFk
|
||
|
JOIN vn.warehouse wOut ON wOut.id = tr.warehouseOutFk
|
||
|
JOIN vn.agencyMode am ON am.id = tr.agencyModeFk
|
||
|
WHERE wIn.id = vWarehouseFk
|
||
|
AND wOut.name = 'Holanda'
|
||
|
AND am.name = 'LOGIFLORA'
|
||
|
AND landed = vLanded;
|
||
|
|
||
|
IF NOT vTravelFk THEN
|
||
|
|
||
|
INSERT INTO vn.travel(landed, shipped, warehouseInFk, warehouseOutFk, agencyModeFk)
|
||
|
SELECT vLanded, util.VN_CURDATE(), vWarehouseFk, wOut.id, am.id
|
||
|
FROM vn.warehouse wOut
|
||
|
JOIN vn.agencyMode am ON am.name = 'LOGIFLORA'
|
||
|
WHERE wOut.name = 'Holanda';
|
||
|
|
||
|
SELECT MAX(tr.id) INTO vTravelFk
|
||
|
FROM vn.travel tr
|
||
|
JOIN vn.warehouse wIn ON wIn.id = tr.warehouseInFk
|
||
|
JOIN vn.warehouse wOut ON wOut.id = tr.warehouseOutFk
|
||
|
WHERE wIn.id = vWarehouseFk
|
||
|
AND wOut.name = 'Holanda'
|
||
|
AND landed = vLanded;
|
||
|
END IF;
|
||
|
|
||
|
END IF;
|
||
|
|
||
|
RETURN vTravelFk;
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|