예제 #1
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);
            }
        }
        public List <Caracterizacao> Dependentes(int empreendimentoId, int projetoDigitalId, eCaracterizacao caracterizacaoTipo, eCaracterizacaoDependenciaTipo tipo, BancoDeDados banco = null)
        {
            List <Caracterizacao> lista = new List <Caracterizacao>();

            try
            {
                List <DependenciaLst> dependentes = _caracterizacaoConfig.Obter <List <DependenciaLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias);
                dependentes = dependentes.Where(x => x.DependenciaTipo == (int)caracterizacaoTipo && x.TipoId == (int)tipo).ToList();

                List <Caracterizacao> caracterizacoes = _da.ObterCaracterizacoes(empreendimentoId, projetoDigitalId, banco);
                caracterizacoes = caracterizacoes.Where(x => x.Id > 0 || x.ProjetoId > 0 || x.ProjetoRascunhoId > 0 || x.DscLicAtividadeId > 0).ToList();

                Caracterizacao caracterizacao = null;

                foreach (DependenciaLst dependente in dependentes)
                {
                    caracterizacao = caracterizacoes.SingleOrDefault(y => (int)y.Tipo == dependente.DependenteTipo) ?? new Caracterizacao();

                    if (caracterizacao.Id > 0 || (caracterizacao.ProjetoId > 0 || caracterizacao.ProjetoRascunhoId > 0 || caracterizacao.DscLicAtividadeId > 0))
                    {
                        lista.Add(caracterizacao);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
            return(lista.Distinct().ToList());
        }
예제 #3
0
        public string CaracterizacoesCadastradasDesatualizadas(int empreendimentoID, List <Caracterizacao> caracterizacoesCadastradas, List <Caracterizacao> caracterizacoesInterno, out List <int> desatualizadas)
        {
            List <Caracterizacao> lista = new List <Caracterizacao>();
            List <Caracterizacao> caracterizacoesCredenciado = _da.ObterCaracterizacoesInternoAtuais(empreendimentoID, caracterizacoesCadastradas);

            foreach (var item in caracterizacoesCredenciado)
            {
                Caracterizacao caracterizacao = caracterizacoesInterno.SingleOrDefault(x => x.Tipo == item.Tipo);

                if (item.Id > 0 && caracterizacao != null && (item.Tid != caracterizacao.Tid || item.ProjetoTid != caracterizacao.ProjetoTid))
                {
                    lista.Add(item);
                }
            }

            desatualizadas = new List <int>();
            desatualizadas.AddRange(lista.Select(x => (int)x.Tipo));

            if (lista.Count > 0)
            {
                return(Mensagem.Caracterizacao.CopiarCaracterizacaoDesatualizada(lista.Select(x => x.Nome).ToList()).Texto);
            }

            return(string.Empty);
        }
예제 #4
0
        public bool Existe(eCaracterizacao caracterizacaoTipo, int empreendimentoId, int projetoDigitalId)
        {
            List <Caracterizacao> caracterizacoes = _da.ObterCaracterizacoes(empreendimentoId, projetoDigitalId);

            Caracterizacao caracterizacao = caracterizacoes.SingleOrDefault(x => x.Tipo == caracterizacaoTipo);

            if (caracterizacao.Id <= 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.CaracterizacaoInexistente(caracterizacao.Nome));

                return(false);
            }

            return(true);
        }
예제 #5
0
        public List <Caracterizacao> ObterCaracterizacoesCAR(Int64 empreendimentoCod, BancoDeDados banco = null)
        {
            List <Caracterizacao> lista = new List <Caracterizacao>();
            String select = String.Empty;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
						SELECT 22 tipo, 'Cadastro Ambiental Rural' tipo_texto, CR.ID caracterizacao_id, CR.TID caracterizacao_tid  
                            FROM TAB_EMPREENDIMENTO E
                                INNER JOIN CRT_CAD_AMBIENTAL_RURAL CR ON CR.EMPREENDIMENTO = E.ID 
                            WHERE E.CODIGO = :empreendimento");

                comando.AdicionarParametroEntrada("empreendimento", empreendimentoCod, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    Caracterizacao caracterizacao = null;

                    while (reader.Read())
                    {
                        caracterizacao = new Caracterizacao();

                        if (reader["tipo"] != null && !Convert.IsDBNull(reader["tipo"]))
                        {
                            caracterizacao.Tipo = (eCaracterizacao)Convert.ToInt32(reader["tipo"]);
                            caracterizacao.Nome = reader["tipo_texto"].ToString();
                        }

                        if (reader["caracterizacao_id"] != null && !Convert.IsDBNull(reader["caracterizacao_id"]))
                        {
                            caracterizacao.Id  = Convert.ToInt32(reader["caracterizacao_id"]);
                            caracterizacao.Tid = reader["caracterizacao_tid"].ToString();
                        }

                        lista.Add(caracterizacao);
                    }

                    reader.Close();
                }
            }

            return(lista);
        }
        public bool Dependencias(int empreendimentoId, int projetoDigitalId, int caracterizacaoTipo, List <Caracterizacao> caracterizacoes = null, bool isDependencia = false)
        {
            List <DependenciaLst> dependencias = _caracterizacaoConfig.Obter <List <DependenciaLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias);

            if (dependencias == null || dependencias.Count <= 0)
            {
                return(true);
            }

            if (caracterizacoes == null)
            {
                caracterizacoes = _caracterizacaoDa.ObterCaracterizacoes(empreendimentoId, projetoDigitalId);
            }

            List <CaracterizacaoLst> caracterizacoesCache = _caracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes);

            dependencias = dependencias.Where(x => x.DependenteTipo == caracterizacaoTipo && x.TipoDetentorId == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico).ToList();
            string caracterizacaoTexto = caracterizacoesCache.SingleOrDefault(x => x.Id == caracterizacaoTipo).Texto;

            Caracterizacao caracterizacao = null;

            foreach (DependenciaLst dependencia in dependencias)
            {
                caracterizacao = caracterizacoes.SingleOrDefault(y => (int)y.Tipo == dependencia.DependenciaTipo) ?? new Caracterizacao();

                if (caracterizacao.ProjetoId <= 0)
                {
                    Validacao.Add(Mensagem.Caracterizacao.DependenciasProjetoGeoSalvar(caracterizacaoTexto, true, caracterizacoesCache.SingleOrDefault(x => x.Id == dependencia.DependenciaTipo).Texto));
                    continue;
                }

                if (caracterizacaoTipo != (int)caracterizacao.Tipo && _da.ObterProjetoGeografico(caracterizacao.ProjetoId).Tid != caracterizacao.ProjetoTid)
                {
                    Validacao.Add(Mensagem.Caracterizacao.DependenciasProjetoGeoSalvar(caracterizacaoTexto, true, caracterizacoesCache.SingleOrDefault(x => x.Id == dependencia.DependenciaTipo).Texto));
                    continue;
                }
            }

            return(Validacao.EhValido);
        }
 public void Dependencias(Caracterizacao caracterizacao, BancoDeDados banco = null)
 {
     _da.Dependencias(caracterizacao, banco);
 }
