Esempio n. 1
0
        public ActionResult VisualizarCredenciado(int projetoDigitalId, int protocoloId = 0)
        {
            ProjetoDigitalCredenciadoBus _busProjetoDigitalCredenciado = new ProjetoDigitalCredenciadoBus();
            ProjetoDigital projeto = _busProjetoDigitalCredenciado.Obter(projetoDigitalId);

            BarragemDispensaLicenca caracterizacao = _busCredenciado.ObterPorEmpreendimento(projeto.EmpreendimentoId.GetValueOrDefault(), projetoDigitalId);
            AtividadeBus            atividadeBus   = new AtividadeBus();

            BarragemDispensaLicencaVM vm = new BarragemDispensaLicencaVM(
                caracterizacao,
                atividadeBus.ObterAtividadePorCodigo((int)eAtividadeCodigo.BarragemDeAte1HaLâminaDaguaAte10000M3DeVolumeArmazenado),
                _listaBus.BarragemDispensaLicencaFinalidadeAtividade,
                _listaBus.BarragemDispensaLicencaFormacaoRT,
                _listaBus.BarragemDispensaLicencaBarragemTipo,
                _listaBus.BarragemDispensaLicencaFase,
                _listaBus.BarragemDispensaLicencaMongeTipo,
                _listaBus.BarragemDispensaLicencaVertedouroTipo
                );

            vm.ProtocoloId      = protocoloId;
            vm.ProjetoDigitalId = projeto.Id;
            vm.RequerimentoId   = projeto.RequerimentoId;
            vm.UrlRetorno       = Url.Action("Analisar", "../AnaliseItens", new { protocoloId = protocoloId, requerimentoId = projeto.RequerimentoId });

            return(View("Visualizar", vm));
        }
        internal bool AlterarSituacao(int requerimentoId, eProjetoDigitalSituacao eProjetoDigitalSituacao, BancoDeDados banco = null)
        {
            try
            {
                ProjetoDigital projetoDigital = _busProjetoDigitalCredenciado.Obter(idRequerimento: requerimentoId, banco: banco);
                projetoDigital.Situacao = (int)eProjetoDigitalSituacao;

                return(_busProjetoDigitalCredenciado.AlterarSituacao(projetoDigital, banco: banco));
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(false);
        }
        public ActionResult Editar(int id, int projetoDigitalId)
        {
            Requerimento requerimento = _busRequerimento.Obter(id);

            requerimento.ProjetoDigitalId = projetoDigitalId;

            ProjetoDigital projetoDigital = _busProjetoDigital.Obter(requerimento.ProjetoDigitalId, requerimento.Id);

            _busRequerimento.ValidarRoteiroRemovido(requerimento);

            if (Validacao.Erros.Count <= 0)
            {
                _busRequerimento.ValidarSituacaoVersaoRoteiro(requerimento.Roteiros);
            }

            _busRequerimento.ValidarEditar(requerimento);

            if (!Validacao.EhValido)
            {
                return(RedirectToAction("Index", "ProjetoDigital", Validacao.QueryParamSerializer()));
            }

            RequerimentoVM vm = new RequerimentoVM(requerimento);

            vm.CarregarListas(ListaCredenciadoBus.ResponsavelFuncoes, ListaCredenciadoBus.AgendamentoVistoria);

            return(View(vm));
        }
        public bool AssociarRequerimento(Requerimento requerimento, int modeloId)
        {
            RequerimentoCredenciadoBus requerimentoBus = new RequerimentoCredenciadoBus();

            requerimento = requerimentoBus.ObterSimplificado(requerimento.Id);

            ProjetoDigitalCredenciadoBus projetoDigitalBus = new ProjetoDigitalCredenciadoBus();
            var projetoDigital = projetoDigitalBus.Obter(idRequerimento: requerimento.Id);

            if (projetoDigital.Situacao != (int)eProjetoDigitalSituacao.AguardandoImportacao)
            {
                Validacao.Add(Mensagem.Titulo.ProjetoDigitalSituacaoInvalida);
            }

            if (requerimento.SituacaoId != (int)eRequerimentoSituacao.Finalizado)
            {
                Validacao.Add(Mensagem.Titulo.RequerimentoSituacaoInvalida);
            }

            if (!requerimentoBus.VerificarRequerimentoPossuiModelo(modeloId, requerimento.Id))
            {
                Validacao.Add(Mensagem.Titulo.RequerimentoNaoPossuiModelo);
            }

            return(Validacao.EhValido);
        }
Esempio n. 5
0
        public bool Importar(Requerimento requerimento, List <Pessoa> pessoasRelacionadas)
        {
            ProjetoDigitalCredenciadoBus projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();
            ProjetoDigital projeto = projetoDigitalCredenciadoBus.Obter(idRequerimento: requerimento.Id);

            if (projeto.Situacao != (int)eProjetoDigitalSituacao.AguardandoImportacao)
            {
                Validacao.Add(Mensagem.ProjetoDigital.SituacaoImportar);
                return(false);
            }

            if (!_da.ValidarVersaoAtual(requerimento.Id, requerimento.Tid))
            {
                Validacao.Add(Mensagem.ProjetoDigital.DadosDesatualizadoImportacao);
                return(false);
            }

            if (requerimento.Interessado.Id <= 0)
            {
                Validacao.Add(Mensagem.ProjetoDigital.InteressadoObrigatorio);
                return(false);
            }

            if (requerimento.Pessoas == null || requerimento.Pessoas.Count <= 0)
            {
                Validacao.Add(Mensagem.ProjetoDigital.InteressadoObrigatorio);
            }

            foreach (var item in requerimento.Pessoas.Where(x => x.IsFisica))
            {
                if (item.SelecaoTipo == (int)eExecutorTipo.Credenciado && pessoasRelacionadas.Exists(x => x.Fisica.CPF == item.Fisica.CPF))
                {
                    var pessoaRel = _busPessoa.Obter(item.Fisica.CPF);

                    if (pessoaRel != null && pessoaRel.Id > 0 &&
                        pessoaRel.Fisica.ConjugeCPF != item.Fisica.ConjugeCPF &&
                        pessoasRelacionadas.Count(x => x.Fisica.ConjugeCPF == item.Fisica.CPF) > 1)
                    {
                        Validacao.Add(Mensagem.ProjetoDigital.PessoaCredenciadoConflito);
                        break;
                    }
                }
            }

            if (requerimento.SetorId <= 0)
            {
                Validacao.Add(Mensagem.Requerimento.SetorObrigatorio);
            }

            requerimento.Atividades.ForEach(atividade =>
            {
                if (atividade.SituacaoId == (int)eAtividadeSituacao.Desativada)
                {
                    Validacao.Add(Mensagem.ProjetoDigital.AtividadeDesativada(atividade.NomeAtividade));
                }
            });

            return(Validacao.EhValido);
        }
Esempio n. 6
0
        public void Finalizar(Requerimento requerimento)
        {
            try
            {
                #region Projeto Digital

                ProjetoDigitalCredenciadoBus projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();
                ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.Obter(idRequerimento: requerimento.Id);
                requerimento.ProjetoDigitalId = projetoDigital.Id;

                #endregion

                requerimento = Obter(requerimento.Id);

                Mensagem msgSucesso;

                if (IsRequerimentoRegularizacaoFundiaria(requerimento.Atividades.First()))
                {
                    msgSucesso           = Mensagem.ProjetoDigital.AtividadeSemCaracterizacao(requerimento.Atividades.First().NomeAtividade);
                    projetoDigital.Etapa = (int)eProjetoDigitalEtapa.Envio;
                }
                else
                {
                    msgSucesso           = Mensagem.Requerimento.FinalizarCredenciado(requerimento.Numero);
                    projetoDigital.Etapa = (int)eProjetoDigitalEtapa.Caracterizacao;
                }

                requerimento.SituacaoId = (int)eRequerimentoSituacao.Finalizado;

                if (_validar.Finalizar(requerimento))
                {
                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        _da.Editar(requerimento);

                        projetoDigitalCredenciadoBus.Salvar(projetoDigital, bancoDeDados, true);

                        if (Validacao.EhValido)
                        {
                            Validacao.Add(msgSucesso);
                            bancoDeDados.Commit();
                        }
                        else
                        {
                            bancoDeDados.Rollback();
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
Esempio n. 7
0
        public bool AssociarEmpreendimento(Requerimento requerimento)
        {
            try
            {
                Requerimento req = Obter(requerimento.Id);
                req.Empreendimento = requerimento.Empreendimento;
                req.SituacaoId     = (int)eRequerimentoSituacao.EmAndamento;

                if (!_validar.AssociarEmpreendimento(req))
                {
                    return(Validacao.EhValido);
                }

                GerenciadorTransacao.ObterIDAtual();

                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                {
                    bancoDeDados.IniciarTransacao();

                    _da.Editar(req, bancoDeDados);

                    #region Projeto Digital

                    ProjetoDigitalCredenciadoBus projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();
                    ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.Obter(idRequerimento: requerimento.Id, banco: bancoDeDados);
                    projetoDigital.EmpreendimentoId = req.Empreendimento.Id;
                    projetoDigital.Etapa            = (int)eProjetoDigitalEtapa.Requerimento;
                    projetoDigitalCredenciadoBus.Salvar(projetoDigital, bancoDeDados);

                    ProjetoDigitalCredenciadoDa projetoDigitalCredenciadoDa = new ProjetoDigitalCredenciadoDa();
                    projetoDigitalCredenciadoDa.DesassociarDependencias(projetoDigital, bancoDeDados);

                    #endregion

                    if (!Validacao.EhValido)
                    {
                        bancoDeDados.Rollback();
                        return(false);
                    }

                    bancoDeDados.Commit();

                    if (req.Empreendimento.Id > 0)
                    {
                        Validacao.Add(Mensagem.Requerimento.EmpreendimentoSalvar);
                    }

                    return(true);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(false);
        }
Esempio n. 8
0
        public void SalvarObjetivoPedido(Requerimento requerimento)
        {
            try
            {
                bool criarRequerimento = requerimento.Id <= 0;

                if (_validar.ObjetivoPedidoValidar(requerimento))
                {
                    GerenciadorTransacao.ObterIDAtual();


                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        requerimento.CredenciadoId = User.FuncionarioId;

                        _da.Salvar(requerimento, bancoDeDados);

                        #region Projeto Digital

                        ProjetoDigitalCredenciadoBus projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();
                        ProjetoDigital projetoDigital = new ProjetoDigital();

                        if (!criarRequerimento)
                        {
                            projetoDigital = projetoDigitalCredenciadoBus.Obter(idRequerimento: requerimento.Id, banco: bancoDeDados);
                        }

                        projetoDigital.RequerimentoId = requerimento.Id;
                        projetoDigital.Etapa          = (int)eProjetoDigitalEtapa.Requerimento;
                        projetoDigitalCredenciadoBus.Salvar(projetoDigital, bancoDeDados, criarRequerimento);

                        ProjetoDigitalCredenciadoDa projetoDigitalCredenciadoDa = new ProjetoDigitalCredenciadoDa();
                        projetoDigitalCredenciadoDa.DesassociarDependencias(projetoDigital, bancoDeDados);

                        requerimento.ProjetoDigitalId = projetoDigital.Id;

                        #endregion

                        if (!Validacao.EhValido)
                        {
                            bancoDeDados.Rollback();
                            return;
                        }

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
Esempio n. 9
0
        public ActionResult VisualizarCredenciado(int projetoDigitalId, int protocoloId = 0)
        {
            ProjetoDigitalCredenciadoBus _busProjetoDigitalCredenciado = new ProjetoDigitalCredenciadoBus();
            ProjetoDigital projeto = _busProjetoDigitalCredenciado.Obter(projetoDigitalId);

            Dominialidade   caracterizacao = _busCredenciado.ObterPorEmpreendimento(projeto.EmpreendimentoId.GetValueOrDefault(), projetoDigitalId);
            DominialidadeVM vm             = new DominialidadeVM(caracterizacao, ListaCredenciadoBus.BooleanLista, true);

            vm.ProtocoloId      = protocoloId;
            vm.ProjetoDigitalId = projeto.Id;
            vm.RequerimentoId   = projeto.RequerimentoId;
            vm.UrlRetorno       = Url.Action("Analisar", "../AnaliseItens", new { protocoloId = protocoloId, requerimentoId = projeto.RequerimentoId });

            return(View("Visualizar", vm));
        }
        public ActionResult VisualizarCredenciado(int projetoDigitalId, int protocoloId = 0)
        {
            ProjetoDigitalCredenciadoBus _busProjetoDigitalCredenciado = new ProjetoDigitalCredenciadoBus();
            ProjetoDigital projeto = _busProjetoDigitalCredenciado.Obter(projetoDigitalId);

            UnidadeProducao   caracterizacao = _busCredenciado.ObterPorEmpreendimento(projeto.EmpreendimentoId.GetValueOrDefault(), projetoDigitalId);
            UnidadeProducaoVM vm             = new UnidadeProducaoVM()
            {
                IsVisualizar = true
            };

            vm.UnidadeProducao = caracterizacao;
            vm.UrlRetorno      = Url.Action("Analisar", "../AnaliseItens", new { protocoloId = protocoloId, requerimentoId = projeto.RequerimentoId });

            return(View("Visualizar", vm));
        }
Esempio n. 11
0
        public bool ValidarEditar(Requerimento requerimento)
        {
            if (requerimento != null && requerimento.SituacaoId == (int)eRequerimentoSituacao.Protocolado)
            {
                Validacao.Add(Mensagem.Requerimento.Protocolado(requerimento.Id));
                return(Validacao.EhValido);
            }

            ProjetoDigitalCredenciadoBus projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();
            ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.Obter(requerimento.ProjetoDigitalId);

            if (!projetoDigitalCredenciadoBus.SituacoesEditaveis.Exists(x => x == projetoDigital.Situacao))
            {
                Validacao.Add(Mensagem.ProjetoDigital.EditarSituacaoInvalida(projetoDigital.SituacaoTexto));
            }

            return(Validacao.EhValido);
        }
Esempio n. 12
0
        public void AssociarInteressado(Requerimento requerimento)
        {
            try
            {
                Requerimento req = Obter(requerimento.Id);
                req.SituacaoId     = (int)eRequerimentoSituacao.EmAndamento;
                req.Interessado.Id = requerimento.Interessado.Id;

                if (_validar.InteressadoValidar(req))
                {
                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        _da.Editar(req, bancoDeDados);

                        #region Projeto Digital

                        ProjetoDigitalCredenciadoBus projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();
                        ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.Obter(idRequerimento: requerimento.Id, banco: bancoDeDados);
                        projetoDigital.Etapa = (int)eProjetoDigitalEtapa.Requerimento;
                        projetoDigitalCredenciadoBus.Salvar(projetoDigital, bancoDeDados);

                        #endregion

                        if (Validacao.EhValido)
                        {
                            bancoDeDados.Commit();
                            Validacao.Add(Mensagem.Requerimento.InteressadoSalvar);
                        }
                        else
                        {
                            bancoDeDados.Rollback();
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
        public ActionResult Operar(int id = 0, bool modoVisualizar = false, int acaoId = 0)
        {
            ProjetoDigitalVM vm = new ProjetoDigitalVM();

            vm.ProjetoDigital.Situacao = (int)eProjetoDigitalSituacao.EmElaboracao;
            vm.ModoVisualizar          = modoVisualizar;
            vm.UrlRequerimento         = Url.Action("Criar", "Requerimento");

            if (acaoId > 0)
            {
                vm.PossuiAtividadeCAR = _bus.PossuiAtividadeCAR(acaoId);
            }

            if (id > 0)
            {
                vm.ProjetoDigital = _bus.Obter(id);

                RequerimentoCredenciadoBus requerimentoBus = new RequerimentoCredenciadoBus();
                vm.DesativarPasso4 = requerimentoBus.RequerimentoDeclaratorio(vm.ProjetoDigital.RequerimentoId);

                if (!_validar.EmPosseCredenciado(vm.ProjetoDigital))
                {
                    Validacao.Add(Mensagem.ProjetoDigital.PosseCredenciado);
                    return(RedirectToAction("Index", Validacao.QueryParamSerializer()));
                }

                vm.UrlRequerimento           = Url.Action("Editar", "Requerimento", new { id = vm.ProjetoDigital.RequerimentoId, projetoDigitalId = vm.ProjetoDigital.Id });
                vm.UrlRequerimentoVisualizar = Url.Action("Visualizar", "Requerimento", new { id = vm.ProjetoDigital.RequerimentoId, projetoDigitalId = vm.ProjetoDigital.Id, isVisualizar = true });

                vm.UrlCaracterizacao           = Url.Action("Index", "Caracterizacao", new { area = "Caracterizacoes", id = vm.ProjetoDigital.EmpreendimentoId.GetValueOrDefault(), projetoDigitalId = vm.ProjetoDigital.Id });
                vm.UrlCaracterizacaoVisualizar = Url.Action("Index", "Caracterizacao", new { area = "Caracterizacoes", id = vm.ProjetoDigital.EmpreendimentoId.GetValueOrDefault(), projetoDigitalId = vm.ProjetoDigital.Id, visualizar = true });

                vm.UrlEnviar           = Url.Action("Enviar", "ProjetoDigital", new { id = vm.ProjetoDigital.Id });
                vm.UrlEnviarVisualizar = Url.Action("Enviar", "ProjetoDigital", new { id = vm.ProjetoDigital.Id, modoVisualizar = true });

                vm.UrlImprimirDocumentos = Url.Action("ImprimirDocumentos", "ProjetoDigital", new { id = vm.ProjetoDigital.Id });
            }

            return(View(vm));
        }
Esempio n. 14
0
        public ActionResult ObterProjetoDigital(int projetoId)
        {
            ProjetoDigital   projeto        = _busProjetoDigital.Obter(idProjeto: projetoId);
            Empreendimento   empreendimento = _busEmpreendimentoCredenciado.Obter(projeto.EmpreendimentoId.GetValueOrDefault(), simplificado: true);
            List <Lista>     atividades     = _bus.ObterAtividadesLista(projeto.RequerimentoId);
            List <PessoaLst> declarantes    = _bus.ObterDeclarantesLst(projeto.RequerimentoId);

            _validar.AssociarProjetoDigital(projeto, atividades);

            return(Json(
                       new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros,
                @ProjetoDigital = projeto,
                @Empreendimento = empreendimento,
                @AtividadesLst = atividades,
                @DeclaranteLst = declarantes
            }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 15
0
        public ActionResult VisualizarCredenciado(int projetoDigitalId, int protocoloId = 0)
        {
            ProjetoDigitalCredenciadoBus _busProjetoDigitalCredenciado = new ProjetoDigitalCredenciadoBus();
            ProjetoDigital projeto = _busProjetoDigitalCredenciado.Obter(projetoDigitalId);

            UCBusCred.UnidadeConsolidacaoBus _busCredenciado = new UCBusCred.UnidadeConsolidacaoBus();
            UnidadeConsolidacao caracterizacao = _busCredenciado.ObterPorEmpreendimento(projeto.EmpreendimentoId.GetValueOrDefault(), projetoDigitalId);

            UnidadeConsolidacaoVM vm = new UnidadeConsolidacaoVM();

            vm.IsVisualizar        = true;
            vm.UnidadeConsolidacao = caracterizacao;
            vm.LstUnidadeMedida    = ViewModelHelper.CriarSelectList(_bus.ObterListaUnidadeMedida());

            vm.ProtocoloId      = protocoloId;
            vm.ProjetoDigitalId = projeto.Id;
            vm.RequerimentoId   = projeto.RequerimentoId;
            vm.UrlRetorno       = Url.Action("Analisar", "../AnaliseItens", new { protocoloId = protocoloId, requerimentoId = projeto.RequerimentoId });

            return(View("Visualizar", vm));
        }
Esempio n. 16
0
        public void ExcluirResponsaveis(Requerimento requerimento)
        {
            try
            {
                requerimento            = Obter(requerimento.Id);
                requerimento.SituacaoId = (int)eRequerimentoSituacao.EmAndamento;
                requerimento.Responsaveis.Clear();

                GerenciadorTransacao.ObterIDAtual();

                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                {
                    bancoDeDados.IniciarTransacao();

                    _da.Editar(requerimento, bancoDeDados);

                    #region Projeto Digital

                    ProjetoDigitalCredenciadoBus projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();
                    ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.Obter(idRequerimento: requerimento.Id, banco: bancoDeDados);
                    projetoDigital.Etapa = (int)eProjetoDigitalEtapa.Requerimento;
                    projetoDigitalCredenciadoBus.Salvar(projetoDigital, bancoDeDados);

                    #endregion

                    if (!Validacao.EhValido)
                    {
                        bancoDeDados.Rollback();
                        return;
                    }

                    Validacao.Add(Mensagem.Requerimento.SalvarResponsavelTec);
                    bancoDeDados.Commit();
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
Esempio n. 17
0
        internal bool Salvar(CARSolicitacao carSolicitacao)
        {
            if (carSolicitacao.ProjetoId < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.ProjetoObrigatorio);
                return(false);
            }

            if (carSolicitacao.Requerimento.Id < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoRequerimentoObrigatorio);
            }

            if (carSolicitacao.Atividade.Id < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAtividadeObrigatoria);
            }

            if (carSolicitacao.Atividade.Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.CadastroAmbientalRural))
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAtividadeInvalida);
            }

            if (carSolicitacao.Empreendimento.Id < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoObrigatorio);
            }

            if (carSolicitacao.Empreendimento.Codigo < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoCodigoObrigatorio);
            }

            if (string.IsNullOrEmpty(carSolicitacao.Empreendimento.NomeRazao))
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoNomeRazaoObrigatorio);
            }

            if (carSolicitacao.Declarante.Id < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoDeclaranteObrigatorio);
            }

            #region Projeto Digital

            ProjetoDigital projetoDigital = _busProjetoDigital.Obter(carSolicitacao.ProjetoId);

            if (projetoDigital.Situacao == (int)eProjetoDigitalSituacao.AguardandoCorrecao ||
                projetoDigital.Situacao == (int)eProjetoDigitalSituacao.ComPendencia ||
                projetoDigital.Situacao == (int)eProjetoDigitalSituacao.EmCorrecao ||
                projetoDigital.Situacao == (int)eProjetoDigitalSituacao.Finalizado ||
                projetoDigital.Situacao == (int)eProjetoDigitalSituacao.Indeferido ||
                projetoDigital.Situacao == (int)eProjetoDigitalSituacao.EmElaboracao)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SituacaoDeveSerAguardandoImportacao);
            }

            #endregion

            #region Requerimento

            Requerimento requerimento = _busRequerimento.ObterSimplificado(carSolicitacao.Requerimento.Id);

            if (requerimento == null || requerimento.Id < 1)
            {
                Validacao.Add(Mensagem.Requerimento.Inexistente);
            }

            if (requerimento.CredenciadoId != User.FuncionarioId)
            {
                Validacao.Add(Mensagem.Requerimento.PosseCredenciado);
            }

            if (requerimento.Empreendimento.Id < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.ProjetoDigitalSemEmpreendimento);
            }

            #endregion

            #region  Solitação de CAR

            EmpreendimentoCaracterizacao empreendimento = _busCaracterizacao.ObterEmpreendimentoSimplificado(carSolicitacao.Empreendimento.Id);

            /*if (!EmpreendimentoSolicitacaoCAR(empreendimento))
             * {
             *      return false;
             * }*/

            #endregion  Solitação de CAR

            #region Validar Dados da Caracterizacao

            if (projetoDigital.Dependencias.Count(x => x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico) < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.ProjetoDigitalDominialidadeAssociada);
            }

            projetoDigital.Dependencias.ForEach(x =>
            {
                if (x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico && x.DependenciaCaracterizacao == (int)eCaracterizacao.Dominialidade)
                {
                    if (_busProjetoGeografico.ObterSitacaoProjetoGeografico(x.DependenciaId) != (int)eProjetoGeograficoSituacao.Finalizado)
                    {
                        Validacao.Add(Mensagem.CARSolicitacao.ProjetoGeograficoNaoEstaFinalizado);
                    }
                }
            });

            #endregion

            #region Validar Dados do Titulo

            String tituloSituacao = _carSolicitacaoInternoDa.ObterSituacaoTituloCARExistente(empreendimento.InternoID);

            if (!String.IsNullOrWhiteSpace(tituloSituacao))
            {
                Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoPossuiTitulo(tituloSituacao));
            }

            #endregion

            return(Validacao.EhValido);
        }
        public ActionResult Index(int id, int projetoDigitalId, bool visualizar = false)
        {
            ProjetoDigitalCredenciadoBus projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();

            if (id == 0)
            {
                if (!visualizar)
                {
                    ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.AlterarEtapa(projetoDigitalId, eProjetoDigitalEtapa.Envio);
                }
                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" })));
            }

            EmpreendimentoCaracterizacao empreendimento = _bus.ObterEmpreendimentoSimplificado(id);
            CaracterizacaoVM             vm             = new CaracterizacaoVM(empreendimento);

            if (empreendimento.InternoID > 0)
            {
                Empreendimento empreendimentoInterno = new EmpreendimentoInternoBus().ObterSimplificado(empreendimento.InternoID);

                if (empreendimento.InternoTID != empreendimentoInterno.Tid)
                {
                    vm.MensagensNotificacoes.Add(Mensagem.Caracterizacao.EmpreendimentoDesatualizado(empreendimentoInterno.Denominador).Texto);
                }
            }

            if (empreendimento.Id == 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoNaoEncontrado);
                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" })));
            }

            vm.ProjetoDigitalId = projetoDigitalId;
            vm.IsVisualizar     = visualizar;

            List <CaracterizacaoLst> caracterizacoes = _bus.ObterCaracterizacoesPorProjetoDigital(projetoDigitalId);

            if (caracterizacoes.All(carac => carac.Permissao == ePermissaoTipo.NaoPermitido))
            {
                Validacao.Add(Mensagem.Caracterizacao.UsuarioNaoPermitidoParaCaracterizacao);
            }

            caracterizacoes.RemoveAll(caract => caract.Permissao == ePermissaoTipo.NaoPermitido);

            #region Projeto Digital

            if (caracterizacoes == null || caracterizacoes.Count <= 0)
            {
                ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.AlterarEtapa(projetoDigitalId, eProjetoDigitalEtapa.Envio);

                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" })));
            }

            ProjetoDigitalCredenciadoValidar projetoDigitalCredenciadoValidar = new ProjetoDigitalCredenciadoValidar();
            if (!projetoDigitalCredenciadoValidar.PossuiCaracterizacaoAtividade(caracterizacoes, projetoDigitalId))
            {
                if (!visualizar)
                {
                    ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.AlterarEtapa(projetoDigitalId, eProjetoDigitalEtapa.Envio);
                }
                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" })));
            }
            else
            {
                vm.MostrarFinalizar = (projetoDigitalCredenciadoBus.Obter(projetoDigitalId).Etapa == (int)eProjetoDigitalEtapa.Caracterizacao) && !visualizar;
            }

            #endregion

            List <Caracterizacao> caracterizacoesAssociadas = _bus.ObterCaracterizacoesAssociadasProjetoDigital(projetoDigitalId);
            List <Caracterizacao> cadastradas        = _bus.ObterCaracterizacoesEmpreendimento(id, projetoDigitalId) ?? new List <Caracterizacao>();
            List <Caracterizacao> cadastradasInterno = _internoBus.ObterCaracterizacoesAtuais(empreendimento.InternoID, caracterizacoes);

            if (cadastradas != null && cadastradas.Count > 0)
            {
                List <int> desatualizadas    = new List <int>();
                string     msgDesatualizadas = _validar.CaracterizacoesCadastradasDesatualizadas(empreendimento.Id, cadastradas, cadastradasInterno, out desatualizadas);
                if (!string.IsNullOrEmpty(msgDesatualizadas))
                {
                    vm.MensagensNotificacoes.Add(msgDesatualizadas);
                }
                vm.CaracterizacoesPossivelCopiar = _bus.ObterPossivelCopiar(cadastradas);
                vm.CaracterizacoesPossivelCopiar.AddRange(desatualizadas.Where(x => !vm.CaracterizacoesPossivelCopiar.Exists(y => y == x)));
            }

            vm.CaracterizacoesNaoCadastradas = caracterizacoes
                                               .Where(x => !cadastradas.Any(y => y.Id > 0 && (int)y.Tipo == x.Id))
                                               .Select(z => new CaracterizacaoVME()
            {
                Tipo = (eCaracterizacao)z.Id, Nome = z.Texto
            }).ToList();

            vm.CaracterizacoesCadastradas = caracterizacoes
                                            .Where(x => cadastradas.Where(y => !caracterizacoesAssociadas.Exists(z => z.Tipo == y.Tipo)).Any(y => y.Id > 0 && (int)y.Tipo == x.Id))
                                            .Select(z => new CaracterizacaoVME()
            {
                Tipo = (eCaracterizacao)z.Id, Nome = z.Texto
            }).ToList();

            vm.CaracterizacoesAssociadas = caracterizacoesAssociadas
                                           .Select(z => new CaracterizacaoVME()
            {
                Tipo = (eCaracterizacao)z.Tipo, Nome = z.Nome
            }).ToList();

            List <DependenciaLst> dependencias = _bus.CaracterizacaoConfig.Obter <List <DependenciaLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias);

            #region Não Cadastradas

            vm.CaracterizacoesNaoCadastradas.ForEach(x =>
            {
                ICaracterizacaoBus caracterizacaoBus = CaracterizacaoBusFactory.Criar(x.Tipo);
                if (caracterizacaoBus != null)
                {
                    x.PodeCopiar = cadastradasInterno.Exists(y => y.Tipo == x.Tipo) && caracterizacaoBus.PodeCopiar(empreendimento.InternoID);
                }

                x.PodeCadastrar         = User.IsInRole(String.Format("{0}Criar", x.Tipo.ToString()));
                x.ProjetoGeografico     = User.IsInRole("ProjetoGeograficoCriar");
                x.ProjetoGeoObrigatorio = dependencias.Exists(y =>
                                                              y.DependenteTipo == (int)x.Tipo &&
                                                              y.DependenciaTipo == (int)x.Tipo &&
                                                              y.TipoId == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico);

                x.ProjetoGeograficoId = (cadastradas.FirstOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao()).ProjetoRascunhoId;

                if (x.ProjetoGeograficoId <= 0)
                {
                    x.ProjetoGeograficoId = (cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao()).ProjetoId;
                }

                x.UrlCriar = Url.Action("Criar", x.Tipo.ToString());
            });

            #endregion

            #region Cadastradas

            vm.CaracterizacoesCadastradas.ForEach(x =>
            {
                if (User.IsInRole("ProjetoGeograficoEditar") || User.IsInRole("ProjetoGeograficoVisualizar"))
                {
                    x.ProjetoGeografico = true;
                }

                x.ProjetoGeograficoVisualizar = visualizar;
                x.PodeEditar     = User.IsInRole(String.Format("{0}Editar", x.Tipo.ToString()));
                x.PodeVisualizar = User.IsInRole(String.Format("{0}Visualizar", x.Tipo.ToString()));
                x.PodeExcluir    = (User.IsInRole(String.Format("{0}Excluir", x.Tipo.ToString())) && (x.Tipo == eCaracterizacao.UnidadeConsolidacao || x.Tipo == eCaracterizacao.UnidadeProducao));

                x.PodeCopiar   = cadastradasInterno.Exists(y => y.Tipo == x.Tipo);
                x.PodeAssociar = !caracterizacoesAssociadas.Exists(y => y.Tipo == x.Tipo);

                x.ProjetoGeograficoId = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo).ProjetoId;

                x.UrlEditar         = Url.Action("Editar", x.Tipo.ToString());
                x.UrlVisualizar     = Url.Action("Visualizar", x.Tipo.ToString());
                x.UrlExcluirConfirm = Url.Action("ExcluirConfirm", x.Tipo.ToString());
                x.UrlExcluir        = Url.Action("Excluir", x.Tipo.ToString());
            });

            #endregion

            #region Associadas

            vm.CaracterizacoesAssociadas.ForEach(x =>
            {
                if (User.IsInRole("ProjetoGeograficoVisualizar"))
                {
                    x.ProjetoGeografico           = true;
                    x.ProjetoGeograficoVisualizar = true;
                    x.ProjetoGeograficoId         = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo).ProjetoId;
                }

                x.PodeVisualizar = User.IsInRole(String.Format("{0}Visualizar", x.Tipo.ToString()));
                x.UrlVisualizar  = Url.Action("Visualizar", x.Tipo.ToString());
            });

            #endregion

            return(View("Caracterizacao", vm));
        }
