public ActionResult Visualizar(int id)
        {
            bool existeCredenciado = _bus.ExisteCredenciado(id);

            CARSolicitacao solicitacao    = null;
            CARSolicitacao solicitacaoAux = existeCredenciado ? _busCredenciado.Obter(id) : _bus.Obter(id, false);

            if (solicitacaoAux.SituacaoId != (int)eCARSolicitacaoSituacao.EmCadastro && solicitacaoAux.SituacaoId != (int)eCARSolicitacaoSituacao.Pendente)
            {
                //Obtem ultimo valido, porem mantem a situacao atual
                int situacaoAtual = solicitacaoAux.SituacaoId;

                solicitacao = existeCredenciado ? _busCredenciado.ObterHistoricoPrimeiraSituacao(solicitacaoAux.Id, eCARSolicitacaoSituacao.Valido) :
                              _bus.ObterHistoricoPrimeiraSituacao(solicitacaoAux.Id, eCARSolicitacaoSituacao.Valido);
                if (solicitacao.Id <= 0)
                {
                    solicitacao = existeCredenciado ? _busCredenciado.ObterHistoricoPrimeiraSituacao(solicitacaoAux.Id, eCARSolicitacaoSituacao.SubstituidoPeloTituloCAR) :
                                  _bus.ObterHistoricoPrimeiraSituacao(solicitacaoAux.Id, eCARSolicitacaoSituacao.SubstituidoPeloTituloCAR);
                }

                if (solicitacao.Id <= 0)
                {
                    solicitacao = solicitacaoAux;
                }

                solicitacao.SituacaoId = situacaoAtual;
            }

            #region Configurar

            List <Protocolos> lstProcessosDocumentos = new List <Protocolos>()
            {
                new Protocolos()
                {
                    IsAtivo = true,
                    Id      = solicitacao.ProtocoloSelecionado.Id.ToString() + "@" + (solicitacao.ProtocoloSelecionado.IsProcesso ? 1 : 2) + "@" + solicitacao.Requerimento.Id.ToString(),
                    Texto   = solicitacao.Requerimento.Id.ToString() + " - " + solicitacao.Requerimento.DataCadastroTexto
                }
            };

            List <PessoaLst> lstResponsaveis = new List <PessoaLst>()
            {
                new PessoaLst()
                {
                    IsAtivo = true,
                    Id      = solicitacao.Declarante.Id,
                    Texto   = solicitacao.Declarante.NomeRazaoSocial
                }
            };

            CARSolicitacaoVM vm = new CARSolicitacaoVM(
                solicitacao,
                _busLista.CadastroAmbientalRuralSolicitacaoSituacao,
                lstProcessosDocumentos,
                _busLista.AtividadesSolicitada,
                lstResponsaveis,
                isVisualizar: true);

            vm.IsCredenciado = existeCredenciado;

            #endregion Configurar

            return(View(vm));
        }
Esempio n. 2
0
        public bool AlterarSituacao(CARSolicitacao entidade, BancoDeDados banco = null, bool mostrarMsg = true)
        {
            try
            {
                bool           IsCredenciado    = false;
                CARSolicitacao solicitacaoAtual = Obter(entidade.Id) ?? new CARSolicitacao();

                if (solicitacaoAtual.Id == 0)
                {
                    solicitacaoAtual = _busCredenciado.Obter(entidade.Id);
                    IsCredenciado    = true;
                }

                entidade.SituacaoAnteriorId   = solicitacaoAtual.SituacaoId;
                entidade.DataSituacaoAnterior = solicitacaoAtual.DataSituacao;
                entidade.Protocolo            = solicitacaoAtual.Protocolo;

                //passivo arrumado
                GerenciadorTransacao.ObterIDAtual();

                if (IsCredenciado)
                {
                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        _busCredenciado.AlterarSituacao(new CARSolicitacao()
                        {
                            Id = entidade.Id
                        }, entidade, bancoDeDados);
                        _busCredenciado.FazerVirarPassivo(entidade.Id, bancoDeDados);
                        bancoDeDados.Commit();
                    }
                }
                else
                {
                    if (_validar.AlterarSituacao(entidade))
                    {
                        using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
                        {
                            bancoDeDados.IniciarTransacao();

                            _da.AlterarSituacao(entidade, bancoDeDados);
                            _da.FazerVirarPassivo(entidade.Id, bancoDeDados);

                            bancoDeDados.Commit();
                        }
                    }
                }

                if (mostrarMsg)
                {
                    Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAlterarSituacao);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
Esempio n. 3
0
        public bool AlterarSituacao(CARSolicitacao entidade, BancoDeDados banco = null, bool isTitulo = false, int funcionarioId = 0)
        {
            try
            {
                bool           IsCredenciado    = false;
                CARSolicitacao solicitacaoAtual = Obter(entidade.Id) ?? new CARSolicitacao();

                if (solicitacaoAtual.Id == 0)
                {
                    solicitacaoAtual = _busCredenciado.Obter(entidade.Id);
                    IsCredenciado    = true;
                }

                entidade.SituacaoAnteriorId   = solicitacaoAtual.SituacaoId;
                entidade.DataSituacaoAnterior = solicitacaoAtual.DataSituacao;
                entidade.Protocolo            = solicitacaoAtual.Protocolo;

                //passivo arrumado
                GerenciadorTransacao.ObterIDAtual();

                if (_validar.AlterarSituacao(entidade, funcionarioId, isTitulo))
                {
                    if (IsCredenciado)
                    {
                        using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioCredenciado))
                        {
                            bancoDeDados.IniciarTransacao();

                            _busCredenciado.AlterarSituacao(new CARSolicitacao()
                            {
                                Id = entidade.Id
                            }, entidade, bancoDeDados);
                            _busCredenciado.FazerVirarPassivo(entidade.Id, bancoDeDados);
                            bancoDeDados.Commit();
                        }
                    }
                    else
                    {
                        using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
                        {
                            bancoDeDados.IniciarTransacao();

                            _da.AlterarSituacao(entidade, bancoDeDados);
                            _da.FazerVirarPassivo(entidade.Id, bancoDeDados);

                            bancoDeDados.Commit();
                        }
                    }

                    if (!isTitulo && Validacao.EhValido)
                    {
                        int situacaoArquivo = (entidade.SituacaoAnteriorId == (int)eCARSolicitacaoSituacao.Valido && entidade.SituacaoId == (int)eCARSolicitacaoSituacao.Invalido) ?
                                              (int)eStatusArquivoSICAR.Cancelado :
                                              (int)eStatusArquivoSICAR.ArquivoReprovado;

                        _da.AlterarSituacaoArquivoSicar(entidade, situacaoArquivo);

                        Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAlterarSituacao);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }