41 lines
726 B
MySQL
41 lines
726 B
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_recalcByScope`(
|
||
|
vScope VARCHAR(255),
|
||
|
vId INT
|
||
|
)
|
||
|
BEGIN
|
||
|
/**
|
||
|
* Recalculates tickets in an scope.
|
||
|
*
|
||
|
* @param vScope The scope name
|
||
|
* @param vId The scope id
|
||
|
*/
|
||
|
DECLARE vDone BOOL;
|
||
|
DECLARE vTicketFk INT;
|
||
|
|
||
|
DECLARE cCur CURSOR FOR
|
||
|
SELECT id FROM ticket
|
||
|
WHERE refFk IS NULL
|
||
|
AND ((vScope = 'client' AND clientFk = vId)
|
||
|
OR (vScope = 'address' AND addressFk = vId));
|
||
|
|
||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||
|
SET vDone = TRUE;
|
||
|
|
||
|
OPEN cCur;
|
||
|
|
||
|
myLoop: LOOP
|
||
|
SET vDone = FALSE;
|
||
|
FETCH cCur INTO vTicketFk;
|
||
|
|
||
|
IF vDone THEN
|
||
|
LEAVE myLoop;
|
||
|
END IF;
|
||
|
|
||
|
CALL ticket_recalc(vTicketFk, NULL);
|
||
|
END LOOP;
|
||
|
|
||
|
CLOSE cCur;
|
||
|
END$$
|
||
|
DELIMITER ;
|