feat: refs #7564 Added volume column #2664

Merged
guillermo merged 11 commits from 7564-ticketVolume into dev 2024-08-30 11:57:10 +00:00
1 changed files with 32 additions and 0 deletions
Showing only changes of commit 2f8df96ba7 - Show all commits

View File

@ -0,0 +1,32 @@
DELIMITER $$
guillermo marked this conversation as resolved
Review

Este procedimiento es muy peligroso de ejecutar, se debería de estudiar la manera de hacerlo, por ejemplo marcando un parámetro que indique el tiempo máximo para recalcular en el pasado.

Este procedimiento es muy peligroso de ejecutar, se debería de estudiar la manera de hacerlo, por ejemplo marcando un parámetro que indique el tiempo máximo para recalcular en el pasado.
Review

He hablado con Pako, y me ha dicho que una vez creado el campo vn.ticket.volume, hagamos un cálculo del volumen de todos los tickets en ese momento, y que el procedimiento solo modifique el presente y el futuro.

He hablado con Pako, y me ha dicho que una vez creado el campo vn.ticket.volume, hagamos un cálculo del volumen de todos los tickets en ese momento, y que el procedimiento solo modifique el presente y el futuro.
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setVolumeItemCost`(
vItemFk INT
)
BEGIN
/**
* Update the volume tickets of item
*
* @param vSelf Ticket id
*/
CREATE OR REPLACE TEMPORARY TABLE tTicket
(PRIMARY KEY (id))
ENGINE = MEMORY
SELECT t.id, SUM(s.quantity * ic.cm3delivery / 1000000) volume
FROM sale s
JOIN ticket t ON t.id = s.ticketFk
JOIN itemCost ic ON ic.itemFk = s.itemFk
AND ic.warehouseFk = t.warehouseFk
WHERE t.id IN (
SELECT DISTINCT ticketFk
FROM sale
WHERE itemFk = vItemFk
)
GROUP BY t.id;
UPDATE ticket t
JOIN tTicket tt ON tt.id = t.id
SET t.volume = tt.volume;
DROP TEMPORARY TABLE tTicket;
END$$
DELIMITER ;