2024-01-15 11:31:03 +00:00
|
|
|
DELIMITER $$
|
2024-08-20 08:06:10 +00:00
|
|
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`workerDisableAll`()
|
2024-01-15 11:31:03 +00:00
|
|
|
BEGIN
|
|
|
|
DECLARE done BOOL DEFAULT FALSE;
|
|
|
|
DECLARE vUserFk INT;
|
|
|
|
|
|
|
|
DECLARE rs CURSOR FOR
|
|
|
|
SELECT b.workerFk
|
|
|
|
FROM business b
|
|
|
|
JOIN vn.worker w ON w.id = b.workerFk
|
|
|
|
JOIN account.account a ON a.id = b.workerFk
|
|
|
|
LEFT JOIN (SELECT b.workerFk
|
|
|
|
FROM business b
|
|
|
|
WHERE (ended IS NULL OR ended >=util.VN_CURDATE())
|
|
|
|
)sub ON sub.workerFk = a.id
|
|
|
|
LEFT JOIN vn.workerDisableExcluded wd ON wd.workerFk = b.workerFk
|
|
|
|
WHERE sub.workerFk IS NULL
|
|
|
|
AND wd.workerFk IS NULL
|
|
|
|
GROUP BY w.id;
|
|
|
|
|
|
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
|
|
|
|
|
|
|
OPEN rs;
|
|
|
|
|
|
|
|
FETCH rs INTO vUserFk;
|
|
|
|
|
|
|
|
WHILE NOT done DO
|
|
|
|
CALL workerDisable(vUserFk);
|
|
|
|
FETCH rs INTO vUserFk;
|
|
|
|
|
|
|
|
END WHILE;
|
|
|
|
|
|
|
|
CLOSE rs;
|
|
|
|
|
|
|
|
END$$
|
|
|
|
DELIMITER ;
|