salix/db/routines/vn/procedures/workerCreateExternal.sql

30 lines
743 B
SQL

DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`workerCreateExternal`(
vFirstName VARCHAR(50),
vSurname1 VARCHAR(50),
vSurname2 VARCHAR(50),
vUser VARCHAR(20),
vPassword VARCHAR(50),
vWorkerCode VARCHAR(3),
vRole INT(2)
)
BEGIN
DECLARE vUserId INT;
DECLARE vSurnames VARCHAR(100);
INSERT INTO account.`user`(name, nickname, password, `role`, hasGrant)
SELECT vUser, vUser, MD5(vPassword), vRole, false;
SET vUserId = LAST_INSERT_ID();
IF vSurname2 IS NULL THEN
SET vSurnames = vSurname1;
ELSE
SET vSurnames = CONCAT(vSurname1, ' ', vSurname2);
END IF;
INSERT INTO worker(id, firstName, lastName, code, isFreelance)
SELECT vUserId, vFirstName, vSurnames, vWorkerCode, true;
END$$
DELIMITER ;