41 lines
1.0 KiB
MySQL
41 lines
1.0 KiB
MySQL
|
USE `vn`;
|
||
|
DROP procedure IF EXISTS `zone_getWarehouse`;
|
||
|
|
||
|
DELIMITER $$
|
||
|
USE `vn`$$
|
||
|
CREATE DEFINER=`root`@`%` PROCEDURE `zone_getWarehouse`(vAddress INT, vLanded DATE, vWarehouse INT)
|
||
|
BEGIN
|
||
|
/**
|
||
|
* Devuelve el listado de agencias disponibles para la fecha,
|
||
|
* dirección y almacén pasados.
|
||
|
*
|
||
|
* @param vAddress
|
||
|
* @param vWarehouse warehouse
|
||
|
* @param vLanded Fecha de recogida
|
||
|
* @select Listado de agencias disponibles
|
||
|
*/
|
||
|
|
||
|
CALL zone_getFromGeo(address_getGeo(vAddress));
|
||
|
CALL zone_getOptionsForLanding(vLanded, FALSE);
|
||
|
|
||
|
SELECT am.id agencyModeFk,
|
||
|
am.name agencyMode,
|
||
|
am.description,
|
||
|
am.deliveryMethodFk,
|
||
|
TIMESTAMPADD(DAY, -zo.travelingDays, vLanded) shipped,
|
||
|
zw.warehouseFk,
|
||
|
z.id zoneFk
|
||
|
FROM tmp.zoneOption zo
|
||
|
JOIN zone z ON z.id = zo.zoneFk
|
||
|
JOIN agencyMode am ON am.id = z.agencyModeFk
|
||
|
JOIN zoneWarehouse zw ON zw.zoneFk = zo.zoneFk
|
||
|
WHERE zw.warehouseFk
|
||
|
GROUP BY z.agencyModeFk
|
||
|
ORDER BY agencyMode;
|
||
|
|
||
|
DROP TEMPORARY TABLE
|
||
|
tmp.zone,
|
||
|
tmp.zoneOption;
|
||
|
END$$
|
||
|
|
||
|
DELIMITER ;
|