Ejemplo n.º 1
0
        public IHttpActionResult DeleteContratacao(int id)
        {
            Contratacao contratacao = db.Contratacao.Find(id);

            if (contratacao == null)
            {
                return(NotFound());
            }

            ContratacaoDTO c = new ContratacaoDTO(contratacao);

            contratacao.ContratacaoMeses
            .Select(x => new { ContrCod = x.ContratacaoCod, MesCod = x.MesOrcamentoCod }).ToList()
            .ForEach(x => contratacao.ContratacaoMeses.Remove(db.ContratacaoMes.Find(x.ContrCod, x.MesCod)));

            db.Contratacao.Remove(contratacao);
            try {
                db.SaveChanges();
            } catch (Exception e)
            {
                return(InternalServerError(e));
            }

            return(Ok(c));
        }
Ejemplo n.º 2
0
 public Professor(Pessoa pessoa, Contratacao contratacao, DadosBancarios dadosBancarios, Endereco endereco)
 {
     Pessoa         = pessoa;
     Contratacao    = contratacao;
     DadosBancarios = dadosBancarios;
     Endereco       = endereco;
 }
Ejemplo n.º 3
0
        public IHttpActionResult PutContratacao(int id, Contratacao contratacao)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != contratacao.Codigo)
            {
                return(BadRequest());
            }

            db.Entry(contratacao).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ContratacaoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Ejemplo n.º 4
0
 public ContratacaoDTO(Contratacao c)
 {
     if (c == null)
     {
         return;
     }
     Codigo           = c.Codigo;
     Motivo           = c.Motivo;
     Periculosidade   = c.Periculosidade;
     CentroCustoCod   = c.CentroCustoCod;
     ConvenioPlanoCod = c.ConvenioPlanoCod;
     CargaHoraria     = c.CargaHoraria;
     EmpresaCod       = c.EmpresaCod;
     CidadeNome       = c.CidadeNome;
     CargoCod         = c.CargoCod;
     Salario          = c.Salario;
     CicloCod         = c.CicloCod;
     VTFretadoFlag    = c.VTFretadoFlag;
     ConvenioOdoCod   = c.ConvenioOdoCod;
     CodEscala        = c.CodEscala;
     AdCondutor       = c.AdCondutor;
     if (c.Variaveis != null)
     {
         CargoNome = c.Variaveis.Cargo.NomeCargo;
     }
 }
Ejemplo n.º 5
0
        public IHttpActionResult GetContratacao(int id)
        {
            Contratacao contratacao = db.Contratacao.Find(id);

            if (contratacao == null)
            {
                return(NotFound());
            }

            return(Ok(new ContratacaoDTO(contratacao)));
        }
Ejemplo n.º 6
0
        public Aluno(Pessoa pessoa, string responsavel, Contratacao contratacao, Endereco endereco)
        {
            if (string.IsNullOrEmpty(responsavel))
            {
                throw new ArgumentException("Nome de Responsável é necessário para efetuar mátricula.");
            }

            Pessoa      = pessoa;
            Responsavel = responsavel;
            Contratacao = contratacao;
            Endereco    = endereco;
        }
Ejemplo n.º 7
0
        public IHttpActionResult PostContratacao(Contratacao contratacao)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Contratacao.Add(contratacao);
            try {
                db.SaveChanges();
            } catch (Exception e)
            {
                return(InternalServerError(new Exception("Erro ao salvar contratação! " + e.Message)));
            }

            return(CreatedAtRoute("DefaultApi", new { id = contratacao.Codigo }, new ContratacaoDTO(contratacao)));
        }
