Пример #1
0
        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);
        }
        private IEnumerable <EsteiraViewModel> CancelarFaturamento(int propostaId, int esteiraId)
        {
            IEnumerable <EsteiraViewModel> result = new List <EsteiraViewModel>();

            try
            {
                EsteiraViewModel value = new EsteiraViewModel();
                value.esteiraId  = esteiraId;
                value.propostaId = propostaId;
                Factory <EsteiraViewModel, ApplicationContext> facade = new Factory <EsteiraViewModel, ApplicationContext>();
                value.uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString();
                result    = facade.Execute(new CancelarFaturamentoBI(), value, propostaId);

                if (facade.Mensagem.Code > 0)
                {
                    throw new App_DominioException(facade.Mensagem);
                }

                Success("Aprovação da etapa de faturamento cancelada com sucesso");
            }
            catch (App_DominioException ex)
            {
                ViewBag.observacao    = "";
                ViewBag.dt_ocorrencia = DateTime.Today;
                ViewBag.propostaId    = propostaId.ToString();

                ModelState.AddModelError(ex.Result.Field, ex.Result.Message); // mensagem amigável ao usuário
                Error(ex.Result.MessageBase);                                 // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela
            }
            catch (Exception ex)
            {
                ViewBag.observacao    = "";
                ViewBag.dt_ocorrencia = DateTime.Today;
                ViewBag.propostaId    = propostaId.ToString();

                App_DominioException.saveError(ex, GetType().FullName);
                ModelState.AddModelError("", MensagemPadrao.Message(17).ToString()); // mensagem amigável ao usuário
                Error(ex.Message);                                                   // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela
            }

            return(result);
        }
        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);
                EsteiraViewModel esteiraViewModel = model.getObject((EsteiraViewModel)value);

                if (esteiraViewModel.ind_aprovacao != null || esteiraViewModel.ind_aprovacao == "A" && esteiraViewModel.etapaId == 6)
                {
                    #region Cancelar Etapa de Faturamento
                    esteiraViewModel.observacao      = "Cancelamento de aprovação da etapa de faturamento";
                    esteiraViewModel.ind_aprovacao   = null;
                    esteiraViewModel.dt_manifestacao = null;
                    esteiraViewModel.uri             = ((EsteiraViewModel)value).uri;
                    esteiraViewModel = model.Update(esteiraViewModel);
                    if (esteiraViewModel.mensagem.Code > 0)
                    {
                        r = esteiraViewModel;
                        throw new Exception(esteiraViewModel.mensagem.MessageBase);
                    }
                    #endregion
                }
                else
                {
                    throw new Exception("Esta etapa não pode ser cancelada");
                }
            }
            catch (Exception ex)
            {
                r.mensagem = new Validate()
                {
                    Code = 999, MessageBase = ex.Message, Message = "Ocorreu um erro no cancelamento da etapa"
                };
            }
            return(r);
        }
        private IEnumerable <EsteiraViewModel> AprovarEtapa(int propostaId, string dt_ocorrencia, string observacao_etapa, string btnAprovarRecusar)
        {
            IEnumerable <EsteiraViewModel> result = new List <EsteiraViewModel>();

            try
            {
                EsteiraViewModel value = new EsteiraViewModel();
                value.propostaId = propostaId;
                if (dt_ocorrencia != null)
                {
                    value.dt_ocorrencia = Funcoes.StringToDate(dt_ocorrencia).Value;
                }
                else
                {
                    throw new Exception("Data da ocorrência deve ser informada");
                }
                value.observacao = observacao_etapa;
                Factory <EsteiraViewModel, ApplicationContext> facade = new Factory <EsteiraViewModel, ApplicationContext>();
                value.uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString();
                result    = facade.Execute(getProcess(btnAprovarRecusar), value, propostaId);

                if (facade.Mensagem.Code > 0)
                {
                    throw new App_DominioException(facade.Mensagem);
                }

                Success("Registro incluído com sucesso");
            }
            catch (App_DominioException ex)
            {
                ViewBag.observacao = observacao_etapa;
                if (dt_ocorrencia != null)
                {
                    ViewBag.dt_ocorrencia = Funcoes.StringToDate(dt_ocorrencia).Value;
                }
                else
                {
                    ViewBag.dt_ocorrencia = DateTime.Today;
                }
                ViewBag.propostaId = propostaId.ToString();

                ModelState.AddModelError(ex.Result.Field, ex.Result.Message); // mensagem amigável ao usuário
                Error(ex.Result.MessageBase);                                 // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela
            }
            catch (Exception ex)
            {
                ViewBag.observacao = observacao_etapa;
                if (dt_ocorrencia != null)
                {
                    ViewBag.dt_ocorrencia = Funcoes.StringToDate(dt_ocorrencia).Value;
                }
                else
                {
                    ViewBag.dt_ocorrencia = DateTime.Today;
                }
                ViewBag.propostaId = propostaId.ToString();

                App_DominioException.saveError(ex, GetType().FullName);
                ModelState.AddModelError("", MensagemPadrao.Message(17).ToString()); // mensagem amigável ao usuário
                Error(ex.Message);                                                   // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela
            }

            return(result);
        }
Пример #5
0
        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);
        }