Beispiel #1
0
        public bool ConfirmarFinanciamento(CalculoFinanciamentoDTO calculoFinanciamentoDTO)
        {
            // Gravando o Financiamento
            Financiamento financiamento = new Financiamento();

            financiamento.IdTipoFinanciamento = calculoFinanciamentoDTO.TipoFinanciamento;
            financiamento.CodCliente          = calculoFinanciamentoDTO.CodCliente;
            financiamento.ValorTotal          = calculoFinanciamentoDTO.TotalFinanciamento;
            financiamento.QtdeParcela         = calculoFinanciamentoDTO.QtdeParcelas;
            financiamento.Contratacao         = calculoFinanciamentoDTO.DataContratacao;
            financiamento.Vencimento          = calculoFinanciamentoDTO.DataVencimento;

            int Idfinanciamento = financiamentoRepositorio.Incluir(financiamento);

            // Gravando as Parcelas
            List <Parcela> parcelas = (from p in calculoFinanciamentoDTO.Parcelas
                                       select new Parcela
            {
                Id = Idfinanciamento,
                Numero = p.Numero,
                Valor = p.Valor,
                Vencimento = p.Vencimento
            }).ToList();

            parcelaRepositorio.IncluirTodos(parcelas);

            return(true);
        }
        private void btnCalcular_Click(object sender, EventArgs e)
        {
            using (FinanciamentoClient financiamentoClient = new FinanciamentoClient())
            {
                lblStatus.Text = "";
                txtValidacoes.Clear();

                calculoFinanciamentoDTO = financiamentoClient.SolicitarFinanciamento((int)cbCliente.SelectedValue, (int)cbTipoFinanciamento.SelectedValue,
                                                                                     (double)vlrTotal.Value, (int)qtdParcelas.Value, (DateTime)dtaVencimento.Value);

                lblStatus.Text = calculoFinanciamentoDTO.Status;

                if (calculoFinanciamentoDTO.Validacoes.Count > 0)
                {
                    btnConfirmar.Enabled       = false;
                    gvParcelas.DataSource      = null;
                    lblTotalFinanciamento.Text = "Total Financiamento: ";
                    lblTotalJuros.Text         = "Total Juros: ";

                    foreach (ValidacaoDTO validacao in calculoFinanciamentoDTO.Validacoes)
                    {
                        txtValidacoes.AppendText(string.Format("{0} - {1} \r\n", validacao.Tipo, validacao.Inconsistencia));
                    }
                }
                else
                {
                    btnConfirmar.Enabled = true;

                    gvParcelas.DataSource = calculoFinanciamentoDTO.Parcelas;

                    lblTotalFinanciamento.Text = string.Format("Total Financiamento: {0}", calculoFinanciamentoDTO.TotalFinanciamento.ToString("c"));
                    lblTotalJuros.Text         = string.Format("Total Juros: {0}", calculoFinanciamentoDTO.TotalJuros.ToString("c"));
                }
            }
        }
Beispiel #3
0
        public CalculoFinanciamentoDTO SolicitarFinanciamento(int codCliente, int tipoFinanciamento, double valorSolicitado, int qdtParcela, DateTime dtaPrimeiroVencto)
        {
            CalculoFinanciamentoDTO calculoFinanciamentoDTO = new CalculoFinanciamentoDTO();
            TipoFinanciamentoDTO    tipoFinanciamentoDTO    = new TipoFinanciamentoDTO();

            tipoFinanciamentoDTO = tipoFinanciamentoRepositorio.ConsultarPorChave(tipoFinanciamento);

            calculoFinanciamentoDTO.Validacoes = Verificar(valorSolicitado, qdtParcela, dtaPrimeiroVencto, tipoFinanciamento);

            if (calculoFinanciamentoDTO.Validacoes.Count > 0)
            {
                calculoFinanciamentoDTO.Status = "Reprovado";
            }
            else
            {
                calculoFinanciamentoDTO.Status = "Aprovado";

                List <ParcelaDTO> parcelasDTO = new List <ParcelaDTO>();

                double   dVlrParcelaBruto = (valorSolicitado / qdtParcela);
                double   dVlrParcelaJuros = (dVlrParcelaBruto * (tipoFinanciamentoDTO.PercentualTaxa / 100));
                DateTime dtaVencimento    = dtaPrimeiroVencto;

                // Gerando as Parcelas
                for (int i = 0; i < qdtParcela; i++)
                {
                    ParcelaDTO parcelaDTO = new ParcelaDTO();

                    parcelaDTO.Id         = 0;
                    parcelaDTO.Numero     = (i + 1);
                    parcelaDTO.Valor      = (dVlrParcelaBruto + dVlrParcelaJuros);
                    parcelaDTO.Vencimento = (i == 0 ? dtaPrimeiroVencto : dtaVencimento);

                    parcelasDTO.Add(parcelaDTO);

                    dtaVencimento.AddMonths(1);
                }

                calculoFinanciamentoDTO.CodCliente         = codCliente;
                calculoFinanciamentoDTO.TipoFinanciamento  = tipoFinanciamento;
                calculoFinanciamentoDTO.QtdeParcelas       = qdtParcela;
                calculoFinanciamentoDTO.DataContratacao    = DateTime.Now;
                calculoFinanciamentoDTO.DataVencimento     = (parcelasDTO).Max(s => s.Vencimento);
                calculoFinanciamentoDTO.TotalFinanciamento = (parcelasDTO).Sum(s => s.Valor);
                calculoFinanciamentoDTO.TotalJuros         = (dVlrParcelaJuros + qdtParcela);
                calculoFinanciamentoDTO.Parcelas           = parcelasDTO;
            }

            return(calculoFinanciamentoDTO);
        }