Commit 10afa38144fa5658aec3e545fa1ab620e877fb25
1 parent
99cfb011
Exists in
master
i3geosaude - correção na junção de tabelas no sistema de metadados estatísticos
Showing
3 changed files
with
50 additions
and
11 deletions
Show diff stats
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 = ""; |
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"); | ... | ... |