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)); }
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(); } }
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); } } }
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 static void SalvarTipoRecebimentoFinanceiro(BancoContexto ctx, Operacao operacao, FinanceiroTipoRecebimento financeiroTipoRecebimento) { financeiroTipoRecebimento.Operacao = operacao; financeiroTipoRecebimento.HoraEmissao = financeiroTipoRecebimento.DataEmissao.TimeOfDay; ctx.FinanceiroTipoRecebimentos.Add(financeiroTipoRecebimento); }