This commit is contained in:
parent
04d04e6598
commit
acd4f398c7
|
@ -1,21 +1,57 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`business_afterInsert`
|
||||
AFTER INSERT ON `business`
|
||||
FOR EACH ROW
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`account_enable`(vSelf INT)
|
||||
BEGIN
|
||||
CALL worker_updateBusiness(NEW.workerFk);
|
||||
UPDATE account.user
|
||||
SET active = TRUE
|
||||
WHERE id = NEW.workerFk;
|
||||
/**
|
||||
* Enables a worker's account and sets up email configurations.
|
||||
*/
|
||||
UPDATE user
|
||||
SET active = TRUE
|
||||
WHERE id = vSelf;
|
||||
|
||||
INSERT IGNORE INTO account.mailAliasAccount (mailAlias, account)
|
||||
SELECT id, NEW.workerFk
|
||||
FROM account.mailAlias
|
||||
WHERE alias = 'general';
|
||||
INSERT IGNORE INTO account
|
||||
SET id = vSelf;
|
||||
|
||||
INSERT IGNORE INTO account.mailForward (account, forwardTo)
|
||||
SELECT NEW.workerFk, email
|
||||
FROM account.user
|
||||
WHERE id = NEW.workerFk;
|
||||
INSERT IGNORE INTO mailAliasAccount (mailAlias, account)
|
||||
SELECT id, vSelf
|
||||
FROM mailAlias
|
||||
WHERE alias = 'general';
|
||||
|
||||
INSERT IGNORE INTO mailForward (account, forwardTo)
|
||||
SELECT vSelf, email
|
||||
FROM user
|
||||
WHERE id = vSelf;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
||||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`worker_updateBusiness`(vSelf INT)
|
||||
BEGIN
|
||||
/**
|
||||
* Activates an account and configures its email settings.
|
||||
*
|
||||
* @param vSelf account id.
|
||||
*/
|
||||
DECLARE vOldBusinessFk INT;
|
||||
DECLARE vNewBusinessFk INT;
|
||||
|
||||
SELECT businessFk INTO vOldBusinessFk FROM worker WHERE id = vSelf;
|
||||
|
||||
SELECT id INTO vNewBusinessFk
|
||||
FROM business
|
||||
WHERE workerFk = vSelf
|
||||
AND util.VN_CURDATE() BETWEEN started AND IFNULL(ended, util.VN_CURDATE());
|
||||
|
||||
UPDATE worker
|
||||
SET businessFk = vNewBusinessFk
|
||||
WHERE id = vSelf;
|
||||
|
||||
IF NOT (vOldBusinessFk <=> vNewBusinessFk) THEN
|
||||
IF vNewBusinessFk IS NULL THEN
|
||||
CALL workerDisable(vSelf);
|
||||
END IF;
|
||||
IF vOldBusinessFk IS NULL THEN
|
||||
CALL account.account_enable(vSelf);
|
||||
END IF;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
Loading…
Reference in New Issue