예제 #8
0
        public ActionResult Index(int id)
        {
            EmpreendimentoCaracterizacao empreendimento = _bus.ObterEmpreendimentoSimplificado(id);

            if (empreendimento.Id == 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoNaoEncontrado);
                return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer()));
            }

            CaracterizacaoVM vm = new CaracterizacaoVM(empreendimento);

            List <CaracterizacaoLst> caracterizacoes = _bus.CaracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes);
            List <ProjetoGeografico> projetos        = _bus.ObterProjetosEmpreendimento(id);

            if (!_bus.ValidarAcessarTela(caracterizacoes))
            {
                return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer()));
            }

            List <Caracterizacao> cadastradas = _bus.ObterCaracterizacoesEmpreendimento(id) ?? new List <Caracterizacao>();

            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.Any(y => y.Id > 0 && (int)y.Tipo == x.Id))
                                            .Select(z => new CaracterizacaoVME()
            {
                Tipo = (eCaracterizacao)z.Id, Nome = z.Texto
            }).ToList();

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

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

                x.DscLicAtividadeObrigatorio = dependencias.Exists(y =>
                                                                   y.DependenteTipo == (int)x.Tipo &&
                                                                   y.DependenciaTipo == (int)x.Tipo &&
                                                                   y.TipoId == (int)eCaracterizacaoDependenciaTipo.DescricaoLicenciamentoAtividade);

                Caracterizacao cadastrada = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao();
                x.ProjetoGeograficoId     = cadastrada.ProjetoRascunhoId;
                x.DscLicAtividadeId       = cadastrada.DscLicAtividadeId;

                if (x.ProjetoGeograficoId <= 0)
                {
                    x.ProjetoGeograficoId = cadastrada.ProjetoId;
                }

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

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

                x.ProjetoGeograficoVisualizar =
                    User.IsInRole(ePermissao.ProjetoGeograficoVisualizar.ToString()) &&
                    !User.IsInRole(ePermissao.ProjetoGeograficoCriar.ToString()) &&
                    !User.IsInRole(ePermissao.ProjetoGeograficoEditar.ToString());

                if (User.IsInRole("DescricaoLicenciamentoAtividadeEditar") || User.IsInRole("DescricaoLicenciamentoAtividadeVisualizar"))
                {
                    x.DscLicAtividade = true;
                }

                x.DscLicAtividadeVisualizar =
                    User.IsInRole(ePermissao.DescricaoLicenciamentoAtividadeVisualizar.ToString()) &&
                    !User.IsInRole(ePermissao.DescricaoLicenciamentoAtividadeCriar.ToString()) &&
                    !User.IsInRole(ePermissao.DescricaoLicenciamentoAtividadeEditar.ToString());

                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()));

                Caracterizacao cadastrada = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao();
                x.ProjetoGeograficoId     = cadastrada.ProjetoId;
                x.DscLicAtividadeId       = cadastrada.DscLicAtividadeId;

                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());
            });

            #region CAR

            vm.CaracterizacoesCadastradas.Where(x => x.Tipo == eCaracterizacao.CadastroAmbientalRural).ToList().ForEach(x =>
            {
                x.ProjetoGeografico           = false;
                x.ProjetoGeograficoVisualizar = false;
                x.ProjetoGeograficoId         = 0;

                x.DscLicAtividade           = false;
                x.DscLicAtividadeVisualizar = false;
                x.DscLicAtividadeId         = 0;
            });

            #endregion

            return(View("Caracterizacao", vm));
        }
