DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `vn`.`expedition_checkRoute`(vPalletFk INT,vExpeditionFk INT)
	RETURNS tinyint(1)
	DETERMINISTIC
BEGIN
/**
* Comprueba si las expediciones del pallet son todas
* de la misma ruta.
*
* @param vExpeditionFk numero de expedition a comprobar
* @param vPalletFk numero de pallet
* @return vHasDistinctRoutes
*/
	DECLARE vRouteFk INT;
	DECLARE vHasDistinctRoutes BOOL;

	SELECT t.routeFk INTO vRouteFk
		FROM vn.expedition e 
			JOIN vn.ticket t ON e.ticketFk = t.id
		WHERE e.id = vExpeditionFk;
	
	SELECT COUNT(*) > 0 INTO vHasDistinctRoutes
		FROM vn.expeditionScan es
			JOIN vn.expedition e ON es.expeditionFk = e.id
			JOIN vn.ticket t ON e.ticketFk = t.id
				WHERE es.palletFk = vPalletFk
				AND t.routeFk <> vRouteFk;
		
	RETURN vHasDistinctRoutes;

END$$
DELIMITER ;