65 lines
1.5 KiB
MySQL
65 lines
1.5 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`entry_getForLogiflora`(vLanded DATE, vWarehouseFk INT)
|
||
|
RETURNS int(11)
|
||
|
NOT DETERMINISTIC
|
||
|
READS SQL DATA
|
||
|
BEGIN
|
||
|
|
||
|
/**
|
||
|
* Devuelve una entrada para Logiflora. Si no existe la crea.
|
||
|
*
|
||
|
* @param vLanded Fecha de llegada al almacén
|
||
|
* @param vWarehouseFk Identificador de vn.warehouse
|
||
|
*/
|
||
|
|
||
|
DECLARE vTravelFk INT;
|
||
|
DECLARE vEntryFk INT;
|
||
|
DECLARE previousEntryFk INT;
|
||
|
|
||
|
SET vTravelFk = vn.travel_getForLogiflora(vLanded, vWarehouseFk);
|
||
|
|
||
|
IF vLanded THEN
|
||
|
|
||
|
SELECT IFNULL(MAX(id),0) INTO vEntryFk
|
||
|
FROM vn.entry
|
||
|
WHERE travelFk = vTravelFk
|
||
|
AND isRaid;
|
||
|
|
||
|
IF NOT vEntryFk THEN
|
||
|
|
||
|
INSERT INTO vn.entry(travelFk, supplierFk, commission, companyFk, currencyFk, isRaid)
|
||
|
SELECT vTravelFk, s.id, 4, c.id, cu.id, TRUE
|
||
|
FROM vn.supplier s
|
||
|
JOIN vn.company c ON c.code = 'VNL'
|
||
|
JOIN vn.currency cu ON cu.code = 'EUR'
|
||
|
WHERE s.name = 'KONINKLIJE COOPERATIEVE BLOEMENVEILING FLORAHOLLAN';
|
||
|
|
||
|
SELECT MAX(id) INTO vEntryFk
|
||
|
FROM vn.entry
|
||
|
WHERE travelFk = vTravelFk;
|
||
|
|
||
|
END IF;
|
||
|
|
||
|
END IF;
|
||
|
|
||
|
SELECT entryFk INTO previousEntryFk
|
||
|
FROM edi.warehouseFloramondo wf
|
||
|
WHERE wf.warehouseFk = vWarehouseFk;
|
||
|
|
||
|
IF IFNULL(previousEntryFk,0) != vEntryFk THEN
|
||
|
|
||
|
UPDATE buy b
|
||
|
SET b.printedStickers = 0
|
||
|
WHERE entryFk = previousEntryFk;
|
||
|
|
||
|
DELETE FROM buy WHERE entryFk = previousEntryFk;
|
||
|
|
||
|
DELETE FROM entry WHERE id = previousEntryFk;
|
||
|
|
||
|
END IF;
|
||
|
|
||
|
RETURN vEntryFk;
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|