private bool VerificarCoordenada(Coordenada coordenada, string prefixo) { CoordenadaMsg msg = new CoordenadaMsg(prefixo); if (coordenada.LocalColeta.GetValueOrDefault() <= 0) { Validacao.Add(msg.LocalColetaObrigatorio); } if (coordenada.FormaColeta.GetValueOrDefault() <= 0) { Validacao.Add(msg.FormaColetaObrigatorio); } CoordenadaBus.Validar(coordenada, prefixo, true); if (!Validacao.EhValido) { return(false); } if (_da.PontoForaMBR(coordenada.EastingUtm.GetValueOrDefault(), coordenada.NorthingUtm.GetValueOrDefault())) { Validacao.Add(Mensagem.Sistema.CoordenadaForaMBR); return(false); } return(Validacao.EhValido); }
private bool VerificarCoordenadaComAbrangencia(Coordenada coordenada, string prefixo) { if (CoordenadaBus.Validar(coordenada, prefixo, true)) { coordenada.Datum.Sigla = ListaCredenciadoBus.Datuns.SingleOrDefault(x => Equals(x.Id, coordenada.Datum.Id)).Sigla; } if (!Validacao.EhValido) { return(false); } if (_da.PontoForaMBR(coordenada.EastingUtm.GetValueOrDefault(), coordenada.NorthingUtm.GetValueOrDefault())) { Validacao.Add(Mensagem.Sistema.CoordenadaForaMBR); return(false); } return(Validacao.EhValido); }
public Resultados <Empreendimento> Filtrar(Filtro <ListarEmpreendimentoFiltro> filtros, BancoDeDados banco = null) { Resultados <Empreendimento> retorno = new Resultados <Empreendimento>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { string comandtxt = string.Empty; Comando comando = bancoDeDados.CriarComando(""); #region Adicionando Filtros comandtxt += comando.FiltroAnd("e.codigo", "codigo", filtros.Dados.Codigo); comandtxt += comando.FiltroAndLike("e.denominador", "denominador", filtros.Dados.Denominador, true); comandtxt += comando.FiltroAndLike("e.cnpj", "cnpj", filtros.Dados.CNPJ); comandtxt += comando.FiltroIn("e.empreendimento_id", String.Format(@"select r.empreendimento from {0}tab_empreendimento_responsavel r, {0}lst_pessoa p where p.pessoa_id = r.responsavel and p.cpf_cnpj like :responsavel_cpf_cnpj ||'%'" , (string.IsNullOrEmpty(EsquemaBanco) ? "" : ".")), "responsavel_cpf_cnpj", filtros.Dados.Responsavel.CpfCnpj); if (!ValidacoesGenericasBus.Cpf(filtros.Dados.Responsavel.CpfCnpj) && !ValidacoesGenericasBus.Cnpj(filtros.Dados.Responsavel.CpfCnpj)) { comandtxt += comando.FiltroIn("e.empreendimento_id", String.Format(@"select r.empreendimento from {0}tab_empreendimento_responsavel r, {0}lst_pessoa p where p.pessoa_id = r.responsavel and upper(p.nome_razao_social) like upper('%'|| :responsavel_nome ||'%')" , (string.IsNullOrEmpty(EsquemaBanco) ? "" : ".")), "responsavel_nome", filtros.Dados.Responsavel.NomeRazao); } comandtxt += comando.FiltroAnd("e.segmento_id", "segmento_id", filtros.Dados.Segmento); comandtxt += comando.FiltroAnd("e.municipio_id", "municipio_id", filtros.Dados.MunicipioId); if (filtros.Dados.MunicipioId.GetValueOrDefault() <= 0) { comandtxt += comando.FiltroAnd("e.estado_id", "estado_id", filtros.Dados.EstadoId); } comandtxt += comando.FiltroAnd("e.atividade_id", "atividade_id", filtros.Dados.Atividade.Id); comandtxt += comando.FiltroAnd("e.cnpj", "cnpj_empreemdimento", filtros.Dados.CnpjEmpreemdimento); comandtxt += comando.FiltroIn("e.empreendimento_id", String.Format(@"select p.empreendimento_id from {0}lst_protocolo p where p.numero_completo = :protocolo_numero", (string.IsNullOrEmpty(EsquemaBanco) ? "" : ".")), "protocolo_numero", filtros.Dados.Protocolo.NumeroTexto); //Filtro de abrangencia if (!string.IsNullOrEmpty(filtros.Dados.AreaAbrangencia) && filtros.Dados.Coordenada != null) { //Transforma as coordenadas filtros.Dados.Coordenada = CoordenadaBus.TransformarCoordenada(filtros.Dados.Coordenada); Double abrangencia = Convert.ToDouble(filtros.Dados.AreaAbrangencia); comandtxt += String.Format(@" and e.empreendimento_id in (select e.empreendimento from {0}geo_emp_localizacao e where sdo_relate(e.geometry, {0}coordenada.utm2spatialrect(:x1, :y1, :f1, :x2, :y2, :f2, 0), 'MASK=ANYINTERACT QUERYTYPE=WINDOW')='TRUE')" , (string.IsNullOrEmpty(EsquemaBancoGeo) ? "" : EsquemaBancoGeo + ".")); comando.AdicionarParametroEntrada("x1", (filtros.Dados.Coordenada.EastingUtm - abrangencia), DbType.Double); comando.AdicionarParametroEntrada("y1", (filtros.Dados.Coordenada.NorthingUtm - abrangencia), DbType.Double); comando.AdicionarParametroEntrada("f1", filtros.Dados.Coordenada.FusoUtm, DbType.Int32); comando.AdicionarParametroEntrada("x2", (filtros.Dados.Coordenada.EastingUtm + abrangencia), DbType.Double); comando.AdicionarParametroEntrada("y2", (filtros.Dados.Coordenada.NorthingUtm + abrangencia), DbType.Double); comando.AdicionarParametroEntrada("f2", filtros.Dados.Coordenada.FusoUtm, DbType.Int32); } if (filtros.Dados.EmpreendimentoCompensacao > 0) { comandtxt += string.Format(@" and e.empreendimento_id in (select empreendimento from crt_dominialidade where id in (select dominialidade from crt_dominialidade_dominio where id in (select dominio from crt_dominialidade_reserva where cedente_receptor = 1 and emp_compensacao = :emp_compensacao))) " , (string.IsNullOrEmpty(EsquemaBanco) ? "" : EsquemaBanco + ".")); comando.AdicionarParametroEntrada("emp_compensacao", filtros.Dados.EmpreendimentoCompensacao, DbType.Int32); } List <String> ordenar = new List <String>(); List <String> colunas = new List <String>() { "codigo", "segmento_texto", "denominador", "cnpj" }; if (filtros.OdenarPor > 0) { ordenar.Add(colunas.ElementAtOrDefault(filtros.OdenarPor - 1)); } else { ordenar.Add("denominador"); } #endregion #region Quantidade de registro do resultado comando.DbCommand.CommandText = String.Format("select count(*) from {0}lst_empreendimento e where e.id > 0" + comandtxt, (string.IsNullOrEmpty(EsquemaBanco) ? "" : EsquemaBanco + ".")); retorno.Quantidade = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando)); comando.AdicionarParametroEntrada("menor", filtros.Menor); comando.AdicionarParametroEntrada("maior", filtros.Maior); comandtxt = String.Format(@"select e.empreendimento_id id, e.codigo, e.denominador, e.cnpj, e.segmento_texto from {0}lst_empreendimento e where e.id > 0" + comandtxt + DaHelper.Ordenar(colunas, ordenar), (string.IsNullOrEmpty(EsquemaBanco) ? "" : EsquemaBanco + ".")); comando.DbCommand.CommandText = @"select * from (select a.*, rownum rnum from ( " + comandtxt + @") a) where rnum <= :maior and rnum >= :menor"; #endregion using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { #region Adicionando os dados na classe de retorno Empreendimento empreendimento; while (reader.Read()) { empreendimento = new Empreendimento(); empreendimento.Id = reader.GetValue <Int32>("id"); empreendimento.Codigo = reader.GetValue <Int64>("codigo"); empreendimento.Denominador = reader.GetValue <String>("denominador"); empreendimento.CNPJ = reader.GetValue <String>("cnpj"); empreendimento.SegmentoTexto = reader.GetValue <String>("segmento_texto"); retorno.Itens.Add(empreendimento); } reader.Close(); #endregion } } return(retorno); }