42 lines
1.1 KiB
SQL
42 lines
1.1 KiB
SQL
USE `vn`;
|
||
DROP procedure IF EXISTS `zone_getShippedWarehouse`;
|
||
|
||
DELIMITER $$
|
||
USE `vn`$$
|
||
CREATE DEFINER=`root`@`%` PROCEDURE `zone_getShippedWarehouse`(vLanded DATE, vAddressFk INT, vAgencyModeFk INT)
|
||
BEGIN
|
||
/**
|
||
* Devuelve la mÃnima fecha de envÃo para cada warehouse
|
||
*
|
||
* @param vLanded La fecha de recepcion
|
||
* @param vAddressFk Id del consignatario
|
||
* @param vAgencyModeFk Id de la agencia
|
||
* @return tmp.zoneGetShipped
|
||
*/
|
||
|
||
CALL zone_getFromGeo(address_getGeo(vAddressFk));
|
||
CALL zone_getOptionsForLanding(vLanded);
|
||
|
||
DROP TEMPORARY TABLE IF EXISTS tmp.zoneGetShipped;
|
||
CREATE TEMPORARY TABLE tmp.zoneGetShipped
|
||
ENGINE = MEMORY
|
||
SELECT * FROM (
|
||
SELECT zo.zoneFk,
|
||
TIMESTAMPADD(DAY,-zo.travelingDays, vLanded) shipped,
|
||
zw.warehouseFk,
|
||
z.agencyModeFk
|
||
FROM tmp.zoneOption zo
|
||
JOIN zoneWarehouse zw ON zw.zoneFk = zo.zoneFk
|
||
JOIN zone z ON z.id = zo.zoneFk
|
||
WHERE z.agencyModeFk = vAgencyModeFk
|
||
ORDER BY shipped) t
|
||
GROUP BY warehouseFk;
|
||
|
||
DROP TEMPORARY TABLE
|
||
tmp.zone,
|
||
tmp.zoneOption;
|
||
END$$
|
||
|
||
DELIMITER ;
|
||
|