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