From 9fd9dd18128a53cf0ebd79d3c037f1f304e0a2df Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 30 Oct 2012 15:31:49 +0000 Subject: [PATCH] Inclusão opção para remover o filtro de tempo na opção de análise do sistema metaestat --- admin/admin.db | Bin 149504 -> 0 bytes admin/php/classe_metaestat.php | 16 ++-------------- ferramentas/metaestat/analise.php | 57 ++++++++++++++++++--------------------------------------- ferramentas/metaestat/index.js | 15 +++++++++++++++ 4 files changed, 35 insertions(+), 53 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 7bd6a75..329a4c3 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/php/classe_metaestat.php b/admin/php/classe_metaestat.php index 7577dff..15bad49 100755 --- a/admin/php/classe_metaestat.php +++ b/admin/php/classe_metaestat.php @@ -302,17 +302,7 @@ class Metaestat{ $sqlgeo = str_replace("__dadosfiltro__",$dadosfiltro,$sqlgeo); //join com a tabela geo $j = " d.".$dados["colunaidgeo"]."::text = g.".$dadosgeo["identificador"]."::text"; - /* - if($filtro){ - $sqlgeo .= " AND ".$j; - } - else{ - $sqlgeo .= " WHERE ".$j; - } - */ - //if($filtro == false){ - $sqlgeo .= " WHERE ".$j; - //} + $sqlgeo .= " WHERE ".$j; //atencao: cuidado ao alterar essa string pois ') as foo' pode ser usado para replace em outras funcoes $colunas = $this->colunasTabela($dados["codigo_estat_conexao"],$dados["esquemadb"],$dados["tabela"]); //@TODO - agregacao com uma regiao maior @@ -346,15 +336,13 @@ class Metaestat{ $titulolayer = mb_convert_encoding($titulolayer,"ISO-8859-1",mb_detect_encoding($titulolayer)); $conexao = $this->listaConexao($meta["codigo_estat_conexao"],true); $conexao = "user=".$conexao["usuario"]." password=".$conexao["senha"]." dbname=".$conexao["bancodedados"]." host=".$conexao["host"]." port=".$conexao["porta"].""; - //echo $conexao;exit; - //echo "$id_medida_variavel,$todasascolunas,$agruparpor,$tipolayer,$codigo_tipo_regiao";exit; $sql = $this->sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor,$tipolayer,$codigo_tipo_regiao); $sqlf = $sql["sqlmapserver"]; if(!empty($filtro)){ $sqlf = str_replace("__filtro__"," AND ".$filtro." /*FA*//*FA*/ /*FAT*//*FAT*/",$sqlf); } else{ - $sqlf = str_replace("__filtro__","/*FW*//*FW*/ /*FWT*//*FWT*/",$sqlf); + $sqlf = str_replace("__filtro__"," /*FA*//*FA*/ /*FAT*//*FAT*/",$sqlf); } $classes = ""; if(!empty($id_classificacao)){ diff --git a/ferramentas/metaestat/analise.php b/ferramentas/metaestat/analise.php index 062364a..c035250 100644 --- a/ferramentas/metaestat/analise.php +++ b/ferramentas/metaestat/analise.php @@ -69,6 +69,9 @@ switch (strtoupper($funcao)){ case "APLICAFILTROTEMPO": $retorno = analise_aplicaFiltroTempo($map_file,$tema,$pari,$vali,$parf,$valf); break; + case "REMOVEFILTROTEMPO": + $retorno = analise_removeFiltroTempo($map_file,$tema); + break; case "LISTAFILTROTEMPO": $retorno = listaFiltroTempoRaiz($map_file,$nivel); break; @@ -126,7 +129,6 @@ function analise_listaCamadasFiltroTempo($map_file){ } return $camadas; } - function analise_aplicaFiltroTempo($map_file,$tema,$pari,$vali,$parf,$valf){ $mapa = ms_newMapObj($map_file); $layer = $mapa->getlayerbyname($tema); @@ -152,30 +154,21 @@ function analise_aplicaFiltroTempo($map_file,$tema,$pari,$vali,$parf,$valf){ } $filtro = implode(" AND ",$filtro); //substitui as strings de filtro no mapfile - //verifica se o sql existente necessita de where - $where = false; - if (strpos($data, "/*FW*/") === true){ - $where = true; - } - //se where for verdadeiro, verifica se ja existe o where no filtro normal - if($where == true){ - if(strpos($data, "/*FW*//*FW*/") === true){ - //nesse caso o where deve ir no filtro de tempo - $s = explode("/*FWT*/",$data); - $data = $s[0]."/*FWT*/ WHERE ".$filtro." /*FWT*/".$s[2]; - } - else{ - //nesse caso o where ja existe - $s = explode("/*FWT*/",$data); - $data = $s[0]."/*FWT*/ ".$filtro." /*FWT*/".$s[2]; - } - } - else{ - - } - //se where for falso, inclui o filtro de tempo normalmente - - echo $data;exit; + $s = explode("/*FAT*/",$data); + $data = $s[0]."/*FAT*/ AND ".$filtro." /*FAT*/".$s[2]; + $layer->set("data",$data); + $mapa->save($map_file); + return "ok"; +} +function analise_removeFiltroTempo($map_file,$tema){ + $mapa = ms_newMapObj($map_file); + $layer = $mapa->getlayerbyname($tema); + $data = $layer->data; + //substitui as strings de filtro no mapfile + $s = explode("/*FAT*/",$data); + $data = $s[0]."/*FAT*//*FAT*/".$s[2]; + $layer->set("data",$data); + $mapa->save($map_file); return "ok"; } function analise_listaCamadasMetaestat($map_file){ @@ -220,20 +213,6 @@ function analise_aplicafiltroregiao($map_file,$codigo_tipo_regiao,$codigo_regiao $data = $s[0]."/*FA*/ AND ".$filtro." /*FA*/".$s[2]; } } - else{ - $s = explode("/*FW*/",$data); - if(count($s) > 1){ - if($tipo == ""){ - $data = $s[0]."/*FW*//*FW*/".$s[2]; - } - else{ - - $data = $s[0]."/*FW*/ WHERE ".$filtro." /*FW*/".$s[2]; - //para o caso de ja existir a clausula where no filtro de tempo - $data = str_replace("/*FWT*/ WHERE ","/*FWT*/ "); - } - } - } $l->set("data",$data); } } diff --git a/ferramentas/metaestat/index.js b/ferramentas/metaestat/index.js index c48811f..f2eddf1 100644 --- a/ferramentas/metaestat/index.js +++ b/ferramentas/metaestat/index.js @@ -305,6 +305,7 @@ i3GEOF.metaestat = { i3GEO.php.listaValoresParametroMedidaVariavel(id_parametro_medida,temp); }, adicionaFiltro: function(){ + i3GEO.janela.tempoMsg("O filtro de tempo não modifica as camadas que foram criadas considerando-se uma data específica"); var p,pini,pfim, temp = function(retorno){ i3GEO.janela.fechaAguarde("aguardeAplicaFiltro"); @@ -330,6 +331,20 @@ i3GEOF.metaestat = { } i3GEO.util.ajaxGet(p,temp); }, + removeFiltro: function(){ + var p, + temp = function(retorno){ + i3GEO.janela.fechaAguarde("aguardeAplicaFiltro"); + i3GEO.Interface.atualizaMapa(); + }; + i3GEO.janela.AGUARDEMODAL = true; + i3GEO.janela.abreAguarde("aguardeAplicaFiltro","Aplicando..."); + i3GEO.janela.AGUARDEMODAL = false; + p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?funcao=removeFiltroTempo" + + "&tema="+$i("i3GEOF.filtraperiodo.comboCamada").value + + "&g_sid="+i3GEO.configura.sid; + i3GEO.util.ajaxGet(p,temp); + }, pegaParametros:function(id){ var c = $i(id).getElementsByTagName("select"), n = c.length, -- libgit2 0.21.2