Ejemplo n.º 8
0
 public ContratacaoDTO(Contratacao c)
 {
     if (c == null)
     {
         return;
     }
     Codigo           = c.Codigo;
     Insalubridade    = c.Insalubridade;
     Motivo           = c.Motivo;
     Periculosidade   = c.Periculosidade;
     CentroCustoCod   = c.CentroCustoCod;
     ConvenioPlanoCod = c.ConvenioPlanoCod;
     CargaHoraria     = c.CargaHoraria;
     EmpresaCod       = c.EmpresaCod;
     CidadeNome       = c.CidadeNome;
     CargoCod         = c.CargoCod;
     Salario          = c.Salario;
 }
        public IHttpActionResult GetFuncionarioHEs(int codContratacao, int codCiclo)
        {
            Contratacao con = db.Contratacao.Find(codContratacao);

            if (con == null)
            {
                return(NotFound());
            }

            Ciclo c = db.Ciclo.Find(codCiclo);

            if (c == null)
            {
                return(NotFound());
            }

            return(Ok(new ContratacaoHEsDTO(con, c)));
        }
Ejemplo n.º 10
0
        public IHttpActionResult GetValoresPorCiclo(int codContratacao, int codCiclo)
        {
            Contratacao cont = db.Contratacao.Find(codContratacao);

            if (cont == null)
            {
                return(NotFound());
            }

            Ciclo c = db.Ciclo.Find(codCiclo);

            if (c == null)
            {
                return(NotFound());
            }

            return(Ok(new ContratacaoEventosDTO(cont, c)));
        }
Ejemplo n.º 11
0
        public ContratacaoHEsDTO(Contratacao con, Ciclo c)
        {
            db = new Contexto();

            if (con == null || c == null)
            {
                return;
            }
            Cargo        = con.Variaveis.Cargo.NomeCargo;
            Codigo       = con.Codigo;
            CargaHoraria = con.CargaHoraria;

            HEs170 = new HashSet <QtdaHorasMesDTO>();
            HEs100 = new HashSet <QtdaHorasMesDTO>();
            HEs75  = new HashSet <QtdaHorasMesDTO>();
            HEs60  = new HashSet <QtdaHorasMesDTO>();
            HEs50  = new HashSet <QtdaHorasMesDTO>();
            int?qtda = 0;

            foreach (MesOrcamento m in c.MesesOrcamento.OrderBy(x => x.Mes))
            {
                HEContratacao he = db.HEContratacao.Find(con.Codigo, 170, m.Codigo);
                qtda = he == null ? 0 : he.QtdaHoras;
                ((HashSet <QtdaHorasMesDTO>)HEs170).Add(new QtdaHorasMesDTO
                {
                    CodMesOrcamento = m.Codigo,
                    Mes             = m.Mes,
                    QtdaHoras       = qtda.Value,
                    PercentualHoras = 170
                });

                he   = db.HEContratacao.Find(con.Codigo, 100, m.Codigo);
                qtda = he == null ? 0 : he.QtdaHoras;
                ((HashSet <QtdaHorasMesDTO>)HEs100).Add(new QtdaHorasMesDTO
                {
                    CodMesOrcamento = m.Codigo,
                    Mes             = m.Mes,
                    QtdaHoras       = qtda.Value,
                    PercentualHoras = 100
                });

                he   = db.HEContratacao.Find(con.Codigo, 75, m.Codigo);
                qtda = he == null ? 0 : he.QtdaHoras;
                ((HashSet <QtdaHorasMesDTO>)HEs75).Add(new QtdaHorasMesDTO
                {
                    CodMesOrcamento = m.Codigo,
                    Mes             = m.Mes,
                    QtdaHoras       = qtda.Value,
                    PercentualHoras = 75
                });

                he   = db.HEContratacao.Find(con.Codigo, 60, m.Codigo);
                qtda = he == null ? 0 : he.QtdaHoras;
                ((HashSet <QtdaHorasMesDTO>)HEs60).Add(new QtdaHorasMesDTO
                {
                    CodMesOrcamento = m.Codigo,
                    Mes             = m.Mes,
                    QtdaHoras       = qtda.Value,
                    PercentualHoras = 60
                });

                he   = db.HEContratacao.Find(con.Codigo, 50, m.Codigo);
                qtda = he == null ? 0 : he.QtdaHoras;
                ((HashSet <QtdaHorasMesDTO>)HEs50).Add(new QtdaHorasMesDTO
                {
                    CodMesOrcamento = m.Codigo,
                    Mes             = m.Mes,
                    QtdaHoras       = qtda.Value,
                    PercentualHoras = 50
                });
            }
        }
 public Contratacao BuscarContratoPorId(Contratacao c)
 {
     return(ctx.Contratacoes.FirstOrDefault(x => x.IdContratacao.Equals(c.IdContratacao)));
 }
 public bool SalvarContratacao(Contratacao c)
 {
     ctx.Contratacoes.Add(c);
     ctx.SaveChanges();
     return(true);
 }
