Exemplo n.º 1
0
        public HttpResponseMessage GetFinanceiroPorId(int id)
        {
            var model    = new FinanceiroModel();
            var consulta = _financeiroService.ObterFinanceiroPorId(id);

            // cabeçalho
            model.IdFinanceiro   = consulta.IdFinanceiro;
            model.NomePessoa     = consulta.Pessoa.Nome;
            model.IdPessoa       = consulta.Pessoa.IdPessoa;
            model.FormaPagamento = consulta.FormaPagamento;
            model.TotalDesconto  = consulta.Parcelas.Sum(x => x.ValorDesconto);
            model.Total          = consulta.Total;
            model.TotalAcerto    = consulta.Parcelas.Sum(x => x.TotalAcerto);
            model.TotalAcrescimo = consulta.Parcelas.Sum(x => x.ValorAcrescimo);
            model.Tipo           = consulta.Tipo;
            model.FormaPagamento = consulta.FormaPagamento;
            // model.IdContrato = consulta.IdContrato;
            model.UsuarioInsercao = _usuarioService.ObterUsuarioPorId(base.GetUsuarioLogado().IdUsuario).Nome;
            model.DataInsercao    = consulta.Parcelas.First().DataInclusao;
            // parecelas
            if (consulta.Parcelas != null)
            {
                var parcelas = new List <FinanceiroParcelaModel>();
                foreach (var item in consulta.Parcelas)
                {
                    parcelas.Add(new FinanceiroParcelaModel()
                    {
                        DataInicio     = item.DataInclusao,
                        DataPagamento  = item.DataBaixa,
                        Numero         = item.Numero,
                        DataAcerto     = item.DataAcerto,
                        NumeroParcela  = item.Numero,
                        NomeCliente    = item.Financeiro.Pessoa?.Nome,
                        Situacao       = item.Situacao,
                        DataVencimento = item.DataVencimento,
                        ValorAcerto    = item.TotalAcerto ?? 0,
                        Valor          = item.Valor,
                        ValorDesconto  = item.ValorDesconto ?? 0,
                        ValorAcrescimo = item.ValorAcrescimo ?? 0,
                        PlanoConta     = item.PlanoConta?.NmPlanoConta,
                        IdParcela      = item.IdParcela,
                        TotalAcerto    = item.TotalAcerto ?? 0,
                        IdFinanceiro   = item.IdFinanceiro
                    });
                }
                model.Parcelas = parcelas;
            }
            else
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, " financeiro não possui parcelas "));
            }

            return(Request.CreateResponse <FinanceiroModel>(HttpStatusCode.OK, model));
        }
Exemplo n.º 2
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));
            }
        }