Esempio n. 19
0
        public bool CopiarDadosCredenciado(int projetoDigitalID, BancoDeDados banco, BancoDeDados bancoCredenciado)
        {
            try
            {
                CaractCredBus.CaracterizacaoBus caracCredBus = new CaractCredBus.CaracterizacaoBus();
                ProjetoDigitalCredenciadoBus    projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();
                int empreendimentoID = projetoDigitalCredenciadoBus.Obter(projetoDigitalID, 0, null, null).EmpreendimentoId ?? 0;

                if (empreendimentoID < 1)
                {
                    return(false);
                }

                EmpreendimentoCaracterizacao empreendimento       = caracCredBus.ObterEmpreendimentoSimplificado(empreendimentoID);
                ProjetoGeograficoBus         projetoGeograficoBus = new ProjetoGeograficoBus();

                List <Dependencia> dependencias = projetoDigitalCredenciadoBus.ObterDependencias(projetoDigitalID);
                ICaracterizacaoBus caracterizacaoBus;
                GerenciadorTransacao.ObterIDAtual();

                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
                {
                    bancoDeDados.IniciarTransacao();

                    foreach (Dependencia item in dependencias.Where(x => x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico).ToList())
                    {
                        projetoGeograficoBus.CopiarDadosCredenciado(item, empreendimento.InternoID, bancoDeDados, bancoCredenciado);

                        if (!Validacao.EhValido)
                        {
                            break;
                        }
                    }

                    if (!Validacao.EhValido)
                    {
                        bancoDeDados.Rollback();
                        return(false);
                    }

                    foreach (Dependencia item in dependencias.Where(x => x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.Caracterizacao).ToList())
                    {
                        caracterizacaoBus = CaracterizacaoBusFactory.Criar((eCaracterizacao)item.DependenciaCaracterizacao);

                        if (caracterizacaoBus == null)
                        {
                            Validacao.Add(eTipoMensagem.Erro, item.DependenciaCaracterizacaoTexto + " Bus não criada");
                        }

                        if (!caracterizacaoBus.CopiarDadosCredenciado(item, empreendimento.InternoID, bancoDeDados, bancoCredenciado))
                        {
                            break;
                        }
                    }

                    if (!Validacao.EhValido)
                    {
                        bancoDeDados.Rollback();
                        return(false);
                    }

                    Validacao.Add(Mensagem.ProjetoDigital.CopiarCaracterizacao);
                    bancoDeDados.Commit();
                }

                return(true);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
                return(false);
            }
        }