Ejemplo n.º 14
0
        public ContratacaoHNsDTO(Contratacao con, Ciclo c)
        {
            db = new Contexto();

            if (con == null || c == null)
            {
                return;
            }
            Codigo       = con.Codigo;
            Cargo        = con.Variaveis.Cargo.NomeCargo;
            CargaHoraria = con.CargaHoraria;

            HNs20 = new HashSet <QtdaHorasMesDTO>();
            HNs30 = new HashSet <QtdaHorasMesDTO>();
            HNs40 = new HashSet <QtdaHorasMesDTO>();
            HNs60 = new HashSet <QtdaHorasMesDTO>();
            HNs50 = new HashSet <QtdaHorasMesDTO>();
            int?qtda = 0;

            foreach (MesOrcamento m in c.MesesOrcamento.OrderBy(x => x.Mes))
            {
                AdNoturnoContratacao he = db.AdNoturnoContratacao.Find(con.Codigo, m.Codigo, 20);
                qtda = he == null ? 0 : he.QtdaHoras;
                ((HashSet <QtdaHorasMesDTO>)HNs20).Add(new QtdaHorasMesDTO
                {
                    CodMesOrcamento = m.Codigo,
                    Mes             = m.Mes,
                    QtdaHoras       = qtda.Value,
                    PercentualHoras = 20
                });

                he   = db.AdNoturnoContratacao.Find(con.Codigo, m.Codigo, 30);
                qtda = he == null ? 0 : he.QtdaHoras;
                ((HashSet <QtdaHorasMesDTO>)HNs30).Add(new QtdaHorasMesDTO
                {
                    CodMesOrcamento = m.Codigo,
                    Mes             = m.Mes,
                    QtdaHoras       = qtda.Value,
                    PercentualHoras = 30
                });

                he   = db.AdNoturnoContratacao.Find(con.Codigo, m.Codigo, 40);
                qtda = he == null ? 0 : he.QtdaHoras;
                ((HashSet <QtdaHorasMesDTO>)HNs40).Add(new QtdaHorasMesDTO
                {
                    CodMesOrcamento = m.Codigo,
                    Mes             = m.Mes,
                    QtdaHoras       = qtda.Value,
                    PercentualHoras = 40
                });

                he   = db.AdNoturnoContratacao.Find(con.Codigo, m.Codigo, 60);
                qtda = he == null ? 0 : he.QtdaHoras;
                ((HashSet <QtdaHorasMesDTO>)HNs60).Add(new QtdaHorasMesDTO
                {
                    CodMesOrcamento = m.Codigo,
                    Mes             = m.Mes,
                    QtdaHoras       = qtda.Value,
                    PercentualHoras = 60
                });

                he   = db.AdNoturnoContratacao.Find(con.Codigo, m.Codigo, 50);
                qtda = he == null ? 0 : he.QtdaHoras;
                ((HashSet <QtdaHorasMesDTO>)HNs50).Add(new QtdaHorasMesDTO
                {
                    CodMesOrcamento = m.Codigo,
                    Mes             = m.Mes,
                    QtdaHoras       = qtda.Value,
                    PercentualHoras = 50
                });
            }
        }
        //Para cáculo de DSR, necessita-se da qtda de dias úteis e não úteis em cada mês.
        //Para isso, usa-se a tabela QtdaDias, que tem associada à ela uma escala de trabalho.
        //Foi criada a escala 1 (Dias úteis) e 2 (Dias não úteis) para esse cálculo
        public static IEnumerable <CalculoEventoContratacao> CalculaContratacaoCiclo(Contratacao cont, Ciclo ciclo)
        {
            Contexto db = new Contexto();

            if (cont == null || ciclo == null)
            {
                return(null);
            }

            List <CalculoEventoContratacao> lista = new List <CalculoEventoContratacao>();
            PAT            pat = db.PAT.Find(cont.CargaHoraria, cont.Filial.SindicatoCod);
            ConvenioMed    conveMed = null;
            ConvenioOdo    convOdo = null;
            Encargos       encargos = db.Encargos.Find(cont.EmpresaCod);
            EscalaTrabalho diasUteis = db.EscalaTrabalho.Find(1), diasNaoUteis = db.EscalaTrabalho.Find(2);

            float salario = 0, salarioBase = cont.Salario, valorConvMed = 0, valorDep = 0, valorConvOdo = 0;
            float valorPasse = db.Cidade.Find(cont.CidadeNome).VTPasse, valorPat = pat.Valor, peric = 0;
            float adCondutor = (float)(salarioBase * 0.1), vtDescontado = 0, somaHEs = 0, somaHNs = 0, baseEncargos = 0;
            int   qtdaPasses = db.CargaHoraria.Find(cont.CargaHoraria).QtdaPassesDiario;

            if (cont.ConvenioPlanoCod != null)
            {
                conveMed     = db.ConvenioMed.Find(cont.ConvenioPlanoCod);
                valorConvMed = (float)conveMed.Valor;
                valorDep     = (float)conveMed.ValorDependentes;
            }

            if (cont.ConvenioOdoCod != null)
            {
                convOdo      = db.ConvenioOdo.Find(cont.ConvenioOdoCod);
                valorConvOdo = convOdo.Valor;
            }

            foreach (MesOrcamento mes in ciclo.MesesOrcamento)
            {
                int numAno = mes.Mes.Year, numMes = mes.Mes.Month;
                int qtda     = db.ContratacaoMes.Find(cont.Codigo, mes.Codigo).Qtda;
                int qtdaDias = db.QtdaDias.Find(numMes, cont.CodEscala).Qtda;

                QtdaDias qtDiasObj     = db.QtdaDias.Find(numMes, diasUteis.Codigo);
                int      qtdaDiasUteis = qtDiasObj == null ? 22 : qtDiasObj.Qtda;
                qtDiasObj = db.QtdaDias.Find(numMes, diasNaoUteis.Codigo);
                int qtdaDiasNaoUteis = qtDiasObj == null ? 8 : qtDiasObj.Qtda;

                //Horas Extras
                List <HEContratacao> hes = db.HEContratacao
                                           .Where(x => x.ContratacaoCod == cont.Codigo && x.CodMesOrcamento == mes.Codigo)
                                           .ToList();

                //Horas Noturnas
                List <AdNoturnoContratacao> hns = db.AdNoturnoContratacao
                                                  .Where(x => x.CodContratacao == cont.Codigo && x.CodMesOrcamento == mes.Codigo)
                                                  .ToList();


                //**************** REAJUSTES ****************
                Reajuste reajSalario = db.Reajuste.Find(numAno, numMes, cont.Filial.SindicatoCod);
                if (reajSalario != null)
                {
                    salarioBase *= (float)(reajSalario.PercentualReajuste + 1);
                    peric        = (float)(salarioBase * 0.3);
                    adCondutor   = (float)(salarioBase * 0.1);
                    salario      = salarioBase;
                }

                if (conveMed != null)
                {
                    ReajConvenioMed reajConvMed = db.ReajConvenioMed.Find(numAno, numMes, cont.ConvenioPlanoCod);
                    if (reajConvMed != null)
                    {
                        valorConvMed *= (float)(reajConvMed.PercentualReajuste + 1);
                    }
                }

                if (convOdo != null)
                {
                    ReajConvenioOdo reajConvenioOdo = db.ReajConvenioOdo.Find(numAno, cont.ConvenioOdoCod, numMes);
                    if (reajConvenioOdo != null)
                    {
                        valorConvOdo *= (reajConvenioOdo.PercentualReajuste + 1);
                    }
                }

                ReajPAT reajPAT = db.ReajPAT.Find(numAno, numMes, cont.Filial.SindicatoCod);
                if (reajPAT != null)
                {
                    valorPat *= (reajPAT.PercentualReajuste + 1);
                }

                ReajVTPasse reajPasse = db.ReajVTPasse.Find(numAno, cont.CidadeNome, numMes);
                if (reajPasse != null)
                {
                    valorPasse *= (float)(reajPasse.PercentualReajuste + 1);
                }


                //****************** Cálculos ******************
                if (qtda > 0)
                {
                    //********************** SALÁRIOS E ADICIONAIS **********************
                    lista.Add(new CalculoEventoContratacao
                    {
                        CodEvento       = "SALARIO",
                        CodContratacao  = cont.Codigo,
                        CodMesOrcamento = mes.Codigo,
                        Valor           = salario
                    });


                    if (cont.Periculosidade)
                    {
                        lista.Add(new CalculoEventoContratacao
                        {
                            CodEvento       = "PERICUL",
                            CodContratacao  = cont.Codigo,
                            CodMesOrcamento = mes.Codigo,
                            Valor           = peric
                        });
                    }

                    if (cont.AdCondutor)
                    {
                        lista.Add(new CalculoEventoContratacao
                        {
                            CodEvento       = "ADI-COND",
                            CodContratacao  = cont.Codigo,
                            CodMesOrcamento = mes.Codigo,
                            Valor           = adCondutor
                        });
                    }

                    somaHEs = 0;
                    hes.ForEach(x => {
                        somaHEs += salario / cont.CargaHoraria * x.QtdaHoras * x.PercentualHoras / 100;

                        lista.Add(new CalculoEventoContratacao
                        {
                            CodEvento       = "HE-" + x.PercentualHoras.ToString(),
                            CodContratacao  = cont.Codigo,
                            CodMesOrcamento = mes.Codigo,
                            Valor           = somaHEs
                        });
                    });

                    somaHNs = 0;
                    hns.ForEach(x => {
                        somaHNs = salario / x.PercentualHoras / 100 / cont.CargaHoraria * x.QtdaHoras;
                        lista.Add(new CalculoEventoContratacao
                        {
                            CodEvento       = "AD-N-" + x.PercentualHoras.ToString(),
                            CodContratacao  = cont.Codigo,
                            CodMesOrcamento = mes.Codigo,
                            Valor           = somaHNs
                        });
                    });


                    //************************** BENEFÍCIOS **************************
                    vtDescontado = (valorPasse * qtdaDias) - (float)(salarioBase * 0.6);
                    if (vtDescontado > 0)
                    {
                        lista.Add(new CalculoEventoContratacao
                        {
                            CodEvento       = "VT-PASSE",
                            CodContratacao  = cont.Codigo,
                            CodMesOrcamento = mes.Codigo,
                            Valor           = vtDescontado
                        });
                    }

                    lista.Add(new CalculoEventoContratacao
                    {
                        CodEvento       = "PAT",
                        CodContratacao  = cont.Codigo,
                        CodMesOrcamento = mes.Codigo,
                        Valor           = valorPat * pat.Percentual
                    });

                    lista.Add(new CalculoEventoContratacao
                    {
                        CodEvento       = "CONV-MED",
                        CodContratacao  = cont.Codigo,
                        CodMesOrcamento = mes.Codigo,
                        Valor           = valorConvMed
                    });

                    lista.Add(new CalculoEventoContratacao
                    {
                        CodEvento       = "CONV-ODO",
                        CodContratacao  = cont.Codigo,
                        CodMesOrcamento = mes.Codigo,
                        Valor           = valorConvOdo
                    });


                    //************************** ENCARGOS **************************
                    baseEncargos = salario + (cont.Periculosidade ? peric : 0) + (cont.AdCondutor ? adCondutor : 0) + somaHEs + somaHNs;

                    lista.Add(new CalculoEventoContratacao
                    {
                        CodEvento       = "INSS",
                        CodContratacao  = cont.Codigo,
                        CodMesOrcamento = mes.Codigo,
                        Valor           = baseEncargos * encargos.INSS
                    });

                    lista.Add(new CalculoEventoContratacao
                    {
                        CodEvento       = "INCRA",
                        CodContratacao  = cont.Codigo,
                        CodMesOrcamento = mes.Codigo,
                        Valor           = baseEncargos * encargos.INCRA
                    });

                    lista.Add(new CalculoEventoContratacao
                    {
                        CodEvento       = "SAL-EDU",
                        CodContratacao  = cont.Codigo,
                        CodMesOrcamento = mes.Codigo,
                        Valor           = baseEncargos * encargos.SalEducacao
                    });

                    lista.Add(new CalculoEventoContratacao
                    {
                        CodEvento       = "SEBRAE",
                        CodContratacao  = cont.Codigo,
                        CodMesOrcamento = mes.Codigo,
                        Valor           = baseEncargos * encargos.Sebrae
                    });

                    lista.Add(new CalculoEventoContratacao
                    {
                        CodEvento       = "SESI",
                        CodContratacao  = cont.Codigo,
                        CodMesOrcamento = mes.Codigo,
                        Valor           = baseEncargos * encargos.SESI
                    });
                }
            }

            return(lista);
        }
