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); }
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" })); }
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; } }
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(); } })); }
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); }