DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`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 = vWarehouse
		GROUP BY z.agencyModeFk
		ORDER BY agencyMode;
        
	DROP TEMPORARY TABLE
		tmp.zone,
        tmp.zoneOption;
        
END$$
DELIMITER ;