예제 #9
0
        public bool Dependencias(int empreendimentoId, int projetoDigitalId, int caracterizacaoTipo, List <Caracterizacao> caracterizacoes = null, bool isDependencia = false, bool validarProjetoGeoProprio = true, bool validarDscLicAtividadeProprio = true)
        {
            try
            {
                List <DependenciaLst> dependencias = _caracterizacaoConfig.Obter <List <DependenciaLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias);

                if (dependencias == null || dependencias.Count <= 0)
                {
                    return(true);
                }

                if (caracterizacoes == null)
                {
                    caracterizacoes = _da.ObterCaracterizacoes(empreendimentoId, projetoDigitalId);
                }

                List <CaracterizacaoLst> caracterizacoesCache = _caracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes);
                string caracterizacaoTexto = caracterizacoesCache.SingleOrDefault(x => x.Id == caracterizacaoTipo).Texto;
                dependencias = dependencias.Where(x => x.DependenteTipo == caracterizacaoTipo && x.TipoDetentorId == (int)eCaracterizacaoDependenciaTipo.Caracterizacao).ToList();

                Caracterizacao caracterizacao = null;

                foreach (DependenciaLst dependencia in dependencias)
                {
                    caracterizacao = caracterizacoes.SingleOrDefault(y => (int)y.Tipo == dependencia.DependenciaTipo) ?? new Caracterizacao();

                    switch (dependencia.TipoId)
                    {
                    case (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico:
                        if (dependencia.DependenciaTipo == caracterizacaoTipo)
                        {
                            if (!validarProjetoGeoProprio)
                            {
                                continue;
                            }

                            if (caracterizacao.ProjetoId > 0)
                            {
                                if (!string.IsNullOrEmpty(DependenciasAlteradas(empreendimentoId, caracterizacaoTipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico,
                                                                                _da.ObterDependencias(caracterizacao.ProjetoId, (eCaracterizacao)caracterizacaoTipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico))))
                                {
                                    Validacao.Add(Mensagem.Caracterizacao.DependenciaDesatualizada(true, caracterizacaoTexto));
                                    continue;
                                }
                            }
                        }

                        if (caracterizacao.ProjetoId <= 0)
                        {
                            Validacao.Add(Mensagem.Caracterizacao.DependenciasProjetoGeoSalvar(caracterizacaoTexto, false, caracterizacoesCache.SingleOrDefault(x => x.Id == dependencia.DependenciaTipo).Texto));
                            continue;
                        }
                        break;

                    case (int)eCaracterizacaoDependenciaTipo.Caracterizacao:
                        if (caracterizacao.Id <= 0)
                        {
                            Validacao.Add(Mensagem.Caracterizacao.DependenciasCaracterizacaoSalvar(caracterizacaoTexto, false, caracterizacoesCache.SingleOrDefault(x => x.Id == dependencia.DependenciaTipo).Texto));
                            continue;
                        }
                        else if (validarProjetoGeoProprio || validarDscLicAtividadeProprio)
                        {
                            if (!string.IsNullOrEmpty(DependenciasAlteradas(empreendimentoId, dependencia.DependenciaTipo, eCaracterizacaoDependenciaTipo.Caracterizacao,
                                                                            _da.ObterDependencias(caracterizacao.Id, (eCaracterizacao)dependencia.DependenciaTipo, eCaracterizacaoDependenciaTipo.Caracterizacao))))
                            {
                                Validacao.Add(Mensagem.Caracterizacao.DependenciaDesatualizada(false, caracterizacoesCache.SingleOrDefault(x => x.Id == dependencia.DependenciaTipo).Texto));
                                continue;
                            }
                        }

                        Dependencias(empreendimentoId, projetoDigitalId, (int)caracterizacao.Tipo, caracterizacoes, true);
                        break;

                    case (int)eCaracterizacaoDependenciaTipo.DescricaoLicenciamentoAtividade:

                        if (!validarDscLicAtividadeProprio)
                        {
                            if (!string.IsNullOrEmpty(DependenciasAlteradas(empreendimentoId, dependencia.DependenciaTipo, eCaracterizacaoDependenciaTipo.Caracterizacao,
                                                                            _da.ObterDependencias(caracterizacao.Id, (eCaracterizacao)dependencia.DependenciaTipo, eCaracterizacaoDependenciaTipo.Caracterizacao))))
                            {
                                Validacao.Add(Mensagem.Caracterizacao.DependenciaDesatualizada(false, caracterizacoesCache.SingleOrDefault(x => x.Id == dependencia.DependenciaTipo).Texto));
                                continue;
                            }
                        }

                        break;
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
            return(Validacao.EhValido);
        }
        public bool ValidarTituloGenericoAtividadeCaracterizacao(IEspecificidade especificidade, eEspecificidade tipo = eEspecificidade.Nulo)
        {
            CaracterizacaoBus              busCaracterizacao     = new CaracterizacaoBus();
            GerenciadorConfiguracao        configAtividade       = new GerenciadorConfiguracao(new ConfiguracaoAtividade());
            GerenciadorConfiguracao        configCaracterizacao  = new GerenciadorConfiguracao(new ConfiguracaoCaracterizacao());
            List <AtividadeCaracterizacao> lstAtivCaract         = configAtividade.Obter <List <AtividadeCaracterizacao> >(ConfiguracaoAtividade.KeyAtividadesCaracterizacoes);
            List <Caracterizacao>          lstCaracterizacoes    = busCaracterizacao.ObterCaracterizacoesEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault());
            List <CaracterizacaoLst>       lstCnfCaracterizacoes = configCaracterizacao.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes);
            //List<DependenciaLst> lstCnfDependencias = configCaracterizacao.Obter<List<DependenciaLst>>(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias);
            EspecificidadeBusBase _busEspBase = new EspecificidadeBusBase();

            foreach (var item in especificidade.Atividades)
            {
                if (item.Id == 0)
                {
                    continue;
                }

                var ativCaract = lstAtivCaract.FirstOrDefault(x => x.AtividadeId == item.Id);

                if (ativCaract == null || ativCaract.AtividadeId != item.Id || !ativCaract.IsTituloGenerico)
                {
                    EspecificidadeDa _daEsp = new EspecificidadeDa();
                    item.NomeAtividade = _daEsp.ObterAtividadeNome(item.Id);
                    Validacao.Add(Mensagem.Especificidade.AtividadeNaoConfiguradaNaAtividadeCaracte(item.NomeAtividade, especificidade.Titulo.ModeloSigla));
                    continue;
                }

                Caracterizacao     caracterizacao     = lstCaracterizacoes.Find(x => x.Tipo == (eCaracterizacao)ativCaract.CaracterizacaoTipoId);
                CaracterizacaoLst  caracterizacaoTipo = lstCnfCaracterizacoes.Find(x => x.Id == ativCaract.CaracterizacaoTipoId);
                ICaracterizacaoBus busCaract          = CaracterizacaoBusFactory.Criar(caracterizacao.Tipo);

                if (busCaract == null)
                {
                    throw new Exception("CaracterizacaoBusFactory não implementada para o tipo " + caracterizacaoTipo.Texto);
                }

                List <int> atividadesCaract = busCaract.ObterAtividadesCaracterizacao(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault());

                if (atividadesCaract == null || atividadesCaract.Count == 0)
                {
                    Validacao.Add(Mensagem.Especificidade.CaracterizacaoNaoPreenchida(caracterizacaoTipo.Texto));
                    continue;
                }

                if (!atividadesCaract.Exists(x => x == item.Id))
                {
                    Validacao.Add(Mensagem.Especificidade.AtividadeDiferenteCaracterizacao(caracterizacaoTipo.Texto));
                    continue;
                }

                List <Dependencia> lstDependenciaAteradas = busCaracterizacao.ObterDependenciasAlteradas(
                    especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(),
                    caracterizacao.Id,
                    (eCaracterizacao)caracterizacaoTipo.Id,
                    eCaracterizacaoDependenciaTipo.Caracterizacao);

                if (lstDependenciaAteradas != null && lstDependenciaAteradas.Count > 0)
                {
                    Validacao.Add(Mensagem.Especificidade.CaracterizacaoDependencias(caracterizacaoTipo.Texto));

                    /*Validacao.Add(Mensagem.Especificidade.CaracterizacaoDependencias(String.Join(", ", lstDependenciaAteradas.Select(x =>
                     *      String.Format("{0} - {1}",
                     *      lstCnfDependencias.Single(y => y.Id == x.DependenciaTipo).TipoTexto,
                     *      lstCnfCaracterizacoes.Single(y => y.Id == x.DependenciaCaracterizacao).Texto)
                     * ).ToArray())));*/
                }
            }

            switch (tipo)
            {
            case eEspecificidade.LicencaAmbientalRegularizacao:
            case eEspecificidade.LicencaAmbientalUnica:
            case eEspecificidade.LicencaSimplificada:
            case eEspecificidade.LicencaInstalacao:
            case eEspecificidade.LicencaOperacao:
            case eEspecificidade.LicencaPrevia:
                if (especificidade.Atividades.Count > 0)
                {
                    especificidade.AtividadeCaractTipo =
                        (eAtividadeCodigo)ConfiguracaoAtividade.ObterCodigo(especificidade.Atividades[0].Id);
                }

                switch (especificidade.AtividadeCaractTipo)
                {
                case eAtividadeCodigo.Barragem:
                    var configEspAtivCaract = _busEspBase.GetConfigAtivEspCaracterizacao((int)tipo);
                    var list = configEspAtivCaract.GetListValue <int>("Atividades");

                    if (especificidade is ILicenca && list.Where(x => x == (int)eAtividadeCodigo.Barragem).ToList().Count > 0)
                    {
                        _validarLicenca.Validar(especificidade as ILicenca);
                    }

                    break;
                }
                break;
            }
            return(Validacao.EhValido);
        }
        public List <Caracterizacao> ObterCaracterizacoesAtuais(int empreendimento, List <CaracterizacaoLst> caracterizacoes, BancoDeDados banco = null)
        {
            List <Caracterizacao> lista = new List <Caracterizacao>();
            String select = String.Empty;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Lista das caracterizações

                Comando comando = bancoDeDados.CriarComando(@"select 'select ' || t.id || ' tipo, c.id caracterizacao_id, c.tid caracterizacao_tid from {0}' ||
				t.tabela || ' c where c.empreendimento = :empreendimento union all ' resultado from {0}lov_caracterizacao_tipo t "                , EsquemaBanco);

                comando.DbCommand.CommandText += comando.AdicionarIn("where", "t.id", DbType.Int32, caracterizacoes.Select(x => (int)x.Id).ToList());

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        select += reader.GetValue <string>("resultado");
                    }

                    reader.Close();
                }

                if (!string.IsNullOrEmpty(select))
                {
                    comando = bancoDeDados.CriarComando(@"
					select lc.id tipo, lc.texto tipo_texto, c.caracterizacao_id, c.caracterizacao_tid, pg.id projeto_id, pg.tid projeto_tid
					from {0}lov_caracterizacao_tipo lc, ("                     + select.Substring(0, select.Length - 10) + @") c,
						(select p.id, p.tid, p.empreendimento, p.caracterizacao from {0}crt_projeto_geo p where p.empreendimento = :empreendimento) pg
					where lc.id = pg.caracterizacao(+) and lc.id = c.tipo order by lc.id"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        Caracterizacao caracterizacao = null;

                        while (reader.Read())
                        {
                            caracterizacao = new Caracterizacao();

                            caracterizacao.Tipo       = (eCaracterizacao)reader.GetValue <int>("tipo");
                            caracterizacao.Nome       = reader.GetValue <string>("tipo_texto");
                            caracterizacao.Id         = reader.GetValue <int>("caracterizacao_id");
                            caracterizacao.Tid        = reader.GetValue <string>("caracterizacao_tid");
                            caracterizacao.ProjetoId  = reader.GetValue <int>("projeto_id");
                            caracterizacao.ProjetoTid = reader.GetValue <string>("projeto_tid");

                            lista.Add(caracterizacao);
                        }

                        reader.Close();
                    }
                }

                #endregion
            }

            return(lista);
        }