Ejemplo n.º 16
0
        public ContratacaoEventosDTO(Contratacao cont, Ciclo c)
        {
            EventoCicloContratacaoDTO eventoTotais = new EventoCicloContratacaoDTO
            {
                CodEvento  = "Totais",
                NomeEvento = "Totais",
                CodCiclo   = c.Codigo
            };

            foreach (MesOrcamento m in c.MesesOrcamento)
            {
                CalculoEventoContratacaoDTO calculoTotais = new CalculoEventoContratacaoDTO
                {
                    CodEvento       = "Totais",
                    CodContratacao  = cont.Codigo,
                    CodMesOrcamento = m.Codigo,
                    Valor           = 0
                };
                eventoTotais.ValoresMensais.Add(m.Codigo, calculoTotais);
            }


            CodContratacao = cont.Codigo;
            NomeCargo      = cont.Variaveis.Cargo.NomeCargo;
            CargaHoraria   = cont.CargaHoraria;
            CidadeNome     = cont.CidadeNome;
            Eventos        = new List <EventoCicloContratacaoDTO>();

            foreach (EventoFolha e in db.EventoFolha)
            {
                EventoCicloContratacaoDTO evento = new EventoCicloContratacaoDTO
                {
                    CodEvento  = e.Codigo,
                    NomeEvento = e.NomeEvento,
                    CodCiclo   = c.Codigo
                };

                foreach (MesOrcamento m in c.MesesOrcamento)
                {
                    CalculoEventoContratacaoDTO calculo = new CalculoEventoContratacaoDTO
                    {
                        CodEvento       = e.Codigo,
                        CodContratacao  = cont.Codigo,
                        CodMesOrcamento = m.Codigo,
                        Valor           = 0
                    };
                    evento.ValoresMensais.Add(m.Codigo, calculo);
                }

                db.CalculoEventoContratacao.Where(x => x.CodContratacao == CodContratacao && x.CodEvento == e.Codigo && x.MesOrcamento.CicloCod == c.Codigo)
                .ToList().ForEach(x =>
                {
                    evento.ValoresMensais[x.CodMesOrcamento].Valor        = x.Valor;
                    eventoTotais.ValoresMensais[x.CodMesOrcamento].Valor += x.Valor;
                });

                ((List <EventoCicloContratacaoDTO>)Eventos).Add(evento);
            }

            ((List <EventoCicloContratacaoDTO>)Eventos).Add(eventoTotais);
        }