41 lines
1.0 KiB
SQL
41 lines
1.0 KiB
SQL
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 ; |