From 89f6f0fbdb544bd7d3b60704a0862d4de9fb96c5 Mon Sep 17 00:00:00 2001 From: alexandre Date: Tue, 18 Apr 2023 09:29:36 +0200 Subject: [PATCH] hotfix delivery --- db/changes/231401/00-hotfixDelivery.sql | 116 +++++++++++++----------- db/changes/231402/00-hotfixDelivery.sql | 70 -------------- 2 files changed, 61 insertions(+), 125 deletions(-) delete mode 100644 db/changes/231402/00-hotfixDelivery.sql diff --git a/db/changes/231401/00-hotfixDelivery.sql b/db/changes/231401/00-hotfixDelivery.sql index 4628cc1db..9f7080764 100644 --- a/db/changes/231401/00-hotfixDelivery.sql +++ b/db/changes/231401/00-hotfixDelivery.sql @@ -1,12 +1,5 @@ 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; +DROP PROCEDURE IF EXISTS `vn`.`route_getTickets`; DELIMITER $$ $$ @@ -17,54 +10,67 @@ BEGIN * 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; +SELECT * + FROM ( + SELECT t.id Id, + t.clientFk Client, + a.id Address, + a.nickname ClientName, + 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.description Note, + t.isSigned Signed, + t.priority + FROM ticket t + JOIN client c ON t.clientFk = c.id + JOIN address a ON t.addressFk = a.id + LEFT JOIN delivery d ON d.ticketFk = t.id + LEFT JOIN workerMedia wm ON wm.workerFk = c.salesPersonFk + LEFT JOIN( + SELECT tob.description, 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 + ORDER BY d.id DESC + LIMIT 10000000000000000000 + )sub3 + GROUP BY sub3.id + ORDER BY sub3.priority; END$$ DELIMITER ; + +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`); diff --git a/db/changes/231402/00-hotfixDelivery.sql b/db/changes/231402/00-hotfixDelivery.sql deleted file mode 100644 index 447294ab6..000000000 --- a/db/changes/231402/00-hotfixDelivery.sql +++ /dev/null @@ -1,70 +0,0 @@ -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 ;