Este documento descreve um sistema de recursos humanos para automatizar os processos de uma empresa. Ele inclui procedimentos, funções, visualizações e gatilhos para inserir, atualizar e gerar relatórios sobre funcionários, departamentos, projetos e benefícios.
2. Objetivo: Este sistema tem como objetivo automatizar a área de recursos humanos de uma determinada empresa. Os empregados da empresa são admitidos e ficam lotados em departamentos. Estes departamentos controlam determinados projetos.
5. Objetos Desenvolvido : Procedure Que insere um novo funcionário no banco de Dados. Voce ira informar os parâmetros da procedure e ele automaticamente ira inserir aquele funcionario no Banco. Chamada da Procedure Resultado DELIMITER $$ DROP PROCEDURE IF EXISTS `controle_pessoal`.`insere_funcionario` $$ CREATE PROCEDURE `insere_funcionario`(cod_func int(3), nome varchar(30), endereco varchar(30),telefone varchar(30),data_admissao date, data_demissao date,codsupervisor int(3),cod_form_escolar int(3),codcargo int(3), codempresa int(3),cod_depto int(3),data_nascimento date,cod_instituicao int(3)) BEGIN insert into funionario values (cod_func,nome,endereco,telefone,data_admissao,data_demissao,codsupervisor, cod_form_escolar,codcargo,codempresa,cod_depto,data_nascimento,cod_instituicao); END $$ DELIMITER ;
6. Objetos Desenvolvido : Procedure Traz o salário total que o funcionário recebeu naquele determinado ano. Voce passa o parâmetro cod_func que e o código do funcionario , data_beneficio e ele traz a soma total dos benefícios que aquele funcionario recebeu naquele parâmetro que você informou. Chamada da Procedure e resultado DELIMITER $$ DROP PROCEDURE IF EXISTS `controle_pessoal`.`recebeu_naquele_ano`$$ CREATE PROCEDURE `recebeu_naquele_ano`(cod_func int(3), ano_beneficio varchar(10)) BEGIN select sum(b.salario_liquido) from beneficios as b where b.cod_func = cod_func and b.ano_beneficio = ano_beneficio; END$$ DELIMITER ;
7. Objetos Desenvolvido : Procedure Valor total que a empresa gasta com salario dos funcionários por departamento. Chamada da Procedure e resultado DELIMITER $$ DROP PROCEDURE IF EXISTS `controle_pessoal`.`por_departamento`$$ CREATE PROCEDURE `por_departamento`(cod_depto int(3)) BEGIN select sum(b.salario_bruto),d.cod_depto from beneficios as b,funcionario as f,departamentos as d where cod_depto = d.cod_depto and b.cod_func = f.cod_func group by d.cod_depto; END$$ DELIMITER ;
8. Objetos Desenvolvido : Function Saber quantidade de projetos que um determinado funcionário participa Chamada da function e o seu resultado com o código do funcionário n 10 DELIMITER $$ DROP FUNCTION IF EXISTS `controle_pessoal`.`projeto_participa_func` CREATE FUNCTION `controle_pessoal`.`projeto_participa_func` (cod_func int(3)) RETURNS TRUE BEGIN SELECT count(p.nome_proj) FROM projetos as p where p.cod_func = cod_func; END$$ DELIMITER ;
9. Objetos Desenvolvido : Function Aumentar o percentual do funcionario em 10% Veja o salário liquido atual do funcionário numero 3 Veja a chamada da function , quando ele aumentou o salário para mais 10 % Veja já somado com o calculo de 10 % a mais DELIMITER // CREATE FUNCTION aumenta_10_por_cento (cod_func int(3)) RETURNS int(10) BEGIN declare dado1 integer; declare dado2 integer; declare dez_por_cento cursor for SELECT (b.salario_liquido * 0.10) FROM beneficios as b WHERE b.cod_func = cod_func; declare sal_liquido cursor for select salario_liquido FROM beneficios as b WHERE b.cod_func = cod_func; open dez_por_cento; open sal_liquido; fetch dez_por_cento into dado1; fetch sal_liquido into dado2; UPDATE benefícios as b SET salario_liquido = dado1 + dado2 where cod_func = b.cod_func; return dado1; return dado2; END // DELIMITER ;
10. Objetos Desenvolvido : Function Qtde de funcionários que receberam algum beneficio no 2 semetre do parametro informado. Chamada da função quando passado o parâmetro de 2008 DELIMITER // CREATE FUNCTION recebe_2semes (data_beneficio date) RETURNS int(10) BEGIN declare dado1 integer; declare declarar cursor for select count(cod_func) from beneficios where data_beneficio >= data_beneficio; open declarar; fetch declarar into dado1; return dado1; END // DELIMITER ;
11. Objetos Desenvolvido : View 1 Traz a quantidade de empregados que foram demitidos . View 2 Traz a quantidade total de projetos. CREATE VIEW `controle_pessoal`.`func_demitido` AS SELECT * FROM funcionario where data_demissao is not null; Chamando a view que traz a quantidade de empregados demitidos CREATE VIEW `controle_pessoal`.`quantidade_total_projetos` AS SELECT count(cod_projeto) FROM projetos; Chamando a view , a quantidade de projetos do banco de dados
12. Objetos Desenvolvido : Trigger Quando um funcionário do departamento 10 (engenharia) inicia um projeto ele ganha gratificação de 5% do salário liquido . Resultado: CREATE TRIGGER aumenta_gratificacao_engenheiro AFTER INSERT ON PROJETOS FOR EACH ROW declare salario_liquid float (10,2) cinco_por_cento float (10,2) gratificacao_eng float (10,2) BEGIN SELECT (b.salario_liquido * 0.05) INTO cinco_por_cento FROM beneficios as b, funcionario as f, WHERE f.cod_func = b.cod_func and b.cod_depto = 10; select b.salario_liquido into salario_liquid FROM beneficios as b , funcionario as f WHERE b.cod_func = f.cod_func and b.cod_depto = 10; gratificacao_eng := cinco_por_cento + salario_liquid; UPDATE BENEFICIOS SET SALARIO_LIQUIDO = gratificacao_eng WHERE COD_DEPTO = 10; END;
13. Objetos Desenvolvido : Trigger Quando um funcionário entra na empresa ele ganha gratificação de auxilio supermercado no valor de 100.00 Inserindo um funcionário Resultado na tabela de benefícios quando foi inserido um funcionário no banco automaticamente e inserido na tabela de benefícios o “Auxilio supermercado no valor de 100 reais” . DELIMITER $$ DROP TRIGGER IF EXISTS `controle_pessoal`.`add_beneficio_supermercado`$$ CREATE TRIGGER add_beneficio_supermercado AFTER INSERT ON funcionario FOR EACH ROW BEGIN INSERT INTO beneficios SET codbene=NEW.cod_func,descontos = 0,data_beneficio =NEW.data_admissao,cod_func=NEW.cod_func, salario_bruto = 100.00,salario_liquido=100.00, cod_tipo_bene = 9,ano_benefico='0'; END$$ DELIMITER ;
14. Objetos Desenvolvido : Trigger Trigger que automaticamente quando um funcionario troca de setor , automaticamente e inserido na tabela de historico do funcionario . Observe o UPDATE do funcionario Renato do cargo 4 para o 5 Depois de alterado o cargo do funcionario obtemos este resultado: DELIMITER $$ DROP TRIGGER IF EXISTS `controle_pessoal`.`func_troca_setor`$$ CREATE TRIGGER func_troca_setor AFTER UPDATE ON funcionario FOR EACH ROW BEGIN INSERT INTO historico_func SET codhistfunc = NEW.cod_func, cod_func = NEW.cod_func,data_trasferencia=data_admissao, cod_cargo=NEW.codcargo; END$$ DELIMITER ;
15. Objetos Desenvolvido : Trigger Quando um funcionario troca de departamento , automaticamente ele gera na tabela de historico de funcionario . Resultado: FIM DELIMITER $$ DROP TRIGGER IF EXISTS `controle_pessoal`.`func_troca_departamento`$$ CREATE TRIGGER func_troca_departamento AFTER UPDATE ON funcionario FOR EACH ROW BEGIN INSERT INTO historico_func SET codhistfunc = NEW.cod_func, cod_func = NEW.cod_func,data_trasferencia=data_admissao, cod_depto=NEW.cod_depto; END$$ DELIMITER ;