public IActionResult AtualizaSaldo(long?colaborador, long?id) { var saldo = 0d; double?beneficiosValor; if (colaborador.HasValue) { var pessoa = Pessoa_Repository.GetPessoa(colaborador.Value); if (id.HasValue) { beneficiosValor = Repository.ListarBeneficiosPorPessoa(colaborador.Value)?. Where(x => x.Id != id)?.Sum(x => x.ValorTotal); } else { beneficiosValor = Repository.ListarBeneficiosPorPessoa(colaborador.Value)?.Sum(x => x.ValorTotal); } if (pessoa != null) { saldo = pessoa.Cargo.ValorBeneficio - beneficiosValor.Value; } } return(new JsonResult(saldo)); }
private string Validate(BeneficioColaboradorDTO beneficio) { var pessoa = Pessoa_Repository.GetPessoa(beneficio.Colaborador.Id); var beneficios = Repository.ListarBeneficiosPorPessoa(beneficio.Colaborador.Id)? .Where(x => x.Id != beneficio.Id)?.Sum(x => x.ValorTotal); if ((pessoa.Cargo.ValorBeneficio - beneficios.Value - beneficio.ValorTotal) < 0) { return("Valor de benefício utilizado é maior do que o disponível!"); } return(string.Empty); }
public IActionResult Edit(BeneficioColaboradorDTO beneficioColaborador) { if (ModelState.IsValid) { var retorno = Validate(beneficioColaborador); if (!string.IsNullOrEmpty(retorno)) { return(BadRequest(retorno)); } var entity = Repository.GetBeneficioColaborador(beneficioColaborador.Id); Repository.Update(beneficioColaborador); #region Log if (entity.Colaborador?.Id != beneficioColaborador.Colaborador?.Id) { var pessoa = Pessoa_Repository.GetPessoa(beneficioColaborador.Colaborador.Id); Log_Repository.Add(new LogDTO(entity, "Alterado", "Colaborador", entity.Colaborador.Nome, pessoa.Nome)); } if (entity.Beneficio?.Id != beneficioColaborador.Beneficio?.Id) { var beneficio = Beneficio_Repository.GetBeneficio(beneficioColaborador.Beneficio.Id); Log_Repository.Add(new LogDTO(entity, "Alterado", "Benefício", entity.Beneficio.Nome, beneficio.Nome)); } if (entity.Quantidade != beneficioColaborador.Quantidade) { Log_Repository.Add(new LogDTO(entity, "Alterado", "Quantidade", entity.Quantidade.ToString(), beneficioColaborador.Quantidade.ToString())); } if (entity.ValorTotal != beneficioColaborador.ValorTotal) { Log_Repository.Add(new LogDTO(entity, "Alterado", "ValorTotal", entity.ValorTotal.ToString(), beneficioColaborador.ValorTotal.ToString())); } #endregion return(RedirectToAction("Index")); } return(View(beneficioColaborador)); }