public Contas CalculaJuros(Contas contas, int dias) { int auxDias = 0; try { //switch para pesquisar tabela de juros auxDias = dias switch { int n when(n > 0 && n <= 3) => 3, int n when(n < 3 && n <= 5) => 4, _ => 6, }; using var db = new DtaBaseContext(configuration); var calc = db.CalculoJuros.Where(x => x.DiasAtraso == auxDias).Select(s => new { diasAtraso = s.DiasAtraso, multa = s.Multa, juros = Convert.ToDouble(s.JurosDia) }).FirstOrDefault(); decimal valorMulta = Math.Round((contas.ValorOriginal / 100) * calc.multa, 2); contas.ValorCorrigido = (contas.ValorOriginal + valorMulta); for (int i = 0; i < dias; i++) { decimal valorJuros = Math.Round((contas.ValorCorrigido / 100) * (decimal)calc.juros, 2); contas.ValorCorrigido += valorJuros; } contas.QuantDiaAtraso = dias; } catch (SqlException ex) { throw new Exception("Ocorreu o erro: " + ex.Message); } catch (Exception ex) { throw new Exception("Ocorreu o erro: " + ex.Message); } return(contas); }
public bool Post(Contas contas) { bool sucesso = false; try { using (var db = new DtaBaseContext(configuration)) { db.Contas.Add(contas); db.SaveChanges(); } sucesso = true; } catch (SqlException ex) { throw new Exception("Ocorreu o erro: " + ex.Message); } catch (Exception ex) { throw new Exception("Ocorreu o erro: " + ex.Message); } return(sucesso); }
public List <object> Get(string filtro) { List <object> lstContas = new List <object>(); try { if (string.IsNullOrWhiteSpace(filtro)) { #region sem filtro using var db = new DtaBaseContext(configuration); IOrderedQueryable list = db.Contas.Select(s => new { id = s.Id, nome = s.Nome, valorOriginal = Math.Round(s.ValorOriginal, 2), valorCorrigido = Math.Round(s.ValorCorrigido, 2), dataVencimento = Convert.ToDateTime(s.DataVencimento).ToString("dd/MM/yyyy"), dataPagamento = Convert.ToDateTime(s.DataPagamento).ToString("dd/MM/yyyy"), quantDiaAtraso = s.QuantDiaAtraso }).OrderBy(o => o.nome); foreach (var item in list) { lstContas.Add(item); } #endregion } else { #region com filtro using var db = new DtaBaseContext(configuration); IOrderedQueryable list = db.Contas.Where(x => x.Nome.ToLower().Contains(filtro.ToLower()) || x.Id.ToString().Contains(filtro)) .Select(s => new { id = s.Id, nome = s.Nome, valorOriginal = Math.Round(s.ValorOriginal, 2), valorCorrigido = Math.Round(s.ValorCorrigido, 2), dataVencimento = Convert.ToDateTime(s.DataVencimento).ToString("dd/MM/yyyy"), dataPagamento = Convert.ToDateTime(s.DataPagamento).ToString("dd/MM/yyyy"), quantDiaAtraso = s.QuantDiaAtraso }).OrderBy(o => o.nome); foreach (var item in list) { lstContas.Add(item); } #endregion } } catch (SqlException ex) { throw new Exception("Ocorreu o erro: " + ex.Message); } catch (Exception ex) { throw new Exception("Ocorreu o erro: " + ex.Message); } return(lstContas); }