예제 #12
0
        internal void Dependencias(Caracterizacao caracterizacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Dependências da caracterização

                Comando comando = bancoDeDados.CriarComando("delete from {0}crt_dependencia c ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where c.dependente_tipo = :dependente_tipo and c.dependente_caracterizacao = :dependente_caracterizacao and c.dependente_id = :dependente_id {0}",
                                                               comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.Dependencias.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("dependente_tipo", (int)caracterizacao.DependenteTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("dependente_caracterizacao", (int)caracterizacao.Tipo, DbType.Int32);
                comando.AdicionarParametroEntrada("dependente_id", caracterizacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                if (caracterizacao.Dependencias != null && caracterizacao.Dependencias.Count > 0)
                {
                    foreach (Dependencia item in caracterizacao.Dependencias)
                    {
                        if (item.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update {0}crt_dependencia d set d.dependencia_tipo = :dependencia_tipo, d.dependente_caracterizacao = :dependente_caracterizacao,
							d.dependencia_id = :dependencia_id, d.dependencia_tid = :dependencia_tid, d.tid = :tid where d.id = :id"                            , EsquemaBanco);
                            comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"insert into {0}crt_dependencia d (id, dependente_tipo, dependente_caracterizacao, dependente_id, dependencia_tipo,
							dependencia_caracterizacao, dependencia_id, dependencia_tid, tid) values ({0}seq_crt_dependencia.nextval, :dependente_tipo, :dependente_caracterizacao,
							:dependente_id, :dependencia_tipo, :dependencia_caracterizacao, :dependencia_id, :dependencia_tid, :tid) returning id into :id_dep"                            , EsquemaBanco);

                            comando.AdicionarParametroEntrada("dependente_tipo", (int)caracterizacao.DependenteTipo, DbType.Int32);
                            comando.AdicionarParametroEntrada("dependente_caracterizacao", (int)caracterizacao.Tipo, DbType.Int32);
                            comando.AdicionarParametroEntrada("dependente_id", caracterizacao.Id, DbType.Int32);

                            comando.AdicionarParametroSaida("id_dep", DbType.Int32);
                        }

                        comando.AdicionarParametroEntrada("dependencia_tipo", item.DependenciaTipo, DbType.Int32);
                        comando.AdicionarParametroEntrada("dependencia_caracterizacao", item.DependenciaCaracterizacao, DbType.Int32);
                        comando.AdicionarParametroEntrada("dependencia_id", item.DependenciaId, DbType.Int32);
                        comando.AdicionarParametroEntrada("dependencia_tid", DbType.String, 36, item.DependenciaTid);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);

                        if (item.Id <= 0)
                        {
                            item.Id = Convert.ToInt32(comando.ObterValorParametro("id_dep"));
                        }

                        Historico.Gerar(item.Id, eHistoricoArtefatoCaracterizacao.dependencia, eHistoricoAcao.atualizar, bancoDeDados);
                    }
                }

                #endregion

                bancoDeDados.Commit();
            }
        }
