feat: refs #7335 Added call ticket_afterUpdate #2415

Merged
guillermo merged 7 commits from 7335-modifyCmr into dev 2024-05-08 11:54:03 +00:00
2 changed files with 6 additions and 11 deletions

View File

@ -7,7 +7,7 @@ BEGIN
* *
* @param vSelf El id del ticket * @param vSelf El id del ticket
*/ */
DECLARE vCmrFk, vPreviousCmrFk, vCurrentCmrFk INT; DECLARE vCmrFk INT;
SELECT cmrFk INTO vCmrFk SELECT cmrFk INTO vCmrFk
FROM ticket FROM ticket
WHERE id = vSelf; WHERE id = vSelf;
@ -44,8 +44,6 @@ BEGIN
AND t.id = vSelf AND t.id = vSelf
GROUP BY t.id; GROUP BY t.id;
START TRANSACTION;
IF vCmrFk THEN IF vCmrFk THEN
UPDATE cmr c UPDATE cmr c
JOIN tTicket t JOIN tTicket t
@ -58,8 +56,6 @@ BEGIN
c.ead = t.landed c.ead = t.landed
WHERE id = vCmrFk; WHERE id = vCmrFk;
ELSE ELSE
SELECT MAX(id) INTO vPreviousCmrFk FROM cmr;
INSERT INTO cmr ( INSERT INTO cmr (
senderInstruccions, senderInstruccions,
truckPlate, truckPlate,
@ -71,16 +67,13 @@ BEGIN
) )
SELECT * FROM tTicket; SELECT * FROM tTicket;
SELECT MAX(id) INTO vCurrentCmrFk FROM cmr; IF (SELECT EXISTS(SELECT * FROM tTicket)) THEN
IF vPreviousCmrFk <> vCurrentCmrFk THEN
UPDATE ticket UPDATE ticket
SET cmrFk = vCurrentCmrFk SET cmrFk = LAST_INSERT_ID()
WHERE id = vSelf; WHERE id = vSelf;
END IF; END IF;
END IF; END IF;
COMMIT;
DROP TEMPORARY TABLE tTicket; DROP TEMPORARY TABLE tTicket;
END$$ END$$
DELIMITER ; DELIMITER ;

View File

@ -7,6 +7,8 @@ BEGIN
UPDATE expedition UPDATE expedition
SET hasNewRoute = TRUE SET hasNewRoute = TRUE
WHERE ticketFk = NEW.id; WHERE ticketFk = NEW.id;
CALL ticket_doCmr(NEW.id);
guillermo marked this conversation as resolved
Review

tal com esta el if de dalt, si es posa una ruta a null o una ruta te null y se li asigna valor, en entra en este if...valora si això es correcte.

tal com esta el if de dalt, si es posa una ruta a null o una ruta te null y se li asigna valor, en entra en este if...valora si això es correcte.
Review

Es correcto, ya que si es uno de los dos (NEW.id o OLD.id) es null, no queremos que entre.

Ya que el CMR se genera cuando se le cambia el estado al ticket.

Es correcto, ya que si es uno de los dos (NEW.id o OLD.id) es null, no queremos que entre. Ya que el CMR se genera cuando se le cambia el estado al ticket.
END IF; END IF;
END$$ END$$
DELIMITER ; DELIMITER ;