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)); }
public Professor(Pessoa pessoa, Contratacao contratacao, DadosBancarios dadosBancarios, Endereco endereco) { Pessoa = pessoa; Contratacao = contratacao; DadosBancarios = dadosBancarios; Endereco = endereco; }
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)); }
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; } }
public IHttpActionResult GetContratacao(int id) { Contratacao contratacao = db.Contratacao.Find(id); if (contratacao == null) { return(NotFound()); } return(Ok(new ContratacaoDTO(contratacao))); }
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; }
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))); }
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))); }
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))); }
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); }
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); }
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); }