예제 #1
0
        internal bool Enviar(Requerimento requerimento, ProjetoDigital projeto)
        {
            if (!EnviarBasicas(projeto))
            {
                return(false);
            }

            if (requerimento.Id <= 0)
            {
                Validacao.Add(Mensagem.ProjetoDigital.RequerimentoObrigatorio);
            }
            else if (requerimento.SituacaoId != (int)eRequerimentoSituacao.Finalizado)
            {
                Validacao.Add(Mensagem.ProjetoDigital.FinalizarSituacaoInvalida);
            }

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

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

            _requerimentoCredenciadoValidar.Finalizar(requerimento);

            FinalizarCaracterizacoes(projeto);

            return(Validacao.EhValido);
        }
        internal void Editar(ProjetoDigital projeto, BancoDeDados banco = null, bool gerarHistorico = false)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update {0}tab_projeto_digital r set r.etapa = :etapa, r.situacao = :situacao, 
				r.data_envio = null, r.empreendimento = :empreendimento, r.tid = :tid where r.id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", projeto.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("etapa", projeto.Etapa, DbType.Int32);
                comando.AdicionarParametroEntrada("situacao", projeto.Situacao, DbType.Int32);
                comando.AdicionarParametroEntrada("empreendimento", (projeto.EmpreendimentoId.GetValueOrDefault() > 0 ? projeto.EmpreendimentoId : null), DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                if (gerarHistorico)
                {
                    Historico.Gerar(projeto.Id, eHistoricoArtefato.projetodigital, eHistoricoAcao.atualizar, bancoDeDados);
                }

                bancoDeDados.Commit();
            }
        }
예제 #3
0
        internal bool AssociarDependencias(ProjetoDigital projetoDigital)
        {
            Dependencia caracterizacao = projetoDigital.Dependencias.FirstOrDefault(x => x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.Caracterizacao) ?? new Dependencia();

            List <Dependencia> dependencias = _busCaracterizacao.ObterDependencias(
                caracterizacao.DependenciaId,
                (eCaracterizacao)caracterizacao.DependenciaCaracterizacao,
                eCaracterizacaoDependenciaTipo.Caracterizacao);

            string retorno = _validarCaracterizacao.DependenciasAlteradas(
                projetoDigital.EmpreendimentoId.GetValueOrDefault(),
                caracterizacao.DependenciaCaracterizacao,
                eCaracterizacaoDependenciaTipo.Caracterizacao,
                dependencias);

            if (!string.IsNullOrEmpty(retorno))
            {
                Validacao.Add(Mensagem.ProjetoDigital.AssociadaProjetoDigitalCaracterizacaoInvalida);
            }
            else
            {
                if ((eCaracterizacao)caracterizacao.DependenciaCaracterizacao == eCaracterizacao.UnidadeProducao)
                {
                    ICaracterizacaoBus caracterizacaoBus = CaracterizacaoBusFactory.Criar(eCaracterizacao.UnidadeProducao);
                    caracterizacaoBus.ValidarAssociar(caracterizacao.DependenciaId, projetoDigital.Id);
                }
            }

            return(Validacao.EhValido);
        }
        public void Recusar(ProjetoDigital projeto, BancoDeDados banco = null)
        {
            try
            {
                if (!_validar.Recusar(projeto))
                {
                    return;
                }

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

                    if (_busProjetoDigitalCredenciado.Recusar(projeto, bancoDeDados))
                    {
                        _busProjetoDigitalCredenciado.ExcluirTemporario(projeto.Id);

                        bancoDeDados.Commit();
                    }

                    Validacao.Add(Mensagem.ProjetoDigital.RecusadoSucesso);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
        internal void CriarTemporario(ProjetoDigital projeto, BancoDeDados banco)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"insert into tmp_projeto_digital (
				id, tid, etapa_importacao, situacao_id, requerimento_id, requerimento_tid, empreendimento_id, 
				empreendimento_tid, data_criacao, data_envio, credenciado_id, credenciado_tid, data_execucao) 
				values 
				(:id, :tid, :etapa_importacao, :situacao_id, :requerimento_id, :requerimento_tid, :empreendimento_id, 
				:empreendimento_tid, :data_criacao, :data_envio, :credenciado_id, :credenciado_tid, sysdate)"                );

                comando.AdicionarParametroEntrada("id", projeto.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, projeto.Tid);
                comando.AdicionarParametroEntrada("etapa_importacao", (int)eProjetoDigitalEtapa.Requerimento, DbType.Int32);
                comando.AdicionarParametroEntrada("situacao_id", projeto.Situacao, DbType.Int32);
                comando.AdicionarParametroEntrada("requerimento_id", projeto.RequerimentoId, DbType.Int32);
                comando.AdicionarParametroEntrada("requerimento_tid", DbType.String, 36, projeto.RequerimentoTid);
                comando.AdicionarParametroEntrada("empreendimento_id", projeto.EmpreendimentoId, DbType.Int32);
                comando.AdicionarParametroEntrada("empreendimento_tid", DbType.String, 36, projeto.EmpreendimentoTid);
                comando.AdicionarParametroEntrada("credenciado_id", projeto.CredenciadoId, DbType.Int32);
                comando.AdicionarParametroEntrada("credenciado_tid", DbType.String, 36, projeto.CredenciadoTid);
                comando.AdicionarParametroEntrada("data_criacao", projeto.DataCriacao.Data, DbType.DateTime);
                comando.AdicionarParametroEntrada("data_envio", projeto.DataEnvio.Data, DbType.DateTime);

                bancoDeDados.ExecutarNonQuery(comando);

                bancoDeDados.Commit();
            }
        }
