salix/db/routines/vn/procedures/sale_PriceFix.sql

25 lines
702 B
MySQL
Raw Normal View History

DELIMITER $$
2024-08-20 08:06:10 +00:00
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`sale_PriceFix`(vTicketFk INT)
BEGIN
2024-11-27 17:19:57 +00:00
DELETE sc
FROM saleComponent sc
JOIN sale s ON s.id = sc.saleFk
JOIN component c ON c.id = sc.componentFk
JOIN componentType ct ON ct.id = c.typeFk
WHERE s.ticketFk = vTicketFk
AND ct.code = 'other';
2024-11-27 17:19:57 +00:00
UPDATE sale s
JOIN (
SELECT sc.saleFk, SUM(sc.value) price, t.currencyFk
FROM ticket
JOIN sale s ON s.ticketFk = t.id
JOIN saleComponent sc ON sc.saleFk = s.id
WHERE t.id = vTicketFk
GROUP BY sc.saleFk) sub ON sub.saleFk = s.id
SET s.price = sub.price,
s.foreignPrice = ticket_getCurrencyRate(vTicketFk) * sub.price;
END$$
DELIMITER ;