static void Main(string[] args) { try { Console.WriteLine("Informe o valor do crédito:"); decimal valor = Convert.ToDecimal(Console.ReadLine()); Console.WriteLine("Infome o tipo de crédito:"); TipoCredito tipoCredito = (TipoCredito)Convert.ToDecimal(Console.ReadLine()); Console.WriteLine("Infome o número de parcelas:"); int qtdeParcelas = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Infome a data do primeiro vencimento:"); DateTime dataPrimeiroVencimento = Convert.ToDateTime(Console.ReadLine()); var credito = new Credito(valor, tipoCredito, qtdeParcelas, dataPrimeiroVencimento); Console.WriteLine("Crédito aprovado"); Console.WriteLine($"Valor total: { credito.ValorTotal }"); Console.WriteLine($"Juros: { credito.ValorTotal - credito.Valor }"); Console.ReadKey(); } catch (Exception ex) { Console.WriteLine("Crédito reprovado"); Console.WriteLine($"Motivo: { ex.Message }"); Console.ReadKey(); } }
public CalculaCredito(double vlrEmprestimo, TipoCredito tpCredito, int qtParcelas, DateTime prVcto) { VlrEmprestimo = vlrEmprestimo; QtParcelas = qtParcelas; TpCredito = tpCredito; PrimVcto = prVcto; }
private static void ProcessarCalculoCredito(TipoCredito tipoCredito) { switch (tipoCredito) { case TipoCredito.Direto: ProcessarCalculoCreditoDireto(); break; case TipoCredito.Consignado: ProcessarCalculoCreditoConsignado(); break; case TipoCredito.PessoaJuridica: ProcessarCalculoCreditoPessoaJuridica(); break; case TipoCredito.PessoaFisica: ProcessarCalculoCreditoPessoaFisica(); break; case TipoCredito.Imobiliario: ProcessarCalculoCreditoImobiliario(); break; default: Console.Clear(); ExibirMensagemExcecaoOpcaoMenu(); break; } }
public static Credito CreateInstance(short tipoCredito) { TipoCredito credito = (TipoCredito)Enum.Parse(typeof(TipoCredito), tipoCredito.ToString()); switch (credito) { case TipoCredito.Direto: return(new CreditoDireto()); case TipoCredito.Consignado: return(new CreditoConsignado()); case TipoCredito.Juridica: return(new CreditoPessoaJuridica()); case TipoCredito.Fisica: return(new CreditoPessoaFisica()); case TipoCredito.Imobiliario: return(new CreditoImobiliario()); default: return(new Credito()); } }
public static Credito New(decimal valor, TipoCredito tipo, AvaliacaoCredito avaliacao) { var credito = new Credito(valor); credito.Tipo = tipo; credito.Avaliacao = avaliacao; return credito; }
public void NovaTransacaoSaida(decimal?valor, TipoCredito credito, int?ClienteId) { this.data = DateTime.Now; this.valor = valor.GetValueOrDefault(); this.tipoCredito = credito; this.clienteId = ClienteId; this.tipoTransacao = TipoTransacao.SAIDA; }
public void InsertarTipoCredito(TipoCredito tipoCredito) { using (var dbc = new SPC_BD()) { dbc.TipoCredito.Add(tipoCredito); dbc.SaveChanges(); } }
public void ActualizarTipoCredito(TipoCredito tipoCredito) { using (var dbc = new SPC_BD()) { dbc.Entry(tipoCredito).State = EntityState.Modified; dbc.SaveChanges(); } }
public void GeraTransacaoSaida(decimal?valor, TipoCredito credito, int?clienteId) { Transacao transacao = new Transacao(); transacao.NovaTransacaoSaida(valor, credito, clienteId); transacao.ConfigurarParaSalvar(); db.Transacao.Add(transacao); db.SaveChanges(); }
public Credito(decimal _valor, TipoCredito _tipoCredito, int _qtdeParcelas, DateTime _dataPrimeiroVencimento) { valor = _valor; tipoCredito = _tipoCredito; qtdeParcelas = _qtdeParcelas; dataPrimeiroVencimento = _dataPrimeiroVencimento; Validar(); CalcularTotal(); }
static void Main(string[] args) { Console.Write("Valor Emprestimo ...............: "); double vlrEmprestimo = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write("Quantas Parcelas ...............: "); int qtParcelas = int.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.WriteLine(); Console.WriteLine("Tipo Credito ...................:"); foreach (int i in Enum.GetValues(typeof(TipoCredito))) { Console.Write($"{Enum.GetName(typeof(TipoCredito), i)}"); Console.WriteLine($" {i}"); } Console.WriteLine(); Console.Write("Informe o Tipo Credito .........: "); TipoCredito tipoCredito = (TipoCredito)Enum.Parse(typeof(TipoCredito), Console.ReadLine()); Console.WriteLine(); Console.Write("Primeiro Vencimento (DD/MM/YYYY): "); DateTime primVcto = DateTime.Parse(Console.ReadLine()); CalculaCredito cCredito = new CalculaCredito(); try { double valor = cCredito.Calcular(vlrEmprestimo, tipoCredito, qtParcelas, primVcto); } catch (DomainException e) { Console.WriteLine(); Console.WriteLine("Mensagem .......................: " + e.Message); } Console.WriteLine(cCredito); Console.ReadKey(); }
public ActionResult Editar([Bind(Include = "Id,Descricao,Ativo")] TipoCredito tipo) { try { tipo.AlteradoPor = Identification.IdUsuario; tipo.AlteradoEm = DateTime.Now; TryUpdateModel(tipo); if (ModelState.IsValid) { _service.Gravar(tipo); return(RedirectToAction("Index")); } return(View(tipo)); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); return(View(tipo)); } }
public double Calcular(double vlrEmprestimo, TipoCredito tpCredito, int qtParcelas, DateTime prVcto) { Validacoes(qtParcelas, prVcto); switch (tpCredito) { case TipoCredito.CD: taxa = 2; anoMes = "M"; VlrTotalComJuros = Calcula(taxa, vlrEmprestimo, qtParcelas, tpCredito, anoMes); break; case TipoCredito.CC: anoMes = "M"; taxa = 1; VlrTotalComJuros = Calcula(taxa, vlrEmprestimo, qtParcelas, tpCredito, anoMes); break; case TipoCredito.PJ: anoMes = "M"; taxa = 5; VlrTotalComJuros = Calcula(taxa, vlrEmprestimo, qtParcelas, tpCredito, anoMes); break; case TipoCredito.PF: anoMes = "M"; taxa = 3; VlrTotalComJuros = Calcula(taxa, vlrEmprestimo, qtParcelas, tpCredito, anoMes); break; default: anoMes = "A"; taxa = 9; VlrTotalComJuros = Calcula(taxa, vlrEmprestimo, qtParcelas, tpCredito, anoMes); break; } return(VlrTotalComJuros); }
private double Calcula(double taxa, double vlrEmprestimo, int qtParcelas, TipoCredito tpCredito, string anoMes) { StatusAprovacao = "Aprovado."; double taxaR = (taxa / 100); double taxaC = taxaR; double dividendo = 1; double divisor = 12; double potencia = (dividendo / divisor); if (anoMes.Equals("A")) { taxaC = Math.Pow(1 + taxaR, potencia) - 1; } VlrTotalComJuros = vlrEmprestimo * Math.Pow(1 + taxaC, qtParcelas); VlrJuros = VlrTotalComJuros - vlrEmprestimo; if (VlrTotalComJuros > MaxEmprestimo) { StatusAprovacao = "Emprestimo reprovado."; } if (tpCredito == TipoCredito.PJ && VlrTotalComJuros < 15000) { StatusAprovacao = "Emprestimo reprovado."; throw new DomainException("Valor minimo a ser liberado nao alcancado"); } if (VlrTotalComJuros > MaxEmprestimo) { StatusAprovacao = "Emprestimo reprovado."; throw new DomainException("Credito excedeu o limite"); } return(VlrTotalComJuros); }
public List <GerenciaTreeCredito> AgregarTipos(List <GerenciaTreeCredito> list, List <GerenciaCredito> data) { var tipos = new List <TipoCredito>(); foreach (var grupo in list) { var otipos = data.GroupBy(g => g.xxx).Select(s => s.First()).ToList(); foreach (var tipo in otipos) { var oTipoCredito = new TipoCredito(); oTipoCredito.Agrupador = grupo.Agrupador; oTipoCredito.Tipo = tipo.xxx; var comprobantes = data.FindAll(p => p.xxx == tipo.xxx).GroupBy(g => g.Comprobante).Select(s => s.First()).ToList(); if (oTipoCredito.Tipo == "FACTURADO") { var total = comprobantes.Sum(s => s.d_NetoXCobrarFactura); if (total != null) { oTipoCredito.Total = Math.Round(total.Value, 2, MidpointRounding.AwayFromZero); } } else { var total = decimal.Parse(data.FindAll(p => p.xxx == tipo.xxx).Sum(s => s.CostoExamen).ToString()); oTipoCredito.Total = Math.Round(total, 2, MidpointRounding.AwayFromZero); } tipos.Add(oTipoCredito); } grupo.Tipos = tipos; } return(list); }
public double pegarTaxa(TipoCredito tipoCredito) { switch (tipoCredito) { case TipoCredito.CreditoDireto: return(0.02); case TipoCredito.CreditoConsignado: return(0.01); case TipoCredito.CreditoPessoaJuridica: return(0.05); case TipoCredito.CreditoPessoaFisica: return(0.03); case TipoCredito.CreditoImobiliario: return(0.0075); default: return(0.0); } }
private static ICredito ObterInterface(TipoCredito tipoCredito, decimal valorCredito, int quantidadeParcelas, DateTime dataPrimeiroVencimento) { switch (tipoCredito) { case TipoCredito.Direto: return(new CreditoDireto(valorCredito, quantidadeParcelas, dataPrimeiroVencimento)); case TipoCredito.Consignado: return(new CreditoConsignado(valorCredito, quantidadeParcelas, dataPrimeiroVencimento)); case TipoCredito.PessoaJuridica: return(new CreditoPessoaJuridica(valorCredito, quantidadeParcelas, dataPrimeiroVencimento)); case TipoCredito.PessoaFisica: return(new CreditoPessoaFisica(valorCredito, quantidadeParcelas, dataPrimeiroVencimento)); case TipoCredito.Imobiliario: return(new CreditoImobiliario(valorCredito, quantidadeParcelas, dataPrimeiroVencimento)); default: throw new Exception(Mensagens.Erro_ParametroNaoMapeado); } }
static void Main(string[] args) { while (true) { ExibirMenuPrincipal(); #region Verificar Opção Parametro Entrada Tipo de Credito var opcao = Console.ReadKey().KeyChar; Console.Clear(); TipoCredito tipoCredito = 0; try { tipoCredito = (TipoCredito)Enum.Parse(typeof(TipoCredito), opcao.ToString(), true); if ((int)tipoCredito > 5) { Console.Clear(); ExibirMensagemExcecaoOpcaoMenu(); continue; } } catch (Exception ex) { Console.Clear(); ExibirMensagemExcecaoOpcaoMenu(); continue; } #endregion #region Verificar Parametro de Entrada Valor Crédito Console.Clear(); Console.WriteLine("Digite o valor de crédito desejado no formato '0,00' com duas casas decimais para os centavos, exemplo: 14000,56(quatorze mil e 56 centavos)"); try { var valorCreditoRL = Console.ReadLine(); valorCredito = Convert.ToDecimal(valorCreditoRL); } catch (Exception ex) { Console.Clear(); Console.WriteLine(ex.Message); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); Console.Clear(); continue; } #endregion #region Verificar Parametro de Entrada Parcelas Console.Clear(); Console.WriteLine("Digite a quantidade de parcelas desejadas"); try { quantidadeParcelas = Convert.ToInt32(Console.ReadLine()); } catch (Exception ex) { Console.Clear(); Console.WriteLine(ex.Message); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); Console.Clear(); continue; } #endregion #region Verificar Parametro de Entrada Data Primeiro Vencimento Console.Clear(); Console.WriteLine("Digite a data de vencimento da primeira parcela no formato 'dd/mm/yyyy'"); try { dataPrimeiroVencimento = Convert.ToDateTime(Console.ReadLine(), new CultureInfo("pt-BR")); } catch (Exception ex) { Console.Clear(); Console.WriteLine(ex.Message); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); Console.Clear(); continue; } #endregion ProcessarCalculoCredito(tipoCredito); } }
public static ResultadoCreditoDto Executar(TipoCredito tipoCredito, decimal valorCredito, int quantidadeParcelas, DateTime dataPrimeiroVencimento) { var interfaceCredito = ObterInterface(tipoCredito, valorCredito, quantidadeParcelas, dataPrimeiroVencimento); return(interfaceCredito.ExecutarCalculo()); }