public HttpResponseMessage IncluirFinanceiro(FinanceiroModel model) { try { if (model.IdFinanceiro == 0) { var pessoa = _cadastroService.ObterPessoaPorId(model.IdPessoa); if (pessoa == null) { throw new Exception("Não foi possivel recuperar dados de pessoa"); } string tipo = model.Tipo == "P" ? "Contas a Pagar" : "Contas a Receber"; var usuarioLogado = base.GetUsuarioLogado(); var financeiro = new Financeiro(pessoa, tipo, model.FormaPagamento, usuarioLogado.Clinica, usuarioLogado.UnidadeAtendimento); var conta = _financeiroService.ObterContaPorId(model.IdConta); var planoConta = _financeiroService.ObterPlanodeContasPorId(model.IdPlanoConta); if (model.FormaPagamento == "A VISTA") { var parcela = new FinanceiroParcela(1, model.DataVencimento, (decimal)model.Total, DateTime.Now, conta, planoConta, null); parcela.MeioPagamento = _financeiroService.ObterMeioPagamentoPorId(1); parcela.Situacao = "Baixado"; parcela.UsuarioBaixa = base.GetUsuarioLogado(); parcela.TotalAcerto = model.Total; parcela.DataAcerto = model.DataVencimento; financeiro.AddParcela(parcela); } else // A PRAZO { if (model.Total != model.Parcelas.Sum(x => x.Valor)) { throw new Exception(" O Total está diferente do valor das parcelas "); } foreach (var item in model.Parcelas) { financeiro.AddParcela(new FinanceiroParcela(item.NumeroParcela, item.DataVencimento, item.Valor, DateTime.Now, conta, planoConta, null)); } } _financeiroService.SalvarFinanceiro(financeiro); return(Request.CreateResponse(HttpStatusCode.OK, model)); } return(Request.CreateResponse(HttpStatusCode.OK)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message)); } }