Hotfix: refs #7213 ticket_isTooLittle group by addressFk
gitea/salix/pipeline/pr-master This commit looks good Details

This commit is contained in:
Carlos Andrés 2024-08-28 11:59:46 +02:00
parent 1ec9e5bf09
commit 423ba8c218
2 changed files with 15 additions and 12 deletions

View File

@ -2,7 +2,7 @@ DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`ticket_isTooLittle`(
vSelf INT
)
RETURNS tinyint(1)
RETURNS BOOL
READS SQL DATA
BEGIN
/**
@ -11,20 +11,20 @@ BEGIN
* @param vSelf Id ticket
* @return BOOL
*/
DECLARE vIsTooLittle TINYINT(1);
DECLARE vIsTooLittle BOOL;
WITH tickets AS (
WITH ticketData AS (
SELECT addressFk, DATE(shipped) dated
FROM vn.ticket
WHERE id = vSelf
)
SELECT (SUM(IFNULL(sv.litros, 0)) < vc.minTicketVolume
AND SUM(IFNULL(t.totalWithoutVat, 0)) < vc.minTicketValue) INTO vIsTooLittle
FROM tickets ts
JOIN vn.ticket t ON t.addressFk = ts.addressFk
FROM ticketData td
JOIN vn.ticket t ON t.addressFk = td.addressFk
LEFT JOIN vn.saleVolume sv ON sv.ticketFk = t.id
JOIN vn.volumeConfig vc
WHERE t.shipped BETWEEN ts.dated AND util.dayEnd(ts.dated)
WHERE t.shipped BETWEEN td.dated AND util.dayEnd(td.dated)
AND ticket_isProblemCalcNeeded(t.id);
RETURN vIsTooLittle;

View File

@ -8,22 +8,25 @@ BEGIN
*
* @param vSelf Id del ticket
*/
DECLARE vTicketIsTooLittle BOOL;
SELECT ticket_isTooLittle(vSelf) INTO vTicketIsTooLittle;
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
(INDEX(ticketFk, isProblemCalcNeeded))
ENGINE = MEMORY
WITH tickets AS (
WITH ticketData AS (
SELECT addressFk, DATE(shipped) dated
FROM vn.ticket
WHERE id = vSelf
)
SELECT t.id ticketFk,
ticket_isTooLittle(t.id) hasProblem,
vTicketIsTooLittle hasProblem,
ticket_isProblemCalcNeeded(t.id) isProblemCalcNeeded
FROM vn.ticket t
JOIN tickets ts ON ts.addressFk = t.addressFk
WHERE t.shipped BETWEEN ts.dated AND util.dayEnd(ts.dated);
JOIN ticketData td ON td.addressFk = t.addressFk
WHERE t.shipped BETWEEN td.dated AND util.dayEnd(td.dated);
CALL ticket_setProblem('isTooLittle');
DROP TEMPORARY TABLE tmp.ticket;