65 lines
1.5 KiB
SQL
65 lines
1.5 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`vn`@`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 ;
|