Пример #1
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);
        }
        public ActionResult BaixarParcela(InformacaoDeParcelaViewModel baixaDeParcelaViewModel)
        {
            var financeiroParcelaRecebida = new FinanceiroContasReceberParcelas();

            financeiroParcelaRecebida.Id = baixaDeParcelaViewModel.ParcelaId;
            financeiroParcelaRecebida.DataRecebimento = baixaDeParcelaViewModel.DataRecebimento;
            financeiroParcelaRecebida.HoraRecebimento = DateTime.Now.TimeOfDay;
            financeiroParcelaRecebida.Observacoes     = baixaDeParcelaViewModel.Observacoes;
            ParcelasBusiness.BaixarParcela(financeiroParcelaRecebida);

            return(RedirectToAction("Index"));
        }
Пример #3
0
 public static void VerificarSeUtilizouPlanoAvista(this FinanceiroContasReceberParcelas financeiroContasReceberParcela, FinanceiroPlanoDePagamento planoDePagamento)
 {
     if (planoDePagamento.IntervaloDias == 0 && planoDePagamento.QuantidadeParcelas == 1)
     {
         financeiroContasReceberParcela.SituacaoParcelaFinanceira = SituacaoParcelaFinanceira.Liquidado;
         financeiroContasReceberParcela.DataRecebimento           = DateTime.Now;
         financeiroContasReceberParcela.HoraRecebimento           = DateTime.Now.TimeOfDay;
         financeiroContasReceberParcela.ValorLiquidado            = financeiroContasReceberParcela.ValorTotalLiquido;
     }
     else
     {
         financeiroContasReceberParcela.SituacaoParcelaFinanceira = SituacaoParcelaFinanceira.Aberto;
     }
 }
Пример #4
0
        public static void BaixarParcela(FinanceiroContasReceberParcelas parcelaRecebida)
        {
            using (var ctx = new BancoContexto())
            {
                var parcela = ctx.FinanceiroContasReceberParcelas.Find(parcelaRecebida.Id);
                parcela.ValorLiquidado            = parcela.ValorTotalLiquido;
                parcela.DataRecebimento           = parcelaRecebida.DataRecebimento;
                parcela.SituacaoParcelaFinanceira = SituacaoParcelaFinanceira.Liquidado;
                parcela.HoraRecebimento           = parcelaRecebida.HoraRecebimento;
                parcela.Observacoes      = parcelaRecebida.Observacoes;
                ctx.Entry(parcela).State = EntityState.Modified;

                var tipoRecebimento = ctx.FinanceiroTipoRecebimentos.Where(x => x.Id == parcela.FinanceiroTipoRecebimentoId).Select(p => new { p.Id, p.Operacao, p.FinanceiroCentroDeCustoId, p.Cliente.Nome, p.QuantidadeParcelas }).First();
                MovimentacaoBusiness.GerarMovimentacaoCreditoOriundasDeContasReceber(ctx, tipoRecebimento.Operacao, OrigemMovimentacao.ContasReceber, parcela.ValorTotalLiquido, parcela.Parcela, tipoRecebimento.QuantidadeParcelas, tipoRecebimento.FinanceiroCentroDeCustoId, tipoRecebimento.Nome, parcela.Observacoes);
                ctx.SaveChanges();
            }
        }