예제 #13
0
        public List <Caracterizacao> ObterCaracterizacoes(int empreendimentoId, BancoDeDados banco = null)
        {
            List <Caracterizacao> lista = new List <Caracterizacao>();
            String select = String.Empty;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Lista das caracterizações do empreendimento

                Comando comando = bancoDeDados.CriarComando(@" select 'select '||t.id||' tipo,
				a.id caracterizacao_id, a.tid caracterizacao_tid from {0}'||t.tabela||' a where a.empreendimento =:empreendimento and rownum = 1 union all ' campo 
				from {0}lov_caracterizacao_tipo t where t.id != :caracterizacao "                , EsquemaBanco);

                comando.AdicionarParametroEntrada("caracterizacao", (int)eCaracterizacao.CadastroAmbientalRural, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        select += reader["campo"].ToString();
                    }

                    reader.Close();
                }

                #region CAR

                select += @" ( select TO_NUMBER(:caracterizacao) tipo, t.caracterizacao_id,  
                      nvl((select b.tid from tmp_cad_ambiental_rural b where b.id = t.caracterizacao_id), 
                          (select b.tid from crt_cad_ambiental_rural b where b.id = t.caracterizacao_id)) caracterizacao_tid
                from (select nvl((select a.id from crt_cad_ambiental_rural a where a.empreendimento = :empreendimento), 
                      (select a.id from tmp_cad_ambiental_rural a where a.empreendimento = :empreendimento)) caracterizacao_id from dual) t ) union all ";



                #endregion

                if (!string.IsNullOrEmpty(select))
                {
                    comando = bancoDeDados.CriarComando(@" 
						select lc.id                tipo,
							   lc.texto             tipo_texto,
							   pg_rascunho.id       projeto_rascunho_id,
							   c.caracterizacao_id,
							   c.caracterizacao_tid,
							   pg.id                projeto_id,
							   pg.tid               projeto_tid,
							   dscLicAtividade.id  dscLicAtividade_id,
							   dscLicAtividade.tid dscLicAtividade_tid
						  from {0}lov_caracterizacao_tipo lc,
							   ("                             + select.Substring(0, select.Length - 10) + @" ) c,
							   (select p.id, p.tid, p.empreendimento, p.caracterizacao from {0}crt_projeto_geo p where p.empreendimento = :empreendimento) pg,
							   (select p.id, p.tid, p.empreendimento, p.caracterizacao from {0}tmp_projeto_geo p where p.empreendimento = :empreendimento) pg_rascunho,
							   (select p.id, p.tid, p.empreendimento, p.caracterizacao from {0}crt_dsc_lc_atividade p where p.empreendimento = :empreendimento) dscLicAtividade
						 where lc.id = pg.caracterizacao(+)
						   and lc.id = pg_rascunho.caracterizacao(+)
						   and lc.id = c.tipo(+)
						   and lc.id = dscLicAtividade.caracterizacao(+)
						 order by lc.id "                        , EsquemaBanco);

                    comando.AdicionarParametroEntrada("empreendimento", empreendimentoId, DbType.Int32);
                    comando.AdicionarParametroEntrada("caracterizacao", (int)eCaracterizacao.CadastroAmbientalRural, DbType.Int32);

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        Caracterizacao caracterizacao = null;

                        while (reader.Read())
                        {
                            caracterizacao = new Caracterizacao();

                            if (reader["tipo"] != null && !Convert.IsDBNull(reader["tipo"]))
                            {
                                caracterizacao.Tipo = (eCaracterizacao)Convert.ToInt32(reader["tipo"]);
                                caracterizacao.Nome = reader["tipo_texto"].ToString();
                            }

                            if (reader["caracterizacao_id"] != null && !Convert.IsDBNull(reader["caracterizacao_id"]))
                            {
                                caracterizacao.Id  = Convert.ToInt32(reader["caracterizacao_id"]);
                                caracterizacao.Tid = reader["caracterizacao_tid"].ToString();
                            }

                            if (reader["projeto_id"] != null && !Convert.IsDBNull(reader["projeto_id"]))
                            {
                                caracterizacao.ProjetoId  = Convert.ToInt32(reader["projeto_id"]);
                                caracterizacao.ProjetoTid = reader["projeto_tid"].ToString();
                            }

                            if (reader["projeto_rascunho_id"] != null && !Convert.IsDBNull(reader["projeto_rascunho_id"]))
                            {
                                caracterizacao.ProjetoRascunhoId = Convert.ToInt32(reader["projeto_rascunho_id"]);
                            }

                            caracterizacao.DscLicAtividadeId  = reader.GetValue <int>("dscLicAtividade_id");
                            caracterizacao.DscLicAtividadeTid = reader.GetValue <string>("dscLicAtividade_tid");

                            lista.Add(caracterizacao);
                        }

                        reader.Close();
                    }
                }

                #endregion
            }

            return(lista);
        }