7430_devToTest #2490

Merged
alexm merged 306 commits from 7430_devToTest into test 2024-05-21 09:15:04 +00:00
3 changed files with 26 additions and 29 deletions
Showing only changes of commit 71a9aed1bb - Show all commits

View File

@ -0,0 +1,22 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`worker_checkMultipleDevice`(
vSelf INT
)
BEGIN
/**
* Verify if a worker has multiple assigned devices,
* except for freelancers.
*
* @param vUserFk worker id.
*/
DECLARE vHasPda BOOLEAN;
DECLARE vIsFreelance BOOLEAN;
SELECT COUNT(*) INTO vHasPda FROM deviceProductionUser WHERE userFk = vSelf;
SELECT isFreelance INTO vIsFreelance FROM worker WHERE id = vSelf;
IF NOT vIsFreelance AND vHasPda > 1 THEN
CALL util.throw('You can only have one PDA');
END IF;
END$$
DELIMITER ;

View File

@ -3,20 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`deviceProductionUser_
BEFORE INSERT ON `deviceProductionUser` BEFORE INSERT ON `deviceProductionUser`
FOR EACH ROW FOR EACH ROW
BEGIN BEGIN
DECLARE vHasPda BOOLEAN; CALL worker_checkMultipleDevice(NEW.userFk);
DECLARE visFreelancer BOOLEAN;
DECLARE vUserName VARCHAR(50);
SELECT COUNT(*) INTO vHasPda FROM deviceProductionUser WHERE userFk = NEW.userFk;
SELECT name INTO vUserName FROM account.user WHERE id = NEW.userFk;
SELECT account.user_hasRoleId(vUserName, (SELECT id FROM role WHERE name = 'freelancer')) INTO vIsFreelancer;
IF NOT vIsFreelancer AND vHasPda THEN
CALL util.throw('You can only have one PDA');
ELSE
SET NEW.editorFk = account.myUser_getId(); SET NEW.editorFk = account.myUser_getId();
END IF;
END$$ END$$
DELIMITER ; DELIMITER ;

View File

@ -3,20 +3,8 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`deviceProductionUser_
BEFORE UPDATE ON `deviceProductionUser` BEFORE UPDATE ON `deviceProductionUser`
FOR EACH ROW FOR EACH ROW
BEGIN BEGIN
DECLARE vHasPda BOOLEAN;
DECLARE visFreelancer BOOLEAN;
DECLARE vUserName VARCHAR(50);
SELECT COUNT(*) INTO vHasPda FROM deviceProductionUser WHERE userFk = NEW.userFk; CALL worker_checkMultipleDevice(NEW.userFk);
SELECT name INTO vUserName FROM account.user WHERE id = NEW.userFk;
SELECT account.user_hasRoleId(vUserName, (SELECT id FROM role WHERE name = 'freelancer')) INTO vIsFreelancer;
IF NOT vIsFreelancer AND vHasPda THEN
CALL util.throw('You can only have one PDA');
ELSE
SET NEW.editorFk = account.myUser_getId(); SET NEW.editorFk = account.myUser_getId();
END IF;
END$$ END$$
DELIMITER ; DELIMITER ;