public ActionResult ParcelaEmprestimo(int?page, int ID)
        {
            if (ClasseAuxiliar.UsuarioLogado == null || (ClasseAuxiliar.DataSelecionada == default(DateTime) || ClasseAuxiliar.AreaSelecionada == null))
            {
                return(RedirectToAction("Index", "Home"));
            }
            IEmprestimoProcesso processoEmprestimo = EmprestimoProcesso.Instance;
            Emprestimo          emprestimo         = new Emprestimo();

            emprestimo.ID = ID;
            emprestimo    = processoEmprestimo.Consultar(emprestimo, SiteMVCTelerik.ModuloBasico.Enums.TipoPesquisa.E)[0];

            Session["EmprestimoSelecionado"] = emprestimo;
            IParcelaProcesso processo = ParcelaProcesso.Instance;
            Parcela          parcela  = new Parcela();

            parcela.emprestimo_id = ID;
            var resultado = processo.Consultar(parcela, TipoPesquisa.E);



            List <Parcela> parcelas         = resultado;
            int            currentPageIndex = page.HasValue ? page.Value - 1 : 0;

            return(View(resultado.ToPagedList(currentPageIndex, defaultPageSize)));
        }
        public ActionResult ImprimirParcelas(int ID)
        {
            if (ClasseAuxiliar.UsuarioLogado == null || (ClasseAuxiliar.DataSelecionada == default(DateTime) || ClasseAuxiliar.AreaSelecionada == null))
            {
                return(RedirectToAction("Index", "Home"));
            }
            IEmprestimoProcesso processoEmprestimo = EmprestimoProcesso.Instance;
            Emprestimo          emprestimo         = new Emprestimo();

            emprestimo.ID = ID;
            emprestimo    = processoEmprestimo.Consultar(emprestimo, SiteMVCTelerik.ModuloBasico.Enums.TipoPesquisa.E)[0];

            Session["EmprestimoSelecionado"] = emprestimo;
            IParcelaProcesso processo = ParcelaProcesso.Instance;
            Parcela          parcela  = new Parcela();

            parcela.emprestimo_id = ID;
            var resultado = processo.Consultar(parcela, TipoPesquisa.E);

            ViewData["quantidadePaginas"] = Math.Ceiling((decimal)resultado.Count / 5);

            List <Parcela> p2 = new List <Parcela>();

            for (int i = 0; i < resultado.Count; i++)
            {
                if (!resultado[i].data_pagamento.HasValue)
                {
                    p2.Add(resultado[i]);
                }
            }
            ViewData["total"] = resultado.Count;
            List <Parcela> parcelas = p2;

            return(View(p2));
        }
        //
        // GET: /StatusParcela/Details/5

        public ActionResult Detalhar(int id)
        {
            IEmprestimoProcesso processo   = EmprestimoProcesso.Instance;
            Emprestimo          emprestimo = new Emprestimo();

            emprestimo.id  = id;
            ViewData.Model = processo.Consultar(emprestimo, TipoPesquisa.E)[0];
            return(View());
        }
        //
        // GET: /StatusParcela/Edit/5

        public ActionResult Alterar(int id)
        {
            if (ClasseAuxiliar.UsuarioLogado == null || (ClasseAuxiliar.DataSelecionada == default(DateTime) || ClasseAuxiliar.AreaSelecionada == null))
            {
                return(RedirectToAction("Index", "Home"));
            }
            IEmprestimoProcesso processo   = EmprestimoProcesso.Instance;
            Emprestimo          emprestimo = new Emprestimo();

            emprestimo.id  = id;
            ViewData.Model = processo.Consultar(emprestimo, SiteMVCTelerik.ModuloBasico.Enums.TipoPesquisa.E)[0];
            return(View());
        }
        public ActionResult Listar(int?page)
        {
            if (ClasseAuxiliar.UsuarioLogado == null || (ClasseAuxiliar.DataSelecionada == default(DateTime) || ClasseAuxiliar.AreaSelecionada == null))
            {
                return(RedirectToAction("Index", "Home"));
            }
            IEmprestimoProcesso processo = EmprestimoProcesso.Instance;
            var resultado = processo.Consultar();
            List <Emprestimo> emprestimos = resultado;
            int currentPageIndex          = page.HasValue ? page.Value - 1 : 0;

            return(View(resultado.ToPagedList(currentPageIndex, defaultPageSize)));
        }
        public ActionResult VisualizarEmprestimosPorPeriodo()
        {
            if (ClasseAuxiliar.UsuarioLogado == null || (ClasseAuxiliar.DataSelecionada == default(DateTime) || ClasseAuxiliar.AreaSelecionada == null))
            {
                return(RedirectToAction("Index", "Home"));
            }
            IEmprestimoProcesso processo           = EmprestimoProcesso.Instance;
            List <Emprestimo>   emprestimos        = processo.Consultar();
            EmprestimoPesquisa  emprestimoPesquisa = new EmprestimoPesquisa();

            emprestimoPesquisa.DataInicio = DateTime.Now;
            emprestimoPesquisa.DataFim    = DateTime.Now;
            ViewData["emprestimos"]       = emprestimos;
            return(View(emprestimoPesquisa));
        }
        //
        // GET: /StatusParcela/Delete/5

        public ActionResult Excluir(int id)
        {
            if (ClasseAuxiliar.UsuarioLogado == null || (ClasseAuxiliar.DataSelecionada == default(DateTime) || ClasseAuxiliar.AreaSelecionada == null))
            {
                return(RedirectToAction("Index", "Home"));
            }
            IEmprestimoProcesso processo   = EmprestimoProcesso.Instance;
            Emprestimo          emprestimo = new Emprestimo();

            emprestimo.ID  = id;
            ViewData.Model = processo.Consultar(emprestimo, SiteMVCTelerik.ModuloBasico.Enums.TipoPesquisa.E)[0];
            processo.Excluir(emprestimo);
            processo.Confirmar();
            return(RedirectToAction("EmprestimoCliente", "Emprestimo", new { id = ClasseAuxiliar.ClienteSelecionado.ID }));
        }
        private void AdicionarParcelaExtra(Parcela parcela)
        {
            Parcela p = new Parcela();

            p.emprestimo_id = parcela.emprestimo_id;
            List <Parcela>      resultado = this.Consultar(p, TipoPesquisa.E);
            IEmprestimoProcesso processo  = EmprestimoProcesso.Instance;

            Emprestimo emp = new Emprestimo();

            emp.ID = p.emprestimo_id;

            emp = processo.Consultar(emp, TipoPesquisa.E)[0];

            IPrazoPagamentoProcesso prazoPagamentoProcesso = PrazoPagamentoProcesso.Instance;

            PrazoPagamento prazo = new PrazoPagamento();

            prazo.ID = emp.prazospagamento_id;

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

            p = resultado[resultado.Count - 1];

            if (p != null)
            {
                Parcela par = new Parcela();
                par.emprestimo_id    = emp.ID;
                par.valor            = parcela.valor - parcela.valor_pago.Value;
                par.data_vencimento  = p.data_vencimento.AddDays(prazo.qtde_dias);
                par.statusparcela_id = 2;
                par.sequencial       = parcela.sequencial;
                par.data_vencimento  = parcela.data_vencimento;
                //if (par.data_vencimento.DayOfWeek == DayOfWeek.Saturday)
                //    par.data_vencimento = par.data_vencimento.AddDays(2);
                //else if (par.data_vencimento.DayOfWeek == DayOfWeek.Monday)
                //    par.data_vencimento = par.data_vencimento.AddDays(1);



                par.timeCreated = DateTime.Now;
                this.parcelaRepositorio.Incluir(par);
            }
        }
        public ActionResult VisualizarTotalMovimentacao()
        {
            if (ClasseAuxiliar.UsuarioLogado == null || (ClasseAuxiliar.DataSelecionada == default(DateTime) || ClasseAuxiliar.AreaSelecionada == null))
            {
                return(RedirectToAction("Index", "Home"));
            }
            IEmprestimoProcesso processoEmprestimo = EmprestimoProcesso.Instance;
            List <Emprestimo>   emprestimos        = processoEmprestimo.Consultar();

            IParcelaProcesso processoParcela = ParcelaProcesso.Instance;
            List <Parcela>   parcelas        = processoParcela.Consultar();

            float totalEmprestimo       = 0;
            float totalEmprestimoJuros  = 0;
            float totalParcelasPagas    = 0;
            float totalParcelasEmAberto = 0;

            foreach (var item in emprestimos)
            {
                totalEmprestimo      += item.valor;
                totalEmprestimoJuros += item.valor + (item.valor * item.juros / 100);
            }

            foreach (var item in parcelas)
            {
                if (item.statusparcela_id == 2)
                {
                    totalParcelasEmAberto += item.valor;
                }
                else
                {
                    totalParcelasPagas += item.valor_pago.Value;
                }
            }

            ViewData["totalEmprestimo"]       = totalEmprestimo;
            ViewData["totalEmprestimoJuros"]  = totalEmprestimoJuros;
            ViewData["totalParcelasPagas"]    = totalParcelasPagas;
            ViewData["totalParcelasEmAberto"] = totalParcelasEmAberto;


            return(View());
        }
        public ActionResult EmprestimoCliente(int?page, int ID)
        {
            IClienteProcesso processoCliente = ClienteProcesso.Instance;
            Cliente          cliente         = new Cliente();

            cliente.id = ID;
            cliente    = processoCliente.Consultar(cliente, SiteMVCTelerik.ModuloBasico.Enums.TipoPesquisa.E)[0];

            Session["ClienteSelecionado"] = cliente;
            IEmprestimoProcesso processo   = EmprestimoProcesso.Instance;
            Emprestimo          emprestimo = new Emprestimo();

            emprestimo.cliente_id = ID;
            var resultado = processo.Consultar(emprestimo, TipoPesquisa.E);



            List <Emprestimo> emprestimos = resultado;
            int currentPageIndex          = page.HasValue ? page.Value - 1 : 0;

            return(View(resultado.ToPagedList(currentPageIndex, defaultPageSize)));
        }
        public ActionResult IncluirPrestacaoConta(FormCollection form)
        {
            IPrestacaoContaProcesso processo       = PrestacaoContaProcesso.Instance;
            PrestacaoConta          prestacaoConta = new PrestacaoConta();

            #region Despesas
            IDespesaProcesso despesaProcesso = DespesaProcesso.Instance;
            Despesa          despesa         = new Despesa();
            despesa.area_id = ClasseAuxiliar.AreaSelecionada.id;
            despesa.data    = ClasseAuxiliar.DataSelecionada;

            List <Despesa> despesas = despesaProcesso.Consultar(despesa, TipoPesquisa.E);
            ViewData["despesas"] = despesas;
            #endregion

            #region Emprestimo
            IEmprestimoProcesso emprestimoProcesso = EmprestimoProcesso.Instance;
            Emprestimo          emp = new Emprestimo();
            emp.area_id         = ClasseAuxiliar.AreaSelecionada.id;
            emp.data_emprestimo = ClasseAuxiliar.DataSelecionada;

            ViewData["emprestimos"] = emprestimoProcesso.Consultar(emp, TipoPesquisa.E);
            #endregion

            #region Peguei com a empresa
            ILancamentoProcesso lancamentoProcesso = LancamentoProcesso.Instance;
            Lancamento          lanc = new Lancamento();
            lanc.area_id           = ClasseAuxiliar.AreaSelecionada.id;
            lanc.data              = ClasseAuxiliar.DataSelecionada;
            lanc.lancamentotipo_id = 5;
            List <Lancamento> lancamentos = lancamentoProcesso.Consultar(lanc, TipoPesquisa.E);
            ViewData["lancamentos"] = lancamentos;
            #endregion

            IParcelaProcesso parcelaProcesso = ParcelaProcesso.Instance;
            List <Parcela>   parcelas        = parcelaProcesso.ConsultarParcelasPagasPorPeriodo(ClasseAuxiliar.DataSelecionada, default(DateTime));

            float totalParcelas    = 0;
            float totalLancamentos = 0;
            float totalEmprestimos = 0;
            float totalDespesas    = 0;
            foreach (var item in lancamentos)
            {
                totalLancamentos += item.valor;
            }
            foreach (var item in parcelas)
            {
                totalParcelas += item.valor_pago.Value;
            }

            List <Emprestimo> emprestimos = emprestimoProcesso.ConsultarEmprestimosPorPeriodo(ClasseAuxiliar.DataSelecionada, ClasseAuxiliar.DataSelecionada);

            foreach (var item in emprestimos)
            {
                totalEmprestimos += item.valor;
            }

            foreach (var item in despesas)
            {
                totalDespesas += item.valor;
            }

            ViewData["totalParcelas"]    = totalParcelas;
            ViewData["totalEmprestimos"] = totalEmprestimos;
            ViewData["totalLancamentos"] = totalLancamentos;
            ViewData["totalDespesas"]    = totalDespesas;
            // ViewData.Model = prestacaoConta;

            try
            {
                prestacaoConta.dataprestacao = ClasseAuxiliar.DataSelecionada;
                prestacaoConta.area_id       = ClasseAuxiliar.AreaSelecionada.id;
                //prestacaoConta.timeCreated = DateTime.Now;
                //prestacaoConta.timeUpdated= DateTime.Now;
                prestacaoConta.totaldespesas = totalDespesas;
                prestacaoConta.usuario_id    = ClasseAuxiliar.UsuarioLogado.id;
                prestacaoConta.valorsaida    = totalEmprestimos;
                prestacaoConta.valorrecebido = totalLancamentos + totalParcelas;
                processo.Incluir(prestacaoConta);
                processo.Confirmar();
                //  return RedirectToAction("Index");
            }
            catch
            {
                // ViewData["Mensagem"] = "O registro não pode ser excluído pois já está sendo utilizado.";
                // ViewData.Model = processo.Consultar(prestacaoConta, SiteMVCTelerik.ModuloBasico.Enums.TipoPesquisa.E)[0]; ;
                // return View();
            }

            return(View());
        }
        public ActionResult VisualizarPrestacaoConta(int id)
        {
            if (ClasseAuxiliar.UsuarioLogado == null || (ClasseAuxiliar.DataSelecionada == default(DateTime) || ClasseAuxiliar.AreaSelecionada == null))
            {
                return(RedirectToAction("Index", "Home"));
            }

            IPrestacaoContaProcesso processo  = PrestacaoContaProcesso.Instance;
            PrestacaoConta          prestacao = new PrestacaoConta();

            prestacao.id = id;
            List <PrestacaoConta> prestacaoContaList = processo.Consultar(prestacao, TipoPesquisa.E);

            ViewData["lancamentos"]     = 0;
            ViewData["despesas"]        = 0;
            ViewData["emprestimos"]     = 0;
            ViewData["dataSelecionada"] = DateTime.Now;
            if (prestacaoContaList.Count > 0)
            {
                ViewData["dataSelecionada"] = prestacaoContaList[0].dataprestacao;
                #region Despesas
                IDespesaProcesso despesaProcesso = DespesaProcesso.Instance;
                Despesa          despesa         = new Despesa();
                //despesa.area_id = ClasseAuxiliar.AreaSelecionada.id;
                despesa.data = prestacaoContaList[0].dataprestacao;

                List <Despesa> despesas = despesaProcesso.Consultar(despesa, TipoPesquisa.E);
                ViewData["despesas"] = despesas;
                #endregion

                #region Emprestimo
                IEmprestimoProcesso emprestimoProcesso = EmprestimoProcesso.Instance;
                Emprestimo          emp = new Emprestimo();
                //emp.area_id = ClasseAuxiliar.AreaSelecionada.id;
                emp.data_emprestimo = prestacaoContaList[0].dataprestacao;

                ViewData["emprestimos"] = emprestimoProcesso.Consultar(emp, TipoPesquisa.E);
                #endregion

                #region Peguei com a empresa
                ILancamentoProcesso lancamentoProcesso = LancamentoProcesso.Instance;
                Lancamento          lanc = new Lancamento();
                //lanc.area_id = ClasseAuxiliar.AreaSelecionada.id;
                lanc.data = ClasseAuxiliar.DataSelecionada;
                lanc.lancamentotipo_id = 5;
                List <Lancamento> lancamentos = lancamentoProcesso.Consultar(lanc, TipoPesquisa.E);
                ViewData["lancamentos"] = lancamentos;
                #endregion

                IParcelaProcesso parcelaProcesso = ParcelaProcesso.Instance;
                List <Parcela>   parcelas        = parcelaProcesso.ConsultarParcelasPagasPorPeriodo(prestacaoContaList[0].dataprestacao, default(DateTime));

                float totalParcelas    = 0;
                float totalLancamentos = 0;
                float totalEmprestimos = 0;
                float totalDespesas    = 0;
                foreach (var item in lancamentos)
                {
                    totalLancamentos += item.valor;
                }
                foreach (var item in parcelas)
                {
                    totalParcelas += item.valor_pago.Value;
                }

                List <Emprestimo> emprestimos = emprestimoProcesso.ConsultarEmprestimosPorPeriodo(prestacaoContaList[0].dataprestacao, prestacaoContaList[0].dataprestacao);

                foreach (var item in emprestimos)
                {
                    totalEmprestimos += item.valor;
                }

                foreach (var item in despesas)
                {
                    totalDespesas += item.valor;
                }

                ViewData["totalParcelas"]    = totalParcelas;
                ViewData["totalEmprestimos"] = totalEmprestimos;
                ViewData["totalLancamentos"] = totalLancamentos;
                ViewData["totalDespesas"]    = totalDespesas;
            }

            return(View());
        }
        public ActionResult IncluirPrestacaoConta()
        {
            if (ClasseAuxiliar.UsuarioLogado == null || (ClasseAuxiliar.DataSelecionada == default(DateTime) || ClasseAuxiliar.AreaSelecionada == null))
            {
                return(RedirectToAction("Index", "Home"));
            }
            PrestacaoConta prestacaoConta = new PrestacaoConta();

            #region Despesas
            IDespesaProcesso despesaProcesso = DespesaProcesso.Instance;
            Despesa          despesa         = new Despesa();
            despesa.area_id = ClasseAuxiliar.AreaSelecionada.id;
            despesa.data    = ClasseAuxiliar.DataSelecionada;

            List <Despesa> despesas = despesaProcesso.Consultar(despesa, TipoPesquisa.E);
            ViewData["despesas"] = despesas;
            #endregion

            #region Emprestimo
            IEmprestimoProcesso emprestimoProcesso = EmprestimoProcesso.Instance;
            Emprestimo          emp = new Emprestimo();
            emp.area_id         = ClasseAuxiliar.AreaSelecionada.id;
            emp.data_emprestimo = ClasseAuxiliar.DataSelecionada;

            ViewData["emprestimos"] = emprestimoProcesso.Consultar(emp, TipoPesquisa.E);
            #endregion

            #region Peguei com a empresa
            ILancamentoProcesso lancamentoProcesso = LancamentoProcesso.Instance;
            Lancamento          lanc = new Lancamento();
            lanc.area_id           = ClasseAuxiliar.AreaSelecionada.id;
            lanc.data              = ClasseAuxiliar.DataSelecionada;
            lanc.lancamentotipo_id = 5;
            List <Lancamento> lancamentos = lancamentoProcesso.Consultar(lanc, TipoPesquisa.E);
            ViewData["lancamentos"] = lancamentos;
            #endregion

            IParcelaProcesso parcelaProcesso = ParcelaProcesso.Instance;
            List <Parcela>   parcelas        = parcelaProcesso.ConsultarParcelasPagasPorPeriodo(ClasseAuxiliar.DataSelecionada, default(DateTime));

            float totalParcelas    = 0;
            float totalLancamentos = 0;
            float totalEmprestimos = 0;
            float totalDespesas    = 0;
            foreach (var item in lancamentos)
            {
                totalLancamentos += item.valor;
            }
            foreach (var item in parcelas)
            {
                totalParcelas += item.valor_pago.Value;
            }

            List <Emprestimo> emprestimos = emprestimoProcesso.ConsultarEmprestimosPorPeriodo(ClasseAuxiliar.DataSelecionada, ClasseAuxiliar.DataSelecionada);

            foreach (var item in emprestimos)
            {
                totalEmprestimos += item.valor;
            }

            foreach (var item in despesas)
            {
                totalDespesas += item.valor;
            }

            ViewData["totalParcelas"]    = totalParcelas;
            ViewData["totalEmprestimos"] = totalEmprestimos;
            ViewData["totalLancamentos"] = totalLancamentos;
            ViewData["totalDespesas"]    = totalDespesas;
            // ViewData.Model = prestacaoConta;
            return(View());
        }