public HttpResponseMessage AlterarParcela(FinanceiroParcelaModel model) { try { var parcela = _financeiroService.ObterFinanceiroParcelaPorId(model.IdParcela); if (parcela == null) { throw new Exception("Não foi possível recuperar a parcela."); } parcela.SetSituacao(model.Situacao); var plano = _financeiroService.ObterPlanodeContasPorId(model.IdPlanoConta ?? 0); parcela.SetPlanoConta(plano); var conta = _financeiroService.ObterContaPorId(model.IdConta); parcela.SetConta(conta); if (model.Situacao == "Baixado") { parcela.SetTotalAcerto((decimal)model.TotalAcerto); parcela.SetDataAcerto(model.DataAcerto ?? DateTime.MinValue); var meiopagamento = _financeiroService.GetMeioPagamentoPorId(model.IdMeioPagamento); parcela.SetMeioPagamento(meiopagamento); } else { parcela.SetTotalAcerto(0); } parcela.SetUsuarioAlteracao(null); if (model.Situacao == "Baixado") { parcela.SetUsuarioBaixar(null); } if (model.ValorDesconto > model.Valor) { throw new Exception(" O Valor do desconto não pode ser maior que o valor da parcela "); } parcela.SetValorDesconto((decimal)model.ValorDesconto); parcela.SetValorAcrescimo((decimal)model.ValorAcrescimo); parcela.SetObservacao(model.Observacao); _financeiroService.AlterarParcela(parcela); return(Request.CreateResponse(HttpStatusCode.OK, model)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message)); } }
public IEnumerable <FinanceiroParcelaModel> GerarParcelasFinanceiro(FinanceiroParcelaModel model) { var parcelas = new List <FinanceiroParcelaModel>(); int quantidadeParcelas = model.QuantidadeParcelas; DateTime DataVencimentoAdesao = model.DataVencimentoAdesao; DateTime DataVencimentoPrimeiraParcela = model.DataVencimentoPrimeiraParcela; Decimal valorParcela = model.Valor / quantidadeParcelas; DateTime?DataPagamento = null; for (int i = 1; i <= quantidadeParcelas; i++) { DataPagamento = null; if (model.IncluirParcelasPagas) { DataPagamento = DataVencimentoPrimeiraParcela; } parcelas.Add(new FinanceiroParcelaModel() { Valor = Math.Round(valorParcela, 2), DataVencimento = DataVencimentoPrimeiraParcela, DataPagamento = DataPagamento, NumeroParcela = i }); DataVencimentoPrimeiraParcela = DataVencimentoPrimeiraParcela.AddMonths(1); } var somadevalores = parcelas.Sum(x => x.Valor); decimal resto = 0; if (Convert.ToDecimal(somadevalores) - (Convert.ToDecimal(model.Valor)) != 0) { resto = Convert.ToDecimal(somadevalores) - Convert.ToDecimal(model.Valor); parcelas[0].Valor = parcelas[0].Valor - resto; } return(parcelas); }
public FinanceiroParcelaModel GetFinanceiroParcelaModeloById(int id) { var item = _financeiroService.ObterFinanceiroParcelaPorId(id); var result = new FinanceiroParcelaModel(); if (item == null) { throw new Exception("Não foi possivel recuperar dados da parcela."); } result.DataInicio = item.DataInclusao; result.DataPagamento = item.DataBaixa; result.DataAcerto = item.DataAcerto; result.NumeroParcela = item.Numero; result.NomeCliente = item.Financeiro.Pessoa?.Nome; result.Situacao = item.Situacao; result.DataVencimento = item.DataVencimento; result.Valor = item.Valor; result.NomeCliente = item.Financeiro?.Pessoa?.Nome; result.PlanoConta = item.PlanoConta?.NmPlanoConta; result.IdParcela = item.IdParcela; result.TotalAcerto = item.TotalAcerto; result.IdFinanceiro = item.IdFinanceiro; result.TipoConta = item.Financeiro.Tipo; result.Conta = item.Conta.NmConta; result.IdConta = item.Conta.IdConta; result.IdMeioPagamento = item.MeioPagamento != null ? item.MeioPagamento.IdMeioPagamento : 0; result.DataAcerto = item.DataAcerto; result.ValorAcerto = item.TotalAcerto; result.ValorDesconto = item.ValorDesconto; result.ValorAcrescimo = item.ValorAcrescimo; result.IdPlanoConta = item.IdPlanoConta; result.Observacao = item.Observacao; return(result); }