Ejemplo n.º 1
0
        private RetornoModel <PropostaModel> Salvar(PropostaModel model)
        {
            RetornoModel <PropostaModel> result = new RetornoModel <PropostaModel> {
                Mensagem = "OK"
            };

            try
            {
                model.Data = new DateTime(model.Data.Year, model.Data.Month, model.Data.Day, DateTime.Now.Hour, DateTime.Now.Minute, 0);
                if (model.ID > 0)
                {
                    result.Sucesso = _ado.Atualizar(model.MapTo <Proposta>());
                    result.Retorno = model;

                    if (!result.Sucesso)
                    {
                        result.Mensagem = "Registro não localizado para modificação";
                    }
                }
                else
                {
                    result.Retorno = _ado.Inserir(model.MapTo <Proposta>()).MapTo <PropostaModel>();

                    InserirHistorico(result.Retorno.ID, AcaoProposta.Criacao, model.IdUsuario);
                    result.Sucesso = true;
                }
            }
            catch (Exception ex)
            {
                LogUtil.Error(ex);
                throw;
            }

            return(result);
        }
Ejemplo n.º 2
0
        public RetornoModel <PropostaModel> GravarProposta(PropostaModel model)
        {
            try
            {
                if (model.ID > 0)
                {
                    var proposta = Carregar(model.ID);
                    if (proposta.Status == StatusProposta.Aprovada)
                    {
                        return(new RetornoModel <PropostaModel>
                        {
                            Mensagem = "Proposta não pode ser alterada pois já encontra-se Aprovada"
                        });
                    }

                    InserirHistorico(model.ID, AcaoProposta.Edicao, model.IdUsuario);
                }
                return(Salvar(model));
            }
            catch (Exception ex)
            {
                LogUtil.Error(ex);
                throw;
            }
        }
        public IActionResult GetProposta(string id)
        {
            var propostas = new PropostaModel();

            if (!string.IsNullOrEmpty(id))
            {
                return(Ok(RestornaPropostaList().FirstOrDefault(x => x.Id == Guid.Parse(id))));
            }
            return(Ok(new { Response = "Nenhum Resultado Encontrado" }));
        }
Ejemplo n.º 4
0
        public RetornoModel <PropostaModel> AprovarProposta(PropostaModel model)
        {
            try
            {
                if (DateTime.Now > model.Data.AddHours(ConfiguracaoAppUtil.GetAsInt(ConfiguracaoGeral.tempoExpiracaoProposta)))
                {
                    return(new RetornoModel <PropostaModel>
                    {
                        Mensagem = "Proposta não pode ser aprovada pois já expirou o prazo de validade"
                    });
                }

                var usuarioCorrente = new UsuarioService().Carregar(model.IdUsuario);

                if (usuarioCorrente.Perfil == PerfilUsuario.AnalistaComercial)
                {
                    return(new RetornoModel <PropostaModel>
                    {
                        Mensagem = "Proposta não pode ser aprovada por usuários com perfil " + PerfilUsuario.AnalistaComercial.Description()
                    });
                }
                else if (usuarioCorrente.Perfil == PerfilUsuario.AnalistaFinanceiro)
                {
                    InserirHistorico(model.ID, AcaoProposta.AprovacaoAnalista, model.IdUsuario);
                    if (model.Valor > ConfiguracaoAppUtil.GetAsDecimal(ConfiguracaoGeral.valorMinimoAprovacaoDiretoria))
                    {
                        InserirHistorico(model.ID, AcaoProposta.SolicitadoAprovacao, model.IdUsuario);
                        model.Status = StatusProposta.PedenteDiretoria;
                    }
                }
                else
                {
                    InserirHistorico(model.ID, AcaoProposta.AprovacaoDiretoria, model.IdUsuario);
                }

                var result = Salvar(model);
                if (result.Sucesso)
                {
                    if (model.Status == StatusProposta.PedenteDiretoria)
                    {
                        result.Mensagem = "Proposta enviada para aprovação do " + PerfilUsuario.DiretorFinanceiro.Description();
                    }
                    else
                    {
                        result.Mensagem = "Proposta aprovada com sucesso!";
                    }
                }
                return(result);
            }
            catch (Exception ex)
            {
                LogUtil.Error(ex);
                throw;
            }
        }
Ejemplo n.º 5
0
 public HttpResponseMessage GravarProposta([FromBody] PropostaModel model)
 {
     return(ExecuteFunction(() =>
     {
         if (ModelState.IsValid)
         {
             model.IdUsuario = UsuarioCorrente;
             var result = service.GravarProposta(model);
             return Request.CreateResponse(HttpStatusCode.OK, result);
         }
         else
         {
             return ModelInvalidResponse();
         }
     }));
 }
Ejemplo n.º 6
0
 public RetornoModel <PropostaModel> ReprovarProposta(PropostaModel model)
 {
     try
     {
         InserirHistorico(model.ID, AcaoProposta.Reprovacao, model.IdUsuario);
         var result = Salvar(model);
         if (result.Sucesso)
         {
             result.Mensagem = "Proposta reprovada com sucesso!";
         }
         return(result);
     }
     catch (Exception ex)
     {
         LogUtil.Error(ex);
         throw;
     }
 }
        public virtual PropostaViewModel Run(Repository value)
        {
            PropostaViewModel prop = new PropostaViewModel();

            try
            {
                PropostaModel propModel = new PropostaModel(this.db, this.seguranca_db);
                prop.propostaId = ((PropostaViewModel)value).propostaId;
                Proposta p = propModel.Find(prop);
                prop = propModel.MapToRepository(p);
            }
            catch (Exception ex)
            {
                prop.mensagem = new Validate()
                {
                    Code = 999, MessageBase = ex.Message, Message = "Ocorreu um erro na consulta da proposta"
                };
            }
            return(prop);
        }