DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `vn`.`ticket_getFreightCost`(vTicketFk INT)
	RETURNS decimal(10,2)
	DETERMINISTIC
BEGIN
/**
 * Devuelve el coste de transportar un ticket.
 *
 * @vTicketFk Id del ticket a calcular
 */
	DECLARE deliveryPrice DECIMAL (10,2);
    
	IF (SELECT isVolumetric FROM ticket t JOIN zone z ON t.zoneFk = z.id 
			WHERE t.id = vTicketFk) THEN
		SELECT SUM(sv.freight) INTO deliveryPrice
			FROM vn.saleVolume sv
			WHERE sv.ticketFk = vTicketFk;
	ELSE
		SELECT SUM((t.zonePrice - t.zoneBonus) * ebv.ratio) INTO deliveryPrice
			FROM vn.ticket t
				LEFT JOIN expedition e ON e.ticketFk = t.id
				JOIN expeditionBoxVol ebv ON ebv.boxFk = e.freightItemFk
			WHERE t.id = vTicketFk;
		
	END IF;
	RETURN deliveryPrice;
END$$
DELIMITER ;
