30 lines
803 B
SQL
30 lines
803 B
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_setProblemRequest`(
|
|
vSelf INT
|
|
)
|
|
BEGIN
|
|
/**
|
|
* Update the problems of tickets that have a pending ticketRequest or no longer have it
|
|
*
|
|
* @param vSelf Id ticket, if NULL ALL tickets
|
|
*/
|
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
|
|
(INDEX(ticketFk, isProblemCalcNeeded))
|
|
ENGINE = MEMORY
|
|
SELECT t.id ticketFk,
|
|
FALSE hasProblem,
|
|
ticket_isProblemCalcNeeded(t.id) isProblemCalcNeeded
|
|
FROM ticket t
|
|
WHERE t.shipped >= util.VN_CURDATE()
|
|
AND (vSelf IS NULL OR t.id = vSelf);
|
|
|
|
UPDATE tmp.ticket t
|
|
JOIN ticketRequest tr ON tr.ticketFk = t.ticketFk
|
|
SET t.hasProblem = TRUE
|
|
WHERE tr.isOK IS NULL;
|
|
|
|
CALL ticket_setProblem('hasTicketRequest');
|
|
|
|
DROP TEMPORARY TABLE tmp.ticket;
|
|
END$$
|
|
DELIMITER ; |