Beispiel #1
0
        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));
            }
        }