Saludos
Código:
CREATE DEFINER=`db`@`%` PROCEDURE `usp_LupaPersonal`( IN pCodigo VARCHAR(50), IN pNombre VARCHAR(200), IN pTipo CHAR(1), IN pUsuario VARCHAR(50) ) BEGIN DECLARE vPlanta INT; DECLARE vTipo CHAR(1); DECLARE vAdmin INT; SET vAdmin = 0; SET vPlanta = 0; SET vTipo = '@'; SELECT p.plantaid, p.tipo INTO vPlanta, vTipo FROM seguridad.usuario u INNER JOIN db.personal p ON u.personalid = p.personalid WHERE u.usuario = pUsuario; IF((vTipo IS NOT NULL) AND (vTipo = 'M')) THEN SET vAdmin = 1; END IF; SELECT personalid, codigo, CONCAT(nombres, ' ', apellidos) nombre, estado, CASE WHEN tipo = 'A' THEN 'Auxiliar' WHEN tipo = 'V' THEN 'Vendedor' WHEN tipo = 'E' THEN 'Encargado' WHEN tipo = 'M' THEN 'Administrativo' WHEN tipo = 'R' THEN 'Repartidor' END AS tipo FROM db.personal WHERE tipo = pTipo AND estado = 'A' AND UPPER(codigo) LIKE pCodigo AND UPPER(CONCAT(nombres, ' ', apellidos)) LIKE pNombre AND ((vAdmin = 1) OR (plantaid = vPlanta)); END $$