public ActionResult GerarParcelasDuplicata(FinanceiroTipoRecebimento financeiroTipoRecebimento)
        {
            var repoCliente             = new ClienteRepository();
            var repoPlanoPagamento      = new FinanceiroPlanoDePagamentoRepository();
            var demonstrativoParcelasVm = new FinanceiroDemonstrativoDeParcelasViewModel();

            demonstrativoParcelasVm.DemonstrativoParcelasList = ParcelasBusiness.GerarDemonstrativoParcelas(financeiroTipoRecebimento);
            demonstrativoParcelasVm.FinanceiroTipoRecebimento = financeiroTipoRecebimento;
            demonstrativoParcelasVm.NomeCliente             = repoCliente.GetNomeCliente(financeiroTipoRecebimento.ClienteId);
            demonstrativoParcelasVm.DescricaoPlanoPagamento = repoPlanoPagamento.GetDescricaoPlano(financeiroTipoRecebimento.FinanceiroPlanoDePagamentoId);
            return(View("DemonstrativoParcelas", demonstrativoParcelasVm));
        }
Beispiel #2
0
        public static void SalvarParcelasGeradas(List <FinanceiroContasReceberParcelas> financeiroContasReceberParcelasList, FinanceiroTipoRecebimento financeiroTipoRecebimento)
        {
            using (var ctx = new BancoContexto())
            {
                var operacao = new Operacao();
                operacao.Data = DateTime.Now;
                ctx.Operacoes.Add(operacao);

                SalvarTipoRecebimentoFinanceiro(ctx, operacao, financeiroTipoRecebimento);
                SalvarParcelasGeradas(ctx, operacao, financeiroContasReceberParcelasList, financeiroTipoRecebimento);
                ctx.SaveChanges();
            }
        }
Beispiel #3
0
 public static void SalvarParcelasGeradas(BancoContexto ctx, Operacao operacao, List <FinanceiroContasReceberParcelas> financeiroContasReceberParcelasList, FinanceiroTipoRecebimento financeiroTipoRecebimento)
 {
     foreach (var parcela in financeiroContasReceberParcelasList)
     {
         ctx.FinanceiroContasReceberParcelas.Add(parcela);
         if (parcela.SituacaoParcelaFinanceira == SituacaoParcelaFinanceira.Liquidado)
         {
             var nomeCliente = ClienteBusiness.GetNomeCliente(ctx, financeiroTipoRecebimento.ClienteId);
             MovimentacaoBusiness.GerarMovimentacaoCreditoOriundasDeContasReceber(ctx, operacao, OrigemMovimentacao.ContasReceber, parcela.ValorTotalLiquido, parcela.Parcela, parcela.FinanceiroTipoRecebimento.QuantidadeParcelas, financeiroTipoRecebimento.FinanceiroCentroDeCustoId, nomeCliente, financeiroTipoRecebimento.Observacao);
         }
     }
 }
Beispiel #4
0
        public static List <FinanceiroContasReceberParcelas> GerarDemonstrativoParcelas(FinanceiroTipoRecebimento financeiroTipoRecebimento)
        {
            var financeiroContasReceberParcelasList = new List <FinanceiroContasReceberParcelas>();

            var planoDePagamento = new FinanceiroPlanoDePagamentoRepository().GetPlanoPagamento(financeiroTipoRecebimento.FinanceiroPlanoDePagamentoId);

            for (var parcela = 1; parcela <= financeiroTipoRecebimento.QuantidadeParcelas; parcela++)
            {
                var financeiroContasReceberParcela = new FinanceiroContasReceberParcelas();
                financeiroContasReceberParcela.DataEmissao               = financeiroTipoRecebimento.DataEmissao;
                financeiroContasReceberParcela.HoraEmissao               = DateTime.Now.TimeOfDay;
                financeiroContasReceberParcela.DataVencimento            = financeiroContasReceberParcela.DataEmissao.AddDays(planoDePagamento.IntervaloDias * parcela);
                financeiroContasReceberParcela.Parcela                   = parcela;
                financeiroContasReceberParcela.ValorTotalBruto           = (financeiroTipoRecebimento.ValorTotal / financeiroTipoRecebimento.QuantidadeParcelas).Round();
                financeiroContasReceberParcela.ValorTotalLiquido         = financeiroContasReceberParcela.ValorTotalBruto;
                financeiroContasReceberParcela.NumeroDocumento           = string.Format("{0}{1}{2}-{3}", financeiroTipoRecebimento.ClienteId, planoDePagamento.Id, GetDataParaNumeroDocumento(), parcela);
                financeiroContasReceberParcela.FinanceiroTipoRecebimento = financeiroTipoRecebimento;
                financeiroContasReceberParcela.VerificarSeUtilizouPlanoAvista(planoDePagamento);
                financeiroContasReceberParcelasList.Add(financeiroContasReceberParcela);

                if (IsUltimaParcela(parcela, financeiroTipoRecebimento.QuantidadeParcelas))
                {
                    CalcularDiferenca(financeiroContasReceberParcelasList, financeiroTipoRecebimento.ValorTotal.Round());
                }
            }

            return(financeiroContasReceberParcelasList);
        }
Beispiel #5
0
 public static void SalvarTipoRecebimentoFinanceiro(BancoContexto ctx, Operacao operacao, FinanceiroTipoRecebimento financeiroTipoRecebimento)
 {
     financeiroTipoRecebimento.Operacao    = operacao;
     financeiroTipoRecebimento.HoraEmissao = financeiroTipoRecebimento.DataEmissao.TimeOfDay;
     ctx.FinanceiroTipoRecebimentos.Add(financeiroTipoRecebimento);
 }