예제 #6
0
        public void Enviar(ProjetoDigital projeto)
        {
            try
            {
                projeto.Etapa = (int)eProjetoDigitalEtapa.ImprimirDocumentos;

                RequerimentoCredenciadoBus requerimentoCredenciadoBus = new RequerimentoCredenciadoBus();
                Requerimento requerimento = requerimentoCredenciadoBus.Obter(projeto.RequerimentoId);
                requerimento.ProjetoDigitalId = projeto.Id;

                if (_validar.Enviar(requerimento, projeto))
                {
                    projeto.Situacao = (int)eProjetoDigitalSituacao.AguardandoImportacao;
                    GerenciadorTransacao.ObterIDAtual();

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

                        _da.Enviar(projeto, bancoDeDados);

                        SalvarTemporario(projeto, bancoDeDados);

                        Validacao.Add(Mensagem.ProjetoDigital.Enviar);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
        public ProjetoDigital Obter(int id, BancoDeDados banco = null, string tid = null)
        {
            ProjetoDigital projeto = new ProjetoDigital();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaBanco))
            {
                #region Projeto Digital

                if (String.IsNullOrWhiteSpace(tid))
                {
                    projeto = Obter(idProjeto: id, banco: bancoDeDados);
                }
                else
                {
                    Comando comando = bancoDeDados.CriarComando(@"select count(r.id) existe from {0}tab_projeto_digital r where r.id = :id and r.tid = :tid", EsquemaBanco);

                    comando.AdicionarParametroEntrada("id", id, DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, tid);

                    if (Convert.ToBoolean(bancoDeDados.ExecutarScalar(comando)))
                    {
                        projeto = Obter(idProjeto: id, banco: bancoDeDados);
                    }
                    else
                    {
                        projeto = ObterHistorico(id, tid, bancoDeDados);
                    }
                }

                #endregion
            }

            return(projeto);
        }
예제 #8
0
        public ProjetoDigital AlterarEtapa(int projetoDigitalId, eProjetoDigitalEtapa etapa, BancoDeDados banco = null)
        {
            try
            {
                ProjetoDigital projetoDigital = new ProjetoDigital();

                GerenciadorTransacao.ObterIDAtual();
                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioCredenciado))
                {
                    bancoDeDados.IniciarTransacao();

                    projetoDigital = Obter(idProjeto: projetoDigitalId, banco: bancoDeDados);

                    if (projetoDigital != null && projetoDigital.Id > 0 && projetoDigital.Etapa != (int)etapa)
                    {
                        projetoDigital.Etapa = (int)etapa;

                        Salvar(projetoDigital, bancoDeDados);

                        bancoDeDados.Commit();
                    }
                }

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

            return(null);
        }
        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));
        }
        internal void Criar(ProjetoDigital projeto, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"insert into {0}tab_projeto_digital a (id, tid, etapa, situacao, requerimento, data_criacao, credenciado) 
				values ({0}seq_projeto_digital.nextval, :tid, :etapa, :situacao, :requerimento, sysdate, :credenciado) returning a.id into :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("etapa", (int)eProjetoDigitalEtapa.Requerimento, DbType.Int32);
                comando.AdicionarParametroEntrada("situacao", (int)eProjetoDigitalSituacao.EmElaboracao, DbType.Int32);
                comando.AdicionarParametroEntrada("requerimento", projeto.RequerimentoId, DbType.Int32);
                comando.AdicionarParametroEntrada("credenciado", projeto.CredenciadoId, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                projeto.Id = Convert.ToInt32(comando.ObterValorParametro("id"));

                Historico.Gerar(projeto.Id, eHistoricoArtefato.projetodigital, eHistoricoAcao.criar, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
        public ActionResult DocumentosGerados(int id)
        {
            ProjetoDigital             projetoDigital             = _bus.Obter(id);
            RequerimentoCredenciadoBus requerimentoCredenciadoBus = new RequerimentoCredenciadoBus();
            Requerimento requerimento = requerimentoCredenciadoBus.Obter(projetoDigital.RequerimentoId);

            ProjetoGeograficoBus projetoGeoBus = new ProjetoGeograficoBus();

            foreach (var item in projetoDigital.Dependencias)
            {
                if (item.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico)
                {
                    List <ArquivoProjeto> arquivos = projetoGeoBus.ObterArquivosHistorico(item.DependenciaId, item.DependenciaTid);
                    item.Id = (arquivos.SingleOrDefault(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.Croqui) ?? new ArquivoProjeto()).Id.GetValueOrDefault();
                }
                else
                {
                    item.Id = 0;
                }
            }

            DocumentosGeradosVM vm = new DocumentosGeradosVM();

            vm.MostrarTitulo = true;
            vm.CarregarDocumentos(requerimento, projetoDigital);

            return(PartialView("DocumentosGerados", vm));
        }
예제 #12
0
        public void AssociarDependencias(ProjetoDigital projetoDigital, BancoDeDados banco = null)
        {
            try
            {
                #region Configurar

                List <Caracterizacao> lista = new List <Caracterizacao>();
                lista.Add(new Caracterizacao()
                {
                    Tipo = (eCaracterizacao)projetoDigital.Dependencias.First().DependenciaCaracterizacao
                });

                CaracterizacaoBus caracterizacaoBus = new CaracterizacaoBus();
                lista = caracterizacaoBus.ObterCaracterizacoesAtuais(projetoDigital.EmpreendimentoId.GetValueOrDefault(), lista);

                Caracterizacao aux = lista.First();
                projetoDigital.Dependencias.Clear();

                projetoDigital.Dependencias.Add(new Dependencia()
                {
                    DependenciaTipo           = (int)eCaracterizacaoDependenciaTipo.Caracterizacao,
                    DependenciaCaracterizacao = (int)aux.Tipo,
                    DependenciaId             = aux.Id,
                    DependenciaTid            = aux.Tid
                });

                if (aux.ProjetoId > 0)
                {
                    projetoDigital.Dependencias.Add(new Dependencia()
                    {
                        DependenciaTipo           = (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico,
                        DependenciaCaracterizacao = (int)aux.Tipo,
                        DependenciaId             = aux.ProjetoId,
                        DependenciaTid            = aux.ProjetoTid
                    });
                }

                #endregion

                if (_validar.AssociarDependencias(projetoDigital))
                {
                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        _da.AssociarDependencias(projetoDigital, bancoDeDados);

                        AlterarEtapa(projetoDigital.Id, eProjetoDigitalEtapa.Caracterizacao, bancoDeDados);

                        Validacao.Add(Mensagem.ProjetoDigital.AssociadaProjetoDigital);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
예제 #13
0
        public ProjetoDigital Salvar(ProjetoDigital projeto, BancoDeDados banco, bool gerarHistorico = false)
        {
            try
            {
                projeto.Situacao      = (int)eProjetoDigitalSituacao.EmElaboracao;
                projeto.CredenciadoId = User.FuncionarioId;

                if (_validar.Salvar(projeto))
                {
                    projeto.CredenciadoId = User.FuncionarioId;

                    GerenciadorTransacao.ObterIDAtual();

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

                        _da.Salvar(projeto, bancoDeDados, gerarHistorico);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(projeto);
        }
예제 #14
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));
        }
예제 #15
0
        public void Excluir(int projetoId)
        {
            try
            {
                ProjetoDigital projeto = Obter(projetoId);

                if (_validar.Excluir(projeto))
                {
                    GerenciadorTransacao.ObterIDAtual();

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

                        _da.Excluir(projetoId, bancoDeDados);

                        RequerimentoCredenciadoBus requerimentoCredenciadoBus = new RequerimentoCredenciadoBus();

                        requerimentoCredenciadoBus.Excluir(projeto.RequerimentoId, bancoDeDados);

                        bancoDeDados.Commit();

                        Validacao.Add(Mensagem.ProjetoDigital.Excluir);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
        internal void DesassociarDependencias(ProjetoDigital projeto, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando;

                if (projeto.EmpreendimentoId > 0)
                {
                    comando = bancoDeDados.CriarComando(@"delete from {0}tab_proj_digital_dependencias d 
                    where exists (select 1 from {0}tab_projeto_digital p where p.id = d.projeto_digital_id and p.situacao in (1, 3))
					and d.projeto_digital_id in (select p.id from {0}tab_projeto_digital p where p.empreendimento = :empreendimento) "                    , EsquemaBanco);
                    comando.AdicionarParametroEntrada("empreendimento", projeto.EmpreendimentoId, DbType.Int32);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"delete from {0}tab_proj_digital_dependencias d
                    where exists (select 1 from {0}tab_projeto_digital p where p.id = d.projeto_digital_id and p.situacao in (1, 3))", EsquemaBanco);
                }

                comando.DbCommand.CommandText += comando.FiltroAnd("d.projeto_digital_id", "projeto_digital_id", projeto.Id);

                if (projeto.Dependencias != null && projeto.Dependencias.Count > 0)
                {
                    comando.DbCommand.CommandText += comando.FiltroAnd("d.dependencia_caracterizacao", "dependencia_caracterizacao", projeto.Dependencias.First().DependenciaCaracterizacao);
                }

                bancoDeDados.ExecutarNonQuery(comando);
                bancoDeDados.Commit();
            }
        }
예제 #17
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);
        }
예제 #18
0
        internal void AlterarSituacao(int requerimentoId, eProjetoDigitalSituacao eProjetoDigitalSituacao, BancoDeDados bancoCredenciado = null)
        {
            ProjetoDigital projetoDigital = _busProjetoDigitalCredenciado.Obter(idRequerimento: requerimentoId, bancoCredenciado: bancoCredenciado);

            projetoDigital.Situacao = (int)eProjetoDigitalSituacao;

            _busProjetoDigitalCredenciado.AlterarSituacao(projetoDigital, banco: bancoCredenciado);
        }
        public ActionResult ImprimirDocumentos(ProjetoDigital projeto)
        {
            _bus.ImprimirDocumentos(projeto);

            string urlRedirecionar = Url.Action("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { acaoId = projeto.Id }));

            return(Json(new { EhValido = Validacao.EhValido, Msg = Validacao.Erros, UrlRedirecionar = urlRedirecionar }, JsonRequestBehavior.AllowGet));
        }
예제 #20
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);
            }
        }
예제 #21
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);
        }
        public ActionResult NotificacaoCorrecao(int id)
        {
            ProjetoDigital   projetoDigital = _bus.Obter(id);
            ProjetoDigitalVM vm             = new ProjetoDigitalVM();

            vm.ProjetoDigital = projetoDigital;

            return(PartialView("NotificacaoCorrecao", vm));
        }
예제 #23
0
        public bool EmPosseCredenciado(ProjetoDigital projeto)
        {
            if (projeto == null)
            {
                return(true);
            }

            return(projeto.CredenciadoId == User.EtramiteIdentity.FuncionarioId);
        }
예제 #24
0
        internal ProjetoDigital Obter(int idProjeto = 0, int idRequerimento = 0, BancoDeDados bancoCredenciado = null)
        {
            ProjetoDigital projeto = new ProjetoDigital();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(bancoCredenciado, EsquemaBanco))
            {
                bancoDeDados.IniciarTransacao();

                #region Projeto Digital

                Comando comando = bancoDeDados.CriarComando(@"select p.id, p.tid, p.etapa, p.situacao, l.texto situacao_texto, p.requerimento, p.empreendimento, 
				p.data_criacao, p.data_envio, p.credenciado, p.motivo_recusa from {0}tab_projeto_digital p, {0}lov_projeto_digital_situacao l where p.situacao = l.id"                , EsquemaBanco);

                if (idRequerimento > 0)
                {
                    comando.DbCommand.CommandText += comando.FiltroAnd("p.requerimento", "requerimento", idRequerimento);
                }
                else
                {
                    comando.DbCommand.CommandText += comando.FiltroAnd("p.id", "id", idProjeto);
                }

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        projeto.Id               = reader.GetValue <int>("id");
                        projeto.Tid              = reader.GetValue <string>("tid");
                        projeto.Situacao         = reader.GetValue <int>("situacao");
                        projeto.SituacaoTexto    = reader.GetValue <string>("situacao_texto");
                        projeto.Etapa            = reader.GetValue <int>("etapa");
                        projeto.RequerimentoId   = reader.GetValue <int>("requerimento");
                        projeto.EmpreendimentoId = reader.GetValue <int>("empreendimento");
                        projeto.DataCriacao.Data = reader.GetValue <DateTime>("data_criacao");
                        projeto.DataEnvio.Data   = reader.GetValue <DateTime>("data_envio");
                        projeto.CredenciadoId    = reader.GetValue <int>("credenciado");
                        projeto.MotivoRecusa     = reader.GetValue <String>("motivo_recusa");
                    }

                    reader.Close();
                }

                #endregion

                #region Dependencias

                if (projeto.Id > 0)
                {
                    projeto.Dependencias = ObterDependencias(projeto.Id, bancoCredenciado);
                }

                #endregion
            }

            return(projeto);
        }
        public ActionResult ExcluirConfirm(int id)
        {
            ProjetoDigital projetoDigital = _bus.Obter(id);
            ConfirmarVM    vm             = new ConfirmarVM();

            vm.Id       = id;
            vm.Mensagem = Mensagem.ProjetoDigital.MensagemExcluir(projetoDigital.RequerimentoId.ToString());
            vm.Titulo   = "Excluir Projeto Digital";
            return(PartialView("Confirmar", vm));
        }
        public ActionResult CancelarEnvioConfirm(int id)
        {
            ProjetoDigital projetoDigital = _bus.Obter(id);
            ConfirmarVM    vm             = new ConfirmarVM();

            vm.Id       = id;
            vm.Mensagem = Mensagem.ProjetoDigital.MensagemCancelarEnvio(projetoDigital.RequerimentoId.ToString());
            vm.Titulo   = "Confirmação do cancelamento";
            return(PartialView("Confirmar", vm));
        }
예제 #27
0
        public bool Salvar(ProjetoDigital projeto)
        {
            if (projeto.RequerimentoId <= 0)
            {
                Validacao.Add(Mensagem.ProjetoDigital.RequerimentoObrigatorio);
                return(false);
            }

            return(Validacao.EhValido);
        }
예제 #28
0
 public Requerimento()
 {
     Empreendimento = new Empreendimento();
     ProjetoDigital = new ProjetoDigital();
     Roteiros       = new List <Roteiro>();
     Atividades     = new List <Atividade>();
     Responsaveis   = new List <ResponsavelTecnico>();
     Pessoas        = new List <Pessoa>();
     Interessado    = new Pessoa();
 }
예제 #29
0
        public void AssociarProjetoDigital(ProjetoDigital projetoDigital, List <Lista> atividades)
        {
            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);
            }

            if (projetoDigital.EmpreendimentoId < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoObrigatorio);
            }

            if (atividades.Count < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.RequerimentoNaoPossuiAtividadeCAR);
            }

            #region  Solitação de CAR

            /*EmpreendimentoCaracterizacao empreendimento = _busCaracterizacao.ObterEmpreendimentoSimplificado(projetoDigital.EmpreendimentoId.GetValueOrDefault());
             * if (!EmpreendimentoSolicitacaoCAR(empreendimento))
             * {
             *      return;
             * }*/

            #endregion  Solitação de CAR

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

            if (projetoDigital.Dependencias.Count(x => x.DependenciaCaracterizacao == (int)eCaracterizacao.Dominialidade) < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.ProjetoDigitalNaoPossuiCaracterizacaoDominialidade);
                return;
            }

            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);
                    }
                }
            });
        }
예제 #30
0
        public void CancelarEnvio(int projetoId)
        {
            try
            {
                ProjetoDigital projeto = Obter(projetoId);

                if (_validar.CancelarEnvio(projeto))
                {
                    projeto.Situacao = (int)eProjetoDigitalSituacao.EmElaboracao;
                    projeto.Etapa    = (int)eProjetoDigitalEtapa.Caracterizacao;

                    GerenciadorTransacao.ObterIDAtual();

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

                        int solicitacao = new RequerimentoCredenciadoDa().PossuiSolicitacaoCARValidaSuspensaPendente(projeto.RequerimentoId);
                        if (solicitacao > 0)
                        {
                            new CARSolicitacaoBus().AlterarSituacao(
                                new CARSolicitacao()
                            {
                                Id = solicitacao
                            },
                                new CARSolicitacao()
                            {
                                SituacaoId = (int)eCARSolicitacaoSituacao.Invalido
                            },
                                bancoDeDados);
                        }

                        TituloDeclaratorioBus tituloDeclaratorioBus = new TituloDeclaratorioBus();
                        tituloDeclaratorioBus.AcerrarTitulo(projeto.RequerimentoId);
                        if (!Validacao.EhValido)
                        {
                            bancoDeDados.Rollback();
                            return;
                        }

                        _da.CancelarEnvio(projeto, bancoDeDados);

                        ExcluirTemporario(projeto.Id);

                        Validacao.Add(Mensagem.ProjetoDigital.CancelarEnvio);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }