Commit ebb5931152e45266196fd79f02a31f55f7cb0971

Authored by Edmar Moretti
1 parent 7094315d

$1

admin/admin.db
No preview for this file type
admin/js/estat_editor.js
... ... @@ -582,7 +582,7 @@ i3GEOadmin.editor = {
582 582 },
583 583 formulario: function(){
584 584 var ins = '<fieldset><form id=i3GEOuploadcsvf target="i3GEOuploadcsviframe" action="../php/metaestat_uploadcsv_submit.php" method="post" ENCTYPE="multipart/form-data">' +
585   - '<p class="paragrafo" >CSV (utilize ponto como separador de valores decimais ou a importa&ccedil;&atilde;o poder&aacute; n&atilde;o ocorrer): <br><br><input class=digitar type="file" size=22 name="i3GEOuploadcsv" style="top:0px;left:0px;cursor:pointer;"></p>' +
  585 + '<p class="paragrafo" >CSV (N&atilde;o utilize separador de milhar e utilize ponto como separador de casas decimais ou a importa&ccedil;&atilde;o poder&aacute; n&atilde;o ocorrer): <br><br><input class=digitar type="file" size=22 name="i3GEOuploadcsv" style="top:0px;left:0px;cursor:pointer;"></p>' +
586 586 '<p class="paragrafo" >Nome da nova tabela (n&atilde;o utilize caracteres incompat&iacute;veis com o banco de dados, como -, acentos ou espa&ccedil;os em branco):<br><input class=digitar type="text" size=20 id="tabelaDestinocsv" name="tabelaDestinocsv" style="top:0px;left:0px;cursor:pointer;">&nbsp;' +
587 587 'Ou escolha da lista: ' +
588 588 '<select onchange="javascript:$i(\'tabelaDestinocsv\').value = this.value;">' +
... ... @@ -595,7 +595,7 @@ i3GEOadmin.editor = {
595 595 '<option value=apagar >Apagar dados atuais e incluir do CSV</option>' +
596 596 '</select></p>' +
597 597 '<p class="paragrafo" ><input type="checkbox" id="incluiserialcsv" name="incluiserialcsv" style="cursor:pointer;position:relative;top:2px;">&nbsp;Inclui uma coluna gid do tipo serial e chave prim&aacute;ria com c&oacute;digo &uacute;nico</p>' +
598   - '<p class="paragrafo" >Opcional: coluna que cont&eacute;m as latitudes (Y) <input class=digitar type="text" size=8 id="colunaycsv" name="colunaycsv" style="top:0px;left:0px;cursor:pointer;"> coluna que cont&eacute;m as longitudes (X) <input class=digitar type="text" size=8 id="colunaxcsv" name="colunaxcsv" style="top:0px;left:0px;cursor:pointer;"></p>' +
  598 + '<p class="paragrafo" >Opcional (utilize sempre coordenadas em d&eacute;cimos de grau no CSV): <br><br>coluna que cont&eacute;m as latitudes (Y) <input class=digitar type="text" size=8 id="colunaycsv" name="colunaycsv" style="top:0px;left:0px;cursor:pointer;"> coluna que cont&eacute;m as longitudes (X) <input class=digitar type="text" size=8 id="colunaxcsv" name="colunaxcsv" style="top:0px;left:0px;cursor:pointer;"></p>' +
599 599 '<p class="paragrafo" ><input id=i3GEOuploadcsvsubmit type="button" value="Enviar" size=12 />' +
600 600 '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">' +
601 601 '<input type="hidden" id="i3GEOuploadcsvcodigoconexao" name="i3GEOuploadcsvcodigoconexao" value="">' +
... ... @@ -603,6 +603,7 @@ i3GEOadmin.editor = {
603 603 '</form>' +
604 604 '<iframe name=i3GEOuploadcsviframe style="text-align:left;border:1px solid gray;" width="98%" height="400px"></iframe>' +
605 605 '<p class="paragrafo" >Ap&oacute;s terminar o processo, atualize essa p&aacute;gina para que a nova tabela criada apare&ccedil;a nas listas de sele&ccedil;&atilde;o.</p>' +
  606 + '<p class="paragrafo" >Utilize o <a href="./estat_tipo_regiao.html" >cadastro de regi&otilde;es</a> para registrar a tabela criada com latitude e longitude como uma nova unidade geogr&aacute;fica que poder&aacute; ser escolhida no processo de cria&ccedil;&atilde;o de vari&aacute;veis.</p>' +
606 607 '</fieldset>';
607 608 return ins;
608 609 },
... ...
admin/js/estat_variavel.js
... ... @@ -301,21 +301,21 @@ i3GEOadmin.variaveis = {
301 301 },
302 302 montaDiv: function(i){
303 303 var temp,ins = "",limg=i3GEO.configura.locaplic+"/imagens/ic_zoom.png",
304   - param = {
305   - "linhas":[
306   - {titulo:"Nome:",id:"Enomemedida",size:"50",value:i.nomemedida,tipo:"text",div:""},
307   - {titulo:"Unidade de medida:",id:"",size:"50",value:i.codigo_unidade_medida,tipo:"text",div:"<div id=Ccodigo_unidade_medida ></div>"},
308   - {titulo:"Tipo de per&iacute;odo:",id:"",size:"50",value:i.codigo_tipo_periodo,tipo:"text",div:"<div id=Ccodigo_tipo_periodo ></div>"},
309   - {titulo:"Tipo de regi&atilde;o:",id:"",size:"50",value:i.codigo_tipo_regiao,tipo:"text",div:"<div id=Ccodigo_tipo_regiao ></div>"},
310   - {titulo:"Tabela do banco que contem os valores: <img onclick='i3GEOadmin.variaveis.selTabela(\"Etabela\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"sim\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Etabela",size:"50",value:i.tabela,tipo:"text",div:""}
311   - ]
312   - };
313   - ins += core_geraLinhas(param);
314   - ins += "<br><br><div id='editorMedidaDefault' >";
315 304 param = {
316 305 "linhas":[
  306 + {titulo:"Nome:",id:"Enomemedida",size:"50",value:i.nomemedida,tipo:"text",div:""},
  307 + {titulo:"Unidade de medida:",id:"",size:"50",value:i.codigo_unidade_medida,tipo:"text",div:"<div id=Ccodigo_unidade_medida ></div>"},
  308 + {titulo:"Tipo de per&iacute;odo:",id:"",size:"50",value:i.codigo_tipo_periodo,tipo:"text",div:"<div id=Ccodigo_tipo_periodo ></div>"},
  309 + {titulo:"Tipo de regi&atilde;o:",id:"",size:"50",value:i.codigo_tipo_regiao,tipo:"text",div:"<div id=Ccodigo_tipo_regiao ></div>"},
317 310 {titulo:"Conex&atilde;o:",id:"",size:"50",value:i.codigo_estat_conexao,tipo:"text",div:"<div id=Ccodigo_estat_conexao ></div>"},
318 311 {titulo:"Esquema do banco: <img onclick='i3GEOadmin.variaveis.selEsquema(\"Eesquemadb\",\"Ecodigo_estat_conexao\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Eesquemadb",size:"50",value:i.esquemadb,tipo:"text",div:""},
  312 + {titulo:"Tabela do banco que contem os valores: <img onclick='i3GEOadmin.variaveis.selTabela(\"Etabela\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"sim\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Etabela",size:"50",value:i.tabela,tipo:"text",div:""}
  313 + ]
  314 + };
  315 + ins += core_geraLinhas(param);
  316 + ins += "<br><br><div id='editorMedidaDefault' >";
  317 + param = {
  318 + "linhas":[
319 319 {titulo:"Coluna com os valores: <img onclick='i3GEOadmin.variaveis.selColuna(\"Ecolunavalor\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"Etabela\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Ecolunavalor",size:"50",value:i.colunavalor,tipo:"text",div:""},
320 320 {titulo:"Coluna de liga&ccedil;&atilde;o com a tabela GEO: <img onclick='i3GEOadmin.variaveis.selColuna(\"Ecolunaidgeo\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"Etabela\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Ecolunaidgeo",size:"50",value:i.colunaidgeo,tipo:"text",div:""},
321 321 {titulo:"Coluna com os IDs &uacute;nicos que identificam cada registro da tabela com os valores: <img onclick='i3GEOadmin.variaveis.selColuna(\"Ecolunaidunico\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"Etabela\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Ecolunaidunico",size:"50",value:i.colunaidunico,tipo:"text",div:""},
... ...
admin/php/metaestat_uploadcsv_submit.php
... ... @@ -114,6 +114,18 @@ if (ob_get_level() == 0) ob_start();
114 114 } catch (PDOException $e) {
115 115 echo 'Connection failed: ' . $e->getMessage();
116 116 }
  117 + //encoding do banco de dados
  118 + $sql = "SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = '".$conexao["bancodedados"]."'";
  119 + $res = $dbh->query($sql,PDO::FETCH_ASSOC);
  120 + $encodingdb = $res->fetchAll();
  121 + $encodingdb = $encodingdb[0];
  122 + $encodingdb = $encodingdb["pg_encoding_to_char"];
  123 + if($encodingdb == "UTF8"){
  124 + $encodingdb = "UTF-8";
  125 + }
  126 + if($encodingdb == "LATIN1"){
  127 + $encodingdb = "ISO-8859-1";
  128 + }
117 129 //gera o script para criar a tabela e verifica se ja existe
118 130 $sql = "SELECT table_name FROM information_schema.tables where table_schema = '".$_POST["i3GEOuploadcsvesquema"]."' AND table_name = '".$_POST["tabelaDestinocsv"]."'";
119 131 $res = $dbh->query($sql,PDO::FETCH_ASSOC);
... ... @@ -171,28 +183,40 @@ if (ob_get_level() == 0) ob_start();
171 183 $vs = array();
172 184 for ($j=0; $j<$ncolunas;$j++){
173 185 if($tipoColuna[$colunas[$j]] == "varchar"){
174   - $texto = str_replace("'","",$s[$j]);
175   - $vs[] = "'".$texto."'";
176   - }
177   - else{
178   - if(empty($s[$j]) && $s[$j] != 0){
179   - $vs[] = 'null';
  186 + $texto = $s[$j];
  187 + $texto = str_replace("'","",$texto);
  188 + $enc = mb_detect_encoding($texto);
  189 + if(enc != ""){
  190 + $texto = "'".mb_convert_encoding($texto,$encodingdb,$enc)."'";
180 191 }
181 192 else{
182   - $vs[] = $s[$j];
  193 + $texto = "'".$texto."'";
  194 + }
  195 + if($texto == "''"){
  196 + $texto = 'null';
  197 + }
  198 + $vs[] = $texto;
  199 + }
  200 + else{
  201 + $valor = $s[$j];
  202 + if($valor == ""){
  203 + $valor = "nulo";
183 204 }
  205 + $vs[] = $valor;
184 206 }
185   - if($colunas[$j] == $_POST["colunaxcsv"]){
  207 + if(strtolower($colunas[$j]) == strtolower($_POST["colunaxcsv"])){
186 208 $valorX = $s[$j];
187 209 }
188   - if($colunas[$j] == $_POST["colunaycsv"]){
  210 + if(strtolower($colunas[$j]) == strtolower($_POST["colunaycsv"])){
189 211 $valorY = $s[$j];
190 212 }
191 213 }
192 214 if($_POST["colunaxcsv"] != "" && $_POST["colunaycsv"] != ""){
193 215 $vs[] = "ST_PointFromText('POINT(". str_replace(",",".",$valorX)." ".str_replace(",",".",$valorY).")',4326)";
194 216 }
195   - $linhasql[] = $insert."VALUES(".implode(",",$vs).")";
  217 + $str = implode(",",$vs);
  218 + $str = str_replace("nulo",'null',$str);
  219 + $linhasql[] = $insert."VALUES(".$str.")";
196 220 }
197 221 echo "<pre>";
198 222 //var_dump($linhasql);exit;
... ...
admin/php/metaestat_uploadshp_submit.php
... ... @@ -115,7 +115,7 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;])){
115 115 ob_flush();
116 116 flush();
117 117 sleep(1);
118   -
  118 +
119 119 try {
120 120 $dbh = new PDO('pgsql:dbname='.$conexao["bancodedados"].';user='.$conexao["usuario"].';password='.$conexao["senha"].';host='.$conexao["host"].';port='.$conexao["porta"]);
121 121 } catch (PDOException $e) {
... ... @@ -204,14 +204,16 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;])){
204 204 }
205 205 else{
206 206 $valor = $s->getValue($layer,$coluna);
207   - if(empty($valor) && $valor != 0){
208   - $valor = 'null';
  207 + if($valor = "" || (empty($valor) && $valor != 0){
  208 + $valor = 'nulo';
209 209 }
210 210 $vs[] = $valor;
211 211 }
212 212 }
213 213 $vs[] = "st_geomfromtext('".$s->toWkt()."','".$_POST["srid"]."')";
214   - $linhas[] = $insert."VALUES(".implode(",",$vs).")";
  214 + $str = implode(",",$vs);
  215 + $str = str_replace("nulo",'null',$str);
  216 + $linhas[] = $insert."VALUES(".$str.")";
215 217 }
216 218 //echo "<pre>".var_dump($linhas);exit;
217 219 $layer->close();
... ...
ferramentas/metaestat/analise.php
... ... @@ -677,12 +677,12 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula
677 677 //pega valores do primeiro layer para a tabela0
678 678 if($conta == 0){
679 679 $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO");
680   - $gid = $medidavariavel["colunaidunico"];
681 680 }
682 681 $conta++;
683 682 }
684 683 //coluna com a geometria
685 684 $regiao = $m->listaTipoRegiao($codigo_tipo_regiao);
  685 + $gid = $regiao["identificador"];
686 686 $n = count($sqls);
687 687  
688 688 $cwhere = array();
... ... @@ -691,7 +691,7 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula
691 691 }
692 692 $colunasDados = array();
693 693 $itens = array($gid,"regiao");
694   - $itensdesc = array("gid","Regiao");
  694 + $itensdesc = array("id","Regiao");
695 695 $tabelaColuna = array();
696 696 for($i=0;$i<$n;$i++){
697 697 $colunasDados[] = "tabela".$i.".".$colunasValor[$i]." as valortema".$i;
... ... @@ -735,11 +735,11 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula
735 735 $nlayer->setmetadata("tema",$nome);
736 736 $nlayer->setmetadata("METAESTAT_DERIVADO","sim");
737 737 $nlayer->setmetadata("METAESTAT_ID_MEDIDA_VARIAVEL","");
738   - $nlayer->setmetadata("TIP","");
739   - $nlayer->setmetadata("arquivotemaoriginal","");
740   - $nlayer->setmetadata("nomeoriginal","");
741   - $nlayer->setmetadata("ITENS",implode(",",$itens));
742   - $nlayer->setmetadata("ITENSDESC",implode(",",$itensdesc));
  738 + $nlayer->setmetadata("TIP","");
  739 + $nlayer->setmetadata("arquivotemaoriginal","");
  740 + $nlayer->setmetadata("nomeoriginal","");
  741 + $nlayer->setmetadata("ITENS",implode(",",$itens));
  742 + $nlayer->setmetadata("ITENSDESC",implode(",",$itensdesc));
743 743 $nclass = $nlayer->numclasses;
744 744 for($i=1;$i<$nclass;$i++){
745 745 $nlayer->getclass($i)->set("status",MS_DELETE);
... ...
ferramentas/metaestat/index.js
... ... @@ -1620,11 +1620,15 @@ i3GEOF.metaestat = {
1620 1620 //insere uma opcao para ativar as opcoes adicionais que sao usadas quando o usuario quer
1621 1621 //usar dados ja existentes em um banco de dados
1622 1622 var temp,botoesdiv = $i("okcancel_checkbox"),
1623   - btn = document.createElement("div");
1624   - btn.innerHTML = "<br><input type=checkbox style='position:relative;top:3px;cursor:pointer;' onclick='javascript:$i(\"editorMedidaDefault\").style.display = \"block\";'/> Quero usar uma tabela j&aacute; existente ou alterar os par&acirc;metros adicionais";
  1623 + btn = document.createElement("div"),
  1624 + oclick = '$i(\"editorMedidaDefault\").style.display = \"block\";$i(\"Eesquemadb\").style.display = \"block\";$i(\"Etabela\").style.display = \"block\";';
  1625 + btn.innerHTML = "<br><input type=checkbox style='position:relative;top:3px;cursor:pointer;' onclick='javascript:"+oclick+"'/> Quero usar uma tabela j&aacute; existente ou alterar os par&acirc;metros adicionais";
1625 1626 botoesdiv.appendChild(btn);
1626 1627  
1627 1628 $i("editorMedidaDefault").style.display = "none";
  1629 + $i("Eesquemadb").style.display = "none";
  1630 + $i("Etabela").style.display = "none";
  1631 +
1628 1632 //passa o codigo da variavel
1629 1633 $i("Ecodigo_variavel").value = $i("i3geoCartoComboVariavelEditor").value;
1630 1634 //define os valores que sao padrao
... ...