fix: refs #7213 Hotfix-ticket_isTooLittle-group-by-addressFk #2895
|
@ -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,14 +11,21 @@ BEGIN
|
|||
* @param vSelf Id ticket
|
||||
* @return BOOL
|
||||
*/
|
||||
DECLARE vIsTooLittle TINYINT(1);
|
||||
DECLARE vIsTooLittle BOOL;
|
||||
carlosap marked this conversation as resolved
Outdated
|
||||
|
||||
WITH ticketData AS (
|
||||
carlosap marked this conversation as resolved
Outdated
guillermo
commented
Aço es soles una observació, crec que no te sentit dir-li tickets si soles es 1 ticket, jo li diría ticketAddress o algo per l'estil Aço es soles una observació, crec que no te sentit dir-li tickets si soles es 1 ticket, jo li diría ticketAddress o algo per l'estil
|
||||
SELECT addressFk, DATE(shipped) dated
|
||||
FROM vn.ticket
|
||||
WHERE id = vSelf
|
||||
)
|
||||
SELECT (SUM(IFNULL(sv.litros, 0)) < vc.minTicketVolume
|
||||
AND IFNULL(t.totalWithoutVat, 0) < vc.minTicketValue) INTO vIsTooLittle
|
||||
FROM ticket t
|
||||
LEFT JOIN saleVolume sv ON sv.ticketFk = t.id
|
||||
JOIN volumeConfig vc
|
||||
WHERE t.id = vSelf;
|
||||
AND SUM(IFNULL(t.totalWithoutVat, 0)) < vc.minTicketValue) INTO vIsTooLittle
|
||||
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 td.dated AND util.dayEnd(td.dated)
|
||||
AND ticket_isProblemCalcNeeded(t.id);
|
||||
|
||||
RETURN vIsTooLittle;
|
||||
END$$
|
||||
|
|
|
@ -8,17 +8,27 @@ BEGIN
|
|||
*
|
||||
* @param vSelf Id del ticket
|
||||
*/
|
||||
DECLARE vTicketIsTooLittle BOOL;
|
||||
|
||||
SELECT ticket_isTooLittle(vSelf) INTO vTicketIsTooLittle;
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
|
||||
carlosap marked this conversation as resolved
Outdated
guillermo
commented
Lo mateix que ací #2895 (comment) Lo mateix que ací https://gitea.verdnatura.es/verdnatura/salix/pulls/2895#issuecomment-61020
|
||||
(INDEX(ticketFk, isProblemCalcNeeded))
|
||||
ENGINE = MEMORY
|
||||
SELECT vSelf ticketFk,
|
||||
ticket_isTooLittle(vSelf) hasProblem,
|
||||
ticket_isProblemCalcNeeded(vSelf) isProblemCalcNeeded;
|
||||
WITH ticketData AS (
|
||||
SELECT addressFk, DATE(shipped) dated
|
||||
FROM vn.ticket
|
||||
carlosap marked this conversation as resolved
Outdated
guillermo
commented
Ací estás pasant per cada ticket per la funció Entenc tot lo demes, ja que si que te interesa cridar a la funció Ací estás pasant per cada ticket per la funció `vn.ticket_isTooLittle()`, no et fa falta, jo ficaria el SELECT amb el ticket vSelf dalt en una variable, ja que tots els tickets te van a donar lo mateix.
Entenc tot lo demes, ja que si que te interesa cridar a la funció `ticket_isProblemCalcNeeded` per cada ticket.
|
||||
WHERE id = vSelf
|
||||
)
|
||||
SELECT t.id ticketFk,
|
||||
vTicketIsTooLittle hasProblem,
|
||||
ticket_isProblemCalcNeeded(t.id) isProblemCalcNeeded
|
||||
FROM vn.ticket t
|
||||
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;
|
||||
|
||||
END$$
|
||||
DELIMITER ;
|
Loading…
Reference in New Issue
BOOL, i dalt en el RETURNS tame BOOL