salix/db/routines/vn/triggers/deviceProductionUser_before...

23 lines
692 B
MySQL
Raw Normal View History

DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`deviceProductionUser_beforeUpdate`
BEFORE UPDATE ON `deviceProductionUser`
FOR EACH ROW
BEGIN
DECLARE vHasPda BOOLEAN;
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();
END IF;
END$$
DELIMITER ;