Commit 10afa38144fa5658aec3e545fa1ab620e877fb25

Authored by Edmar Moretti
1 parent 99cfb011
Exists in master

i3geosaude - correção na junção de tabelas no sistema de metadados estatísticos

i3geo/ferramentas/metaestat/analise.php
... ... @@ -721,8 +721,10 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula
721 721 $n = count($sqls);
722 722  
723 723 $cwhere = array();
  724 + //$colunasWhere = array();
724 725 for($i=1;$i<$n;$i++){
725   - $cwhere[] = "tabela0.".$colunasIdentificador[0]."::text = "."tabela".$i.".".$colunasIdentificador[$i]."::text";
  726 + $cwhere[] = "tabela0.".$gid."::text = "."tabela".$i.".".$gid."::text";
  727 + //$colunasWhere[] =
726 728 }
727 729 $colunasDados = array();
728 730 $itens = array($gid,"regiao");
... ...
i3geo/i3geosaude/admin.db
No preview for this file type
i3geo/i3geosaude/metaestat/analise.php
... ... @@ -66,6 +66,7 @@ if(isset($fingerprint)){
66 66 }
67 67 }
68 68 $retorno = "";
  69 +
69 70 /**
70 71 * A variavel $funcao define a rotina que sera executada
71 72 * Cada rotina recebe parametros especificos
... ... @@ -75,7 +76,10 @@ $retorno = &quot;&quot;;
75 76 * Quando um layer original do sistema METAESTAT e alterado, isso e indicado pelo metadata METAESTAT_DERIVADO
76 77 * que passa a ser marcado com "sim"
77 78 */
78   -switch (strtoupper($funcao)){
  79 +switch (strtoupper($funcao)){
  80 + case "PEGAMETADADOSMAPFILE":
  81 + $retorno = analise_pegaMetadadosMafile($idtema);
  82 + break;
79 83 case "APLICAFILTROREGIAO":
80 84 $retorno = analise_aplicafiltroregiao($map_file,$codigo_tipo_regiao,$codigo_regiao);
81 85 break;
... ... @@ -146,6 +150,21 @@ if (!connection_aborted()){
146 150 else
147 151 {exit();}
148 152 /**
  153 + * Obtem o id da medida da variavel armazenado em um mapfile da pasta i3geo/temas
  154 + * @param unknown $idtema
  155 + */
  156 +function analise_pegaMetadadosMafile($idtema){
  157 + global $locaplic;
  158 + $id_medida_variavel = "";
  159 + if(file_exists($locaplic."/temas/".$idtema.".map")){
  160 + $map = ms_newMapObj($locaplic."/temas/".$idtema.".map");
  161 +
  162 + $layer = $map->getlayer(0);
  163 + $id_medida_variavel = $layer->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL");
  164 + }
  165 + return array("id_medida_variavel"=>$id_medida_variavel);
  166 +}
  167 +/**
149 168 * Adiciona ao mapa atual um novo layer para a representacao de uma regiao
150 169 * Se o layer ja existir, sera removido e criado outro
151 170 *
... ... @@ -614,9 +633,9 @@ function analise_aplicafiltroregiao($map_file,$codigo_tipo_regiao,$codigo_regiao
614 633 foreach($layersm as $l){
615 634 $data = $l->data;
616 635 //substitui os marcadores definidos na construcao do layer. Veja a classe metaestat
617   - $s = explode("/*FA*/",$data);
  636 + $s = explode("/*FR*/",$data);
618 637 if(count($s) > 1){
619   - $data = $s[0]."/*FA*//*FA*/".$s[2];
  638 + $data = $s[0]."/*FR*//*FR*/".$s[2];
620 639 }
621 640 $l->set("data",$data);
622 641 }
... ... @@ -624,18 +643,34 @@ function analise_aplicafiltroregiao($map_file,$codigo_tipo_regiao,$codigo_regiao
624 643 else{
625 644 //pega as regioes que sao filhos de $codigo_tipo_regiao
626 645 $regioesfilho = $m->listaHierarquiaRegioes($codigo_tipo_regiao);
627   - foreach($regioesfilho as $r){
628   - $regiao = $m->listaTipoRegiao($r["codigo_tipo_regiao"]);
629   - $filtro = "g.".$r["colunaligacao_regiaopai"]."::text = '$codigo_regiao'";
630   - $layers = analise_listaLayersRegiao($layersm,$r["codigo_tipo_regiao"]);
  646 + if(count($regioesfilho) == 0){
  647 + $regiao = $m->listaTipoRegiao($codigo_tipo_regiao);
  648 + $filtro = $regiao["identificador"]."::text = '$codigo_regiao'";
  649 + $layers = analise_listaLayersRegiao($layersm,$codigo_tipo_regiao);
631 650 foreach($layers as $l){
632 651 $data = $l->data;
633 652 //substitui os marcadores definidos na construcao do layer. Veja a classe metaestat
634   - $s = explode("/*FA*/",$data);
  653 + $s = explode("/*FR*/",$data);
635 654 if(count($s) > 1){
636   - $data = $s[0]."/*FA*/ AND ".$filtro." /*FA*/".$s[2];
  655 + $data = $s[0]."/*FR*/ AND ".$filtro." /*FR*/".$s[2];
637 656 }
638 657 $l->set("data",$data);
  658 + }
  659 + }
  660 + else{
  661 + foreach($regioesfilho as $r){
  662 + $regiao = $m->listaTipoRegiao($r["codigo_tipo_regiao"]);
  663 + $filtro = $r["colunaligacao_regiaopai"]."::text = '$codigo_regiao'";
  664 + $layers = analise_listaLayersRegiao($layersm,$r["codigo_tipo_regiao"]);
  665 + foreach($layers as $l){
  666 + $data = $l->data;
  667 + //substitui os marcadores definidos na construcao do layer. Veja a classe metaestat
  668 + $s = explode("/*FR*/",$data);
  669 + if(count($s) > 1){
  670 + $data = $s[0]."/*FR*/ AND ".$filtro." /*FR*/".$s[2];
  671 + }
  672 + $l->set("data",$data);
  673 + }
639 674 }
640 675 }
641 676 }
... ... @@ -686,8 +721,10 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula
686 721 $n = count($sqls);
687 722  
688 723 $cwhere = array();
  724 + //$colunasWhere = array();
689 725 for($i=1;$i<$n;$i++){
690   - $cwhere[] = "tabela0.".$colunasIdentificador[0]."::text = "."tabela".$i.".".$colunasIdentificador[$i]."::text";
  726 + $cwhere[] = "tabela0.".$gid."::text = "."tabela".$i.".".$gid."::text";
  727 + //$colunasWhere[] =
691 728 }
692 729 $colunasDados = array();
693 730 $itens = array($gid,"regiao");
... ...