public void Incluir(Emprestimo emprestimo, List <DayOfWeek> diasUteis)
        {
            this.emprestimoRepositorio.Incluir(emprestimo);
            this.Confirmar();
            IParcelaProcesso        parcelaProcesso        = ParcelaProcesso.Instance;
            IPrazoPagamentoProcesso prazoPagamentoProcesso = PrazoPagamentoProcesso.Instance;

            PrazoPagamento prazo = new PrazoPagamento();

            prazo.ID = emprestimo.prazospagamento_id;

            prazo = prazoPagamentoProcesso.Consultar(prazo, TipoPesquisa.E)[0];
            LancamentoProcesso processoLancamento = LancamentoProcesso.Instance;

            Lancamento lancamento = new Lancamento();

            lancamento.valor             = emprestimo.valor;
            lancamento.lancamentotipo_id = 3;
            lancamento.data        = emprestimo.data_emprestimo;
            lancamento.fonte       = "Emprestimo";
            lancamento.timeCreated = DateTime.Now;
            lancamento.usuario_id  = ClasseAuxiliar.UsuarioLogado.ID;
            processoLancamento.Incluir(lancamento);
            processoLancamento.Confirmar();


            Parcela parcela;
            float   valorJuros = emprestimo.valor + (emprestimo.valor * emprestimo.juros / 100);
            float   valor      = valorJuros / emprestimo.qtde_parcelas;

            //if (valor % 2 == 1)
            //{

            //}

            DateTime dataAtual      = DateTime.Now;
            DateTime dataVencimento = DateTime.Now;

            for (int i = 1; i <= emprestimo.qtde_parcelas; i++)
            {
                parcela = new Parcela();
                parcela.emprestimo_id  = emprestimo.ID;
                parcela.data_pagamento = null;
                parcela.sequencial     = i;
                dataVencimento         = dataVencimento.AddDays(prazo.qtde_dias);

                //if (dataVencimento.DayOfWeek == System.DayOfWeek.Monday)
                //    dataVencimento = dataVencimento.AddDays(1);
                dataVencimento = VerificarProximaData(dataVencimento, diasUteis);

                parcela.data_vencimento  = dataVencimento;
                parcela.valor            = valor;
                parcela.statusparcela_id = 2;
                parcelaProcesso.Incluir(parcela);
                parcelaProcesso.Confirmar();
            }
        }
        public void Alterar(Parcela parcela)
        {
            parcela.data_pagamento   = DateTime.Now;
            parcela.statusparcela_id = 1;
            LancamentoProcesso processoLancamento = LancamentoProcesso.Instance;



            if (parcela.valor_pago.Value > parcela.valor)
            {
                float valorRestante = parcela.valor_pago.Value - parcela.valor;
                parcela.valor_pago = parcela.valor;
                this.parcelaRepositorio.Alterar(parcela);
                Lancamento lancamento = new Lancamento();
                lancamento.valor             = parcela.valor_pago.Value;
                lancamento.lancamentotipo_id = 1;
                lancamento.data        = parcela.data_pagamento.Value;
                lancamento.fonte       = "parcela";
                lancamento.timeCreated = DateTime.Now;
                lancamento.usuario_id  = ClasseAuxiliar.UsuarioLogado.ID;
                processoLancamento.Incluir(lancamento);
                processoLancamento.Confirmar();
                this.PagarProximaParcela(parcela, valorRestante);
            }
            else if (parcela.valor_pago.Value < parcela.valor)
            {
                this.parcelaRepositorio.Alterar(parcela);
                Lancamento lancamento = new Lancamento();
                lancamento.valor             = parcela.valor_pago.Value;
                lancamento.lancamentotipo_id = 1;
                lancamento.data        = parcela.data_pagamento.Value;
                lancamento.fonte       = "parcela";
                lancamento.timeCreated = DateTime.Now;
                lancamento.usuario_id  = ClasseAuxiliar.UsuarioLogado.ID;
                processoLancamento.Incluir(lancamento);
                processoLancamento.Confirmar();
                this.AdicionarParcelaExtra(parcela);
            }
            else
            {
                this.parcelaRepositorio.Alterar(parcela);
                Lancamento lancamento = new Lancamento();
                lancamento.valor             = parcela.valor_pago.Value;
                lancamento.lancamentotipo_id = 1;
                lancamento.data        = parcela.data_pagamento.Value;
                lancamento.fonte       = "parcela";
                lancamento.timeCreated = DateTime.Now;
                lancamento.usuario_id  = ClasseAuxiliar.UsuarioLogado.ID;
                processoLancamento.Incluir(lancamento);
                processoLancamento.Confirmar();
            }
        }
        public void CancelarParcela(Parcela parcela)
        {
            LancamentoProcesso processoLancamento = LancamentoProcesso.Instance;
            Lancamento         lancamento         = new Lancamento();

            lancamento.valor             = parcela.valor_pago.Value;
            lancamento.lancamentotipo_id = 9;
            lancamento.data        = ClasseAuxiliar.DataSelecionada;
            lancamento.fonte       = "parcela";
            lancamento.timeCreated = DateTime.Now;
            lancamento.usuario_id  = ClasseAuxiliar.UsuarioLogado.ID;

            parcela.data_pagamento   = null;
            parcela.valor_pago       = null;
            parcela.statusparcela_id = 2;

            processoLancamento.Incluir(lancamento);
            processoLancamento.Confirmar();
        }