Exemplo n.º 1
0
        public HttpResponseMessage SalvarCheque(ChequeViewModel model)
        {
            try
            {
                var clinica = _cadastroService.ObterClinicaById(base.GetUsuarioLogado().IdClinica);
                if (clinica == null)
                {
                    throw new Exception("Não foi possivel recuperar dados da clínica!");
                }

                if (model.IdCheque > 0)
                {
                    var cheque = _financeiroService.ObterChequePorId(model.IdCheque);
                    if (cheque == null)
                    {
                        throw new Exception("Não foi possivel recuperar dados do cheque!");
                    }

                    if (model.IdFinanceiro > 0)
                    {
                        var financeiro = _financeiroService.ObterFinanceiroPorId(Convert.ToInt32(model.IdFinanceiro));
                        if (financeiro == null)
                        {
                            throw new Exception("Não foi possivel recuperar dados de financeiro!");
                        }

                        cheque.SetFinanceiro(financeiro);
                    }

                    if (model.IdPessoa > 0)
                    {
                        var pessoa = _cadastroService.ObterPessoaPorId(Convert.ToInt32(model.IdPessoa));
                        if (pessoa == null)
                        {
                            throw new Exception("Não foi possivel recuperar dados de pessoa!");
                        }

                        cheque.SetPessoa(pessoa);
                    }

                    cheque.SetAgencia(model.Agencia);
                    cheque.SetBanco(model.Banco);
                    cheque.SetClinica(clinica);
                    cheque.SetValor(model.Valor);

                    if (model.BomPara != DateTime.MinValue)
                    {
                        cheque.SetBomPara(Convert.ToDateTime(model.BomPara));
                    }

                    cheque.SetConta(model.Conta);
                    cheque.SetEmitente(model.Emitente);
                    cheque.SetHistorico(model.Historico);
                    cheque.SetSituacao(model.Situacao);


                    _financeiroService.SalvarCheque(cheque);
                    return(Request.CreateResponse(HttpStatusCode.OK, model));
                }
                else
                {
                    var cheque = new Cheque(model.Emitente, model.Banco, model.Agencia, model.Conta, model.Situacao, model.Valor, clinica);

                    if (model.IdFinanceiro > 0)
                    {
                        var financeiro = _financeiroService.ObterFinanceiroPorId(Convert.ToInt32(model.IdFinanceiro));
                        if (financeiro == null)
                        {
                            throw new Exception("Não foi possivel recuperar dados de financeiro!");
                        }

                        cheque.SetFinanceiro(financeiro);
                    }

                    if (model.IdPessoa > 0)
                    {
                        var pessoa = _cadastroService.ObterPessoaPorId(Convert.ToInt32(model.IdPessoa));
                        if (pessoa == null)
                        {
                            throw new Exception("Não foi possivel recuperar dados de pessoa!");
                        }

                        cheque.SetPessoa(pessoa);
                    }

                    if (model.BomPara != DateTime.MinValue)
                    {
                        cheque.SetBomPara(Convert.ToDateTime(model.BomPara));
                    }

                    cheque.SetHistorico(model.Historico);

                    _financeiroService.SalvarCheque(cheque);
                    return(Request.CreateResponse(HttpStatusCode.OK, model));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }