public override EsteiraViewModel Run(Repository value) { EsteiraViewModel r = (EsteiraViewModel)value; try { EsteiraModel model = new EsteiraModel(this.db, this.seguranca_db); int esteiraId = this.db.Esteiras.Where(info => info.propostaId == ((EsteiraViewModel)value).propostaId).OrderByDescending(info => info.esteiraId).FirstOrDefault().esteiraId; ((EsteiraViewModel)value).esteiraId = esteiraId; EsteiraViewModel esteiraViewModel = model.getObject((EsteiraViewModel)value); // Se estiver na etapa original não pode voltar à etapa anterior if (db.Etapas.Find(esteiraViewModel.etapaId).etapa_antId.HasValue) { #region Reprovar Etapa esteiraViewModel.observacao = ((EsteiraViewModel)value).observacao; esteiraViewModel.ind_aprovacao = "R"; esteiraViewModel.dt_manifestacao = Funcoes.Brasilia(); esteiraViewModel.uri = ((EsteiraViewModel)value).uri; esteiraViewModel = model.Update(esteiraViewModel); if (esteiraViewModel.mensagem.Code > 0) { r = esteiraViewModel; throw new ArgumentException(esteiraViewModel.mensagem.MessageBase); } #endregion #region Incluir a proposta na etapa anterior EsteiraViewModel etapaAnterior = new EsteiraViewModel() { propostaId = esteiraViewModel.propostaId, etapaId = db.Etapas.Find(esteiraViewModel.etapaId).etapa_antId.Value, descricao_etapa = db.Etapas.Find(db.Etapas.Find(esteiraViewModel.etapaId).etapa_antId).descricao, dt_ocorrencia = ((EsteiraViewModel)value).dt_ocorrencia, uri = ((EsteiraViewModel)value).uri }; etapaAnterior = model.Insert(etapaAnterior); #endregion r = etapaAnterior; } else { throw new Exception("Esta etapa não pode ser recusada"); } } catch (Exception ex) { r.mensagem = new Validate() { Code = 999, MessageBase = ex.Message, Message = "Ocorreu um erro na aprovação da etapa" }; } return(r); }
public virtual EsteiraViewModel Run(Repository value) { EsteiraViewModel r = (EsteiraViewModel)value; r.mensagem = new Validate() { Code = 0, Message = "Registro incluído com sucesso!!" }; try { EsteiraModel model = new EsteiraModel(this.db, this.seguranca_db); int esteiraId = this.db.Esteiras.Where(info => info.propostaId == ((EsteiraViewModel)value).propostaId).OrderByDescending(info => info.esteiraId).FirstOrDefault().esteiraId; ((EsteiraViewModel)value).esteiraId = esteiraId; EsteiraViewModel esteiraViewModel = model.getObject((EsteiraViewModel)value); if (esteiraViewModel.ind_aprovacao == null || esteiraViewModel.ind_aprovacao == "") { #region Aprovar Etapa esteiraViewModel.observacao = ((EsteiraViewModel)value).observacao; esteiraViewModel.ind_aprovacao = "A"; esteiraViewModel.dt_manifestacao = Funcoes.Brasilia(); esteiraViewModel.uri = ((EsteiraViewModel)value).uri; esteiraViewModel = model.Update(esteiraViewModel); if (esteiraViewModel.mensagem.Code > 0) { r = esteiraViewModel; throw new Exception(esteiraViewModel.mensagem.MessageBase); } #endregion if (db.Etapas.Find(esteiraViewModel.etapaId).etapa_proxId.HasValue) { #region Incluir a proposta na próxima etapa EsteiraViewModel proximaEtapa = new EsteiraViewModel() { propostaId = esteiraViewModel.propostaId, etapaId = db.Etapas.Find(esteiraViewModel.etapaId).etapa_proxId.Value, descricao_etapa = db.Etapas.Find(db.Etapas.Find(esteiraViewModel.etapaId).etapa_proxId).descricao, dt_ocorrencia = ((EsteiraViewModel)value).dt_ocorrencia, uri = ((EsteiraViewModel)value).uri }; #region Incluir o comissionamento if (db.Etapas.Find(proximaEtapa.etapaId).ind_comissao == "S") { IList <EsteiraComissaoViewModel> listComissao = new List <EsteiraComissaoViewModel>(); foreach (ComissaoDefault comdef in db.ComissaoDefaults) { EsteiraComissaoViewModel com = new EsteiraComissaoViewModel() { grupoId = comdef.grupoId, nome_grupo = comdef.nome_grupo, valor = comdef.vr_comissao * db.Propostas.Find(esteiraViewModel.propostaId).valor }; listComissao.Add(com); } proximaEtapa.Comissaos = listComissao; } #endregion proximaEtapa = model.Insert(proximaEtapa); #endregion r = proximaEtapa; } } else { throw new Exception("Esta etapa não pode ser aprovada"); } } catch (Exception ex) { r.mensagem = new Validate() { Code = 999, MessageBase = ex.Message, Message = "Ocorreu um erro na aprovação da etapa" }; } return(r); }