71 lines
2.6 KiB
MySQL
71 lines
2.6 KiB
MySQL
|
DROP TABLE IF EXISTS `vn`.`dmsRecover`;
|
||
|
|
||
|
ALTER TABLE `vn`.`delivery` DROP COLUMN addressFk;
|
||
|
ALTER TABLE `vn`.`delivery` DROP CONSTRAINT delivery_ticketFk_FK;
|
||
|
ALTER TABLE `vn`.`delivery` DROP COLUMN ticketFk;
|
||
|
ALTER TABLE `vn`.`delivery` ADD ticketFk INT DEFAULT NULL;
|
||
|
ALTER TABLE `vn`.`delivery` ADD CONSTRAINT delivery_ticketFk_FK FOREIGN KEY (`ticketFk`) REFERENCES `vn`.`ticket`(`id`);
|
||
|
|
||
|
DROP PROCEDURE IF EXISTS vn.route_getTickets;
|
||
|
|
||
|
DELIMITER $$
|
||
|
$$
|
||
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `vn`.`route_getTickets`(vRouteFk INT)
|
||
|
BEGIN
|
||
|
/**
|
||
|
* Pasado un RouteFk devuelve la información
|
||
|
* de sus tickets.
|
||
|
*
|
||
|
* @param vRouteFk
|
||
|
*
|
||
|
* @select Información de los tickets
|
||
|
*/
|
||
|
|
||
|
SELECT
|
||
|
t.id Id,
|
||
|
t.clientFk Client,
|
||
|
a.id Address,
|
||
|
t.packages Packages,
|
||
|
a.street AddressName,
|
||
|
a.postalCode PostalCode,
|
||
|
a.city City,
|
||
|
sub2.itemPackingTypeFk PackingType,
|
||
|
c.phone ClientPhone,
|
||
|
c.mobile ClientMobile,
|
||
|
a.phone AddressPhone,
|
||
|
a.mobile AddressMobile,
|
||
|
d.longitude Longitude,
|
||
|
d.latitude Latitude,
|
||
|
wm.mediaValue SalePersonPhone,
|
||
|
tob.Note Note,
|
||
|
t.isSigned Signed
|
||
|
FROM ticket t
|
||
|
JOIN client c ON t.clientFk = c.id
|
||
|
JOIN address a ON t.addressFk = a.id
|
||
|
LEFT JOIN delivery d ON t.id = d.ticketFk
|
||
|
LEFT JOIN workerMedia wm ON wm.workerFk = c.salesPersonFk
|
||
|
LEFT JOIN
|
||
|
(SELECT tob.description Note, t.id
|
||
|
FROM ticketObservation tob
|
||
|
JOIN ticket t ON tob.ticketFk = t.id
|
||
|
JOIN observationType ot ON ot.id = tob.observationTypeFk
|
||
|
WHERE t.routeFk = vRouteFk
|
||
|
AND ot.code = 'delivery'
|
||
|
)tob ON tob.id = t.id
|
||
|
LEFT JOIN
|
||
|
(SELECT sub.ticketFk,
|
||
|
CONCAT('(', GROUP_CONCAT(DISTINCT sub.itemPackingTypeFk ORDER BY sub.items DESC SEPARATOR ','), ') ') itemPackingTypeFk
|
||
|
FROM (SELECT s.ticketFk , i.itemPackingTypeFk, COUNT(*) items
|
||
|
FROM ticket t
|
||
|
JOIN sale s ON s.ticketFk = t.id
|
||
|
JOIN item i ON i.id = s.itemFk
|
||
|
WHERE t.routeFk = vRouteFk
|
||
|
GROUP BY t.id,i.itemPackingTypeFk)sub
|
||
|
GROUP BY sub.ticketFk
|
||
|
) sub2 ON sub2.ticketFk = t.id
|
||
|
WHERE t.routeFk = vRouteFk
|
||
|
GROUP BY t.id
|
||
|
ORDER BY t.priority;
|
||
|
END$$
|
||
|
DELIMITER ;
|