Commit f556773b8d201056271f9b6be56970d0a5a567f6
1 parent
974de6f5
Exists in
master
and in
7 other branches
Correções no sistema de metadados estatísticos
Showing
11 changed files
with
303 additions
and
56 deletions
Show diff stats
admin/admin.db
No preview for this file type
admin/js/estat_mapa.js
| ... | ... | @@ -314,7 +314,7 @@ function montaDivTema(i){ |
| 314 | 314 | b.url = 'javascript:$i(\"Eid_medida_variavel\").value=\"'+filhos[j].id+'\"'; |
| 315 | 315 | a.push(b); |
| 316 | 316 | } |
| 317 | - core_arvore(o[i].titulo,"arvore_"+i,{"propriedades":a}) | |
| 317 | + core_arvore(o[i].titulo,"arvore_"+i,{"propriedades":a}); | |
| 318 | 318 | |
| 319 | 319 | } |
| 320 | 320 | //ins += "<br><div>"+YAHOO.lang.JSON.parse(o.responseText)+"</div>"; | ... | ... |
admin/js/estat_uploaddados.js
| ... | ... | @@ -130,7 +130,12 @@ i3GEOadmin.uploaddados = { |
| 130 | 130 | argument: { foo:"foo", bar:"bar" } |
| 131 | 131 | }; |
| 132 | 132 | core_carregando("inserindo dados..."); |
| 133 | - core_makeRequest("../php/metaestat.php?funcao=inserirDados"+par,callback); | |
| 133 | + if(i3GEO && i3GEO.configura.locaplic){ | |
| 134 | + core_makeRequest(i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=inserirDados"+par,callback); | |
| 135 | + } | |
| 136 | + else{ | |
| 137 | + core_makeRequest("../php/metaestat.php?funcao=inserirDados"+par,callback); | |
| 138 | + } | |
| 134 | 139 | } |
| 135 | 140 | }, |
| 136 | 141 | conexao:{ | ... | ... |
admin/js/estat_variavel.js
| ... | ... | @@ -298,16 +298,17 @@ i3GEOadmin.variaveis = { |
| 298 | 298 | {titulo:"Nome:",id:"Enomemedida",size:"50",value:i.nomemedida,tipo:"text",div:""}, |
| 299 | 299 | {titulo:"Unidade de medida:",id:"",size:"50",value:i.codigo_unidade_medida,tipo:"text",div:"<div id=Ccodigo_unidade_medida ></div>"}, |
| 300 | 300 | {titulo:"Tipo de período:",id:"",size:"50",value:i.codigo_tipo_periodo,tipo:"text",div:"<div id=Ccodigo_tipo_periodo ></div>"}, |
| 301 | - {titulo:"Tipo de região:",id:"",size:"50",value:i.codigo_tipo_regiao,tipo:"text",div:"<div id=Ccodigo_tipo_regiao ></div>"} | |
| 302 | - ] | |
| 301 | + {titulo:"Tipo de região:",id:"",size:"50",value:i.codigo_tipo_regiao,tipo:"text",div:"<div id=Ccodigo_tipo_regiao ></div>"}, | |
| 302 | + {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:""} | |
| 303 | + | |
| 304 | + ] | |
| 303 | 305 | }; |
| 304 | 306 | ins += core_geraLinhas(param); |
| 305 | - ins += "<div id='editorMedidaDefault' >"; | |
| 307 | + ins += "<br><br><div id='editorMedidaDefault' >"; | |
| 306 | 308 | param = { |
| 307 | 309 | "linhas":[ |
| 308 | 310 | {titulo:"Conexão:",id:"",size:"50",value:i.codigo_estat_conexao,tipo:"text",div:"<div id=Ccodigo_estat_conexao ></div>"}, |
| 309 | 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:""}, |
| 310 | - {titulo:"Tabela do banco: <img onclick='i3GEOadmin.variaveis.selTabela(\"Etabela\",\"Ecodigo_estat_conexao\",\"Eesquemadb\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Etabela",size:"50",value:i.tabela,tipo:"text",div:""}, | |
| 311 | 312 | {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:""}, |
| 312 | 313 | {titulo:"Coluna de ligaçã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:""}, |
| 313 | 314 | {titulo:"Coluna com os IDs ú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:""}, |
| ... | ... | @@ -315,6 +316,18 @@ i3GEOadmin.variaveis = { |
| 315 | 316 | ] |
| 316 | 317 | }; |
| 317 | 318 | ins += core_geraLinhas(param); |
| 319 | + //utilizados pelo ajudante de criacao de variaveis | |
| 320 | + //para permitir a criacao de parametros de tempo | |
| 321 | + ins += "<div id=EparametrosTempo style='display:none' >"; | |
| 322 | + param = { | |
| 323 | + "linhas":[ | |
| 324 | + {titulo:"Coluna com o ano (se couber): <img onclick='i3GEOadmin.variaveis.selColuna(\"EcolunaAno\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"Etabela\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"EcolunaAno",size:"50",value:i.colunaano,tipo:"text",div:""}, | |
| 325 | + {titulo:"Coluna com o mês (se couber): <img onclick='i3GEOadmin.variaveis.selColuna(\"EcolunaMes\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"Etabela\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"EcolunaMes",size:"50",value:i.colunames,tipo:"text",div:""}, | |
| 326 | + {titulo:"Coluna com o dia (se couber): <img onclick='i3GEOadmin.variaveis.selColuna(\"EcolunaDia\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"Etabela\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"EcolunaDia",size:"50",value:i.colunadia,tipo:"text",div:""}, | |
| 327 | + {titulo:"Coluna com a hora (se couber): <img onclick='i3GEOadmin.variaveis.selColuna(\"EcolunaHora\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"Etabela\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"EcolunaHora",size:"50",value:i.colunahora,tipo:"text",div:""} | |
| 328 | + ] | |
| 329 | + }; | |
| 330 | + ins += core_geraLinhas(param); | |
| 318 | 331 | ins += "</div><br><br>"; |
| 319 | 332 | //utilizado para passar o codigo da variavel qd for necessario |
| 320 | 333 | ins += "<input type=hidden id='Ecodigo_variavel' value='' />"; |
| ... | ... | @@ -343,6 +356,10 @@ i3GEOadmin.variaveis = { |
| 343 | 356 | temp += "</select>"; |
| 344 | 357 | $i("Ccodigo_estat_conexao").innerHTML = temp; |
| 345 | 358 | } |
| 359 | + $i("Ecodigo_tipo_regiao").onchange = function(){ | |
| 360 | + //alert("Escolha uma tabela compatível com essa região"); | |
| 361 | + //$i("Etabela").value = ""; | |
| 362 | + }; | |
| 346 | 363 | } |
| 347 | 364 | }, |
| 348 | 365 | classificacao:{ |
| ... | ... | @@ -1136,7 +1153,7 @@ i3GEOadmin.variaveis = { |
| 1136 | 1153 | prog = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=alteraVariavel"; |
| 1137 | 1154 | } |
| 1138 | 1155 | if(tipo == "medidaVariavel"){ |
| 1139 | - campos = new Array("codigo_variavel","codigo_unidade_medida","codigo_tipo_periodo","codigo_tipo_regiao","codigo_estat_conexao","esquemadb","tabela","colunavalor","colunaidgeo","colunaidunico","filtro","nomemedida"); | |
| 1156 | + campos = new Array("colunaAno","colunaMes","colunaDia","colunaHora","codigo_variavel","codigo_unidade_medida","codigo_tipo_periodo","codigo_tipo_regiao","codigo_estat_conexao","esquemadb","tabela","colunavalor","colunaidgeo","colunaidunico","filtro","nomemedida"); | |
| 1140 | 1157 | par = "&id_medida_variavel="+id; |
| 1141 | 1158 | prog = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=alteraMedidaVariavel"; |
| 1142 | 1159 | } |
| ... | ... | @@ -1349,7 +1366,10 @@ i3GEOadmin.variaveis = { |
| 1349 | 1366 | } |
| 1350 | 1367 | core_makeRequest(i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=esquemasConexao&formato=json&codigo_estat_conexao="+eleCodigoConexao.value,callback); |
| 1351 | 1368 | }, |
| 1352 | - selTabela: function(idEleValue,idEleCodigoConexao,idEleNomeEsquema){ | |
| 1369 | + selTabela: function(idEleValue,idEleCodigoConexao,idEleNomeEsquema,excluigeom){ | |
| 1370 | + if(!excluigeom){ | |
| 1371 | + excluigeom = "nao"; | |
| 1372 | + } | |
| 1353 | 1373 | var eleValue = $i(idEleValue), |
| 1354 | 1374 | eleCodigoConexao = $i(idEleCodigoConexao), |
| 1355 | 1375 | eleNomeEsquema = $i(idEleNomeEsquema), |
| ... | ... | @@ -1384,7 +1404,7 @@ i3GEOadmin.variaveis = { |
| 1384 | 1404 | alert("Escolha um esquema"); |
| 1385 | 1405 | return; |
| 1386 | 1406 | } |
| 1387 | - core_makeRequest(i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=tabelasEsquema&formato=json&codigo_estat_conexao="+eleCodigoConexao.value+"&nome_esquema="+eleNomeEsquema.value,callback); | |
| 1407 | + core_makeRequest(i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=tabelasEsquema&formato=json&codigo_estat_conexao="+eleCodigoConexao.value+"&nome_esquema="+eleNomeEsquema.value+"&excluigeom="+excluigeom,callback); | |
| 1388 | 1408 | }, |
| 1389 | 1409 | selColuna: function(idEleValue,idEleCodigoConexao,idEleNomeEsquema,idEleNomeTabela){ |
| 1390 | 1410 | var eleValue = $i(idEleValue), | ... | ... |
admin/php/classe_metaestat.php
| ... | ... | @@ -729,6 +729,7 @@ class Metaestat{ |
| 729 | 729 | } |
| 730 | 730 | function dadosMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$agruparpor = ""){ |
| 731 | 731 | $sql = $this->sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor); |
| 732 | + //var_dump($sql);exit; | |
| 732 | 733 | $sqlf = $sql["sql"]; |
| 733 | 734 | if($sql["filtro"] == true){ |
| 734 | 735 | if(!empty($filtro)){ |
| ... | ... | @@ -1345,7 +1346,7 @@ class Metaestat{ |
| 1345 | 1346 | $codigo_variavel - opcional |
| 1346 | 1347 | */ |
| 1347 | 1348 | function listaVariavel($codigo_variavel="",$filtro_esquema=""){ |
| 1348 | - $sql = "select a.* from ".$this->esquemaadmin."i3geoestat_variavel as a "; | |
| 1349 | + $sql = "select DISTINCT a.* from ".$this->esquemaadmin."i3geoestat_variavel as a "; | |
| 1349 | 1350 | if($codigo_variavel != ""){ |
| 1350 | 1351 | $sql .= "WHERE a.codigo_variavel = $codigo_variavel "; |
| 1351 | 1352 | } |
| ... | ... | @@ -1645,8 +1646,12 @@ class Metaestat{ |
| 1645 | 1646 | function criaEsquemaDB($codigo_estat_conexao,$nome_esquema){ |
| 1646 | 1647 | return $this->execSQLDB($codigo_estat_conexao,"create schema $nome_esquema"); |
| 1647 | 1648 | } |
| 1648 | - function tabelasEsquema($codigo_estat_conexao,$nome_esquema){ | |
| 1649 | - return $this->execSQLDB($codigo_estat_conexao,"SELECT table_name as tabela FROM information_schema.tables where table_schema = '$nome_esquema'"); | |
| 1649 | + function tabelasEsquema($codigo_estat_conexao,$nome_esquema,$excluigeom=""){ | |
| 1650 | + $sql = "SELECT table_name as tabela FROM information_schema.tables where table_schema = '$nome_esquema'"; | |
| 1651 | + if(strtolower($excluigeom) == "sim"){ | |
| 1652 | + $sql = "SELECT c.table_name as tabela FROM information_schema.tables as c left join (SELECT distinct a.table_name FROM information_schema.tables as a left join information_schema.columns as b on a.table_name = b.table_name where a.table_schema = '$nome_esquema' and udt_name = 'geometry' ) as d on c.table_name = d.table_name where c.table_schema = '$nome_esquema' and d.table_name isnull"; | |
| 1653 | + } | |
| 1654 | + return $this->execSQLDB($codigo_estat_conexao,$sql); | |
| 1650 | 1655 | } |
| 1651 | 1656 | function criaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela){ |
| 1652 | 1657 | return $this->execSQLDB($codigo_estat_conexao,"create table ".$nome_esquema.".".$nome_tabela." (gid serial, CONSTRAINT ".$nome_tabela."_pkey PRIMARY KEY (gid ))"); |
| ... | ... | @@ -1940,6 +1945,8 @@ class Metaestat{ |
| 1940 | 1945 | $linha = fgets($handle); |
| 1941 | 1946 | if($linha != $cabecalho){ |
| 1942 | 1947 | $linha = str_replace("\n",'',$linha); |
| 1948 | + $linha = str_replace('"','',$linha); | |
| 1949 | + $linha = str_replace("'",'',$linha); | |
| 1943 | 1950 | $linha = explode($separador,$linha); |
| 1944 | 1951 | //var_dump($linha);exit; |
| 1945 | 1952 | if(count($linha) > 2){ |
| ... | ... | @@ -1964,6 +1971,7 @@ class Metaestat{ |
| 1964 | 1971 | } |
| 1965 | 1972 | } |
| 1966 | 1973 | fclose ($handle); |
| 1974 | + //var_dump($linhas); | |
| 1967 | 1975 | //pega a conexao |
| 1968 | 1976 | $c = $this->listaConexao($medidavariavel["codigo_estat_conexao"],true); |
| 1969 | 1977 | //gera o objeto pdo |
| ... | ... | @@ -2157,6 +2165,33 @@ class Metaestat{ |
| 2157 | 2165 | } |
| 2158 | 2166 | return array("ok"); |
| 2159 | 2167 | } |
| 2168 | + //altera os registros de uma medida de variavel (muda para negativo) | |
| 2169 | + function negativaValoresMedidaVariavel($id_medida_variavel){ | |
| 2170 | + $medida = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 2171 | + if($medida["esquemadb"] != "i3geo_metaestat"){ | |
| 2172 | + return "erro"; | |
| 2173 | + } | |
| 2174 | + $c = $this->listaConexao($medida["codigo_estat_conexao"],true); | |
| 2175 | + $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 2176 | + if($id_medida_variavel != ""){ | |
| 2177 | + if($medida["filtro"] != ""){ | |
| 2178 | + $sql = "UPDATE from i3geo_metaestat.".$medida["tabela"]; | |
| 2179 | + $sql .= "SET id_medida_variavel = id_medida_variavel * -1 WHERE id_medida_variavel = $id_medida_variavel"; | |
| 2180 | + try { | |
| 2181 | + $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | |
| 2182 | + $dbh->beginTransaction(); | |
| 2183 | + $sth = $dbh->exec($sql); | |
| 2184 | + $dbh->commit(); | |
| 2185 | + } catch (Exception $e) { | |
| 2186 | + $dbh->rollBack(); | |
| 2187 | + return array("Falhou: " . $e->getMessage()); | |
| 2188 | + } | |
| 2189 | + } | |
| 2190 | + } | |
| 2191 | + return array("ok"); | |
| 2192 | + } | |
| 2193 | + | |
| 2194 | + //exclui o valor de uma medida em uma regiao especifica (utilizado pelo editor de limites) | |
| 2160 | 2195 | function excluiAtributosMedidaVariavel($id_medida_variavel,$codigo_tipo_regiao,$identificador_regiao,$id){ |
| 2161 | 2196 | $medida = $this->listaMedidaVariavel("",$id_medida_variavel); |
| 2162 | 2197 | if($medida["esquemadb"] != "i3geo_metaestat"){ | ... | ... |
admin/php/metaestat.php
| ... | ... | @@ -370,31 +370,48 @@ switch (strtoupper($funcao)) |
| 370 | 370 | $m->alteraMedidaVariavel("",$id_medida_variavel,$codigo_unidade_medida,$codigo_tipo_periodo,$codigo_tipo_regiao,$codigo_estat_conexao,$esquemadb,$tabela,$colunavalor,$colunaidgeo,$colunaidunico,$filtro,$nomemedida); |
| 371 | 371 | } |
| 372 | 372 | //adiciona os parametros de tempo conforme o tipo de periodo escolhido |
| 373 | + // | |
| 374 | + //se os nomes das colunas com os parametros de tempo forem definidas | |
| 375 | + //os parametros sao criados | |
| 376 | + //isso acontece se a criacao da medida estiver sendo feita em uma tabela que nao e a default | |
| 377 | + // | |
| 373 | 378 | if($default == true){ |
| 374 | 379 | $m->excluirRegistro("i3geoestat_parametro_medida","id_medida_variavel",$id_medida_variavel); |
| 375 | 380 | $id_pai = 0; |
| 376 | 381 | //anual |
| 377 | 382 | if($codigo_tipo_periodo >= 1){ |
| 383 | + if(empty($nomeAno)){ | |
| 384 | + $nomeAno = "ano"; | |
| 385 | + } | |
| 378 | 386 | $id_parametro_medida = $m->alteraParametroMedida($id_medida_variavel,"","","","","",""); |
| 379 | - $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Ano","","ano",$id_pai,1); | |
| 387 | + $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Ano","",$nomeAno,$id_pai,1); | |
| 380 | 388 | $id_pai = $id_parametro_medida; |
| 381 | 389 | } |
| 382 | 390 | //mensal |
| 383 | 391 | if($codigo_tipo_periodo >= 2){ |
| 384 | 392 | $id_parametro_medida = $m->alteraParametroMedida($id_medida_variavel,"","","","","",""); |
| 385 | - $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Mes","","mes",$id_pai,2); | |
| 393 | + if(empty($nomeMes)){ | |
| 394 | + $nomeMes = "mes"; | |
| 395 | + } | |
| 396 | + $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Mes","",$nomeMes,$id_pai,2); | |
| 386 | 397 | $id_pai = $id_parametro_medida; |
| 387 | 398 | } |
| 388 | 399 | //diario |
| 389 | 400 | if($codigo_tipo_periodo >= 3){ |
| 390 | 401 | $id_parametro_medida = $m->alteraParametroMedida($id_medida_variavel,"","","","","",""); |
| 391 | - $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Dia","","dia",$id_pai,3); | |
| 402 | + if(empty($nomeDia)){ | |
| 403 | + $nomeDia = "dia"; | |
| 404 | + } | |
| 405 | + $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Dia","",$nomeDia,$id_pai,3); | |
| 392 | 406 | $id_pai = $id_parametro_medida; |
| 393 | 407 | } |
| 394 | 408 | //horario |
| 395 | 409 | if($codigo_tipo_periodo == 4){ |
| 396 | 410 | $id_parametro_medida = $m->alteraParametroMedida($id_medida_variavel,"","","","","",""); |
| 397 | - $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Hora","","hora",$id_pai,4); | |
| 411 | + if(empty($nomeHora)){ | |
| 412 | + $nomeHora = "hora"; | |
| 413 | + } | |
| 414 | + $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Hora","",$nomeHora,$id_pai,4); | |
| 398 | 415 | } |
| 399 | 416 | } |
| 400 | 417 | retornaJSON($m->listaMedidaVariavel("",$id_medida_variavel)); |
| ... | ... | @@ -946,6 +963,7 @@ switch (strtoupper($funcao)) |
| 946 | 963 | $f = verificaFilhos(); |
| 947 | 964 | if(!$f){ |
| 948 | 965 | $m = new Metaestat(); |
| 966 | + $m->negativaValoresMedidaVariavel($id); | |
| 949 | 967 | retornaJSON($m->excluirRegistro("i3geoestat_medida_variavel","id_medida_variavel",$id)); |
| 950 | 968 | } |
| 951 | 969 | else |
| ... | ... | @@ -1260,8 +1278,11 @@ switch (strtoupper($funcao)) |
| 1260 | 1278 | */ |
| 1261 | 1279 | case "TABELASESQUEMA": |
| 1262 | 1280 | $m = new Metaestat(); |
| 1281 | + if(empty($excluigeom)){ | |
| 1282 | + $excluigeom = ""; | |
| 1283 | + } | |
| 1263 | 1284 | if($formato == "json"){ |
| 1264 | - retornaJSON($m->tabelasEsquema($codigo_estat_conexao,$nome_esquema)); | |
| 1285 | + retornaJSON($m->tabelasEsquema($codigo_estat_conexao,$nome_esquema,$excluigeom)); | |
| 1265 | 1286 | } |
| 1266 | 1287 | exit; |
| 1267 | 1288 | break; | ... | ... |
| ... | ... | @@ -0,0 +1,157 @@ |
| 1 | +<?php | |
| 2 | +/* | |
| 3 | + * Faz o upload de csv e insere no banco de dados criando uma nova tabela | |
| 4 | + */ | |
| 5 | +include_once("admin.php"); | |
| 6 | +include_once("login.php"); | |
| 7 | +if(verificaOperacaoSessao("admin/metaestat/editorbanco") == false){ | |
| 8 | + echo "Vc nao pode realizar essa operacao.";exit; | |
| 9 | +} | |
| 10 | +error_reporting(0); | |
| 11 | +?> | |
| 12 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | |
| 13 | +<html> | |
| 14 | +<head> | |
| 15 | +<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> | |
| 16 | +<link rel="stylesheet" type="text/css" href="../../css/geral.css" /> | |
| 17 | +<title></title> | |
| 18 | +</head> | |
| 19 | +<body bgcolor="white" style="background-color:white;text-align:left;"> | |
| 20 | +<p> | |
| 21 | +<?php | |
| 22 | +if($_POST["tabelaDestino"] == ""){ | |
| 23 | + echo "Nome da tabela não definido"; | |
| 24 | + exit; | |
| 25 | +} | |
| 26 | +if ($_FILES['i3GEOuploadcsv']['name'] == ""){ | |
| 27 | + echo "Arquivo não definido"; | |
| 28 | + exit; | |
| 29 | +} | |
| 30 | +if (isset($_FILES['i3GEOuploadcsv']['name'])){ | |
| 31 | + require_once ("../../ms_configura.php"); | |
| 32 | + echo "<p class='paragrafo' >Carregando o arquivo...</p>"; | |
| 33 | + $arqcsv = $_FILES['i3GEOuploadcsv']['tmp_name']; | |
| 34 | + $nomePrefixo = str_replace(" ","_",removeAcentos($_FILES['i3GEOuploadcsv']['name'])); | |
| 35 | + $nomePrefixo = $nomePrefixo."_".(nomeRandomico(4)); | |
| 36 | + | |
| 37 | + $Arquivo = $_FILES['i3GEOuploadcsv']['tmp_name']; | |
| 38 | + $status = move_uploaded_file($Arquivo,$dir_tmp."/".$nomePrefixo); | |
| 39 | + if($status != 1) | |
| 40 | + {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo";exit;} | |
| 41 | + | |
| 42 | + | |
| 43 | + if(!file_exists($dir_tmp."/".$nomePrefixo)) | |
| 44 | + {echo "<p class='paragrafo' >Ocorreu algum problema no envio do arquivo ".$dir_tmp."/".$nomePrefixo;paraAguarde();exit;} | |
| 45 | + $arqcsv = $dir_tmp."/".$nomePrefixo; | |
| 46 | + | |
| 47 | + //pega os parametros de conexao | |
| 48 | + include("classe_metaestat.php"); | |
| 49 | + $m = new Metaestat(); | |
| 50 | + $conexao = $m->listaConexao($_POST["i3GEOuploadcodigoconexao"],true); | |
| 51 | + //pega a lista de colunas e identifica o separador utilizado | |
| 52 | + $handle = fopen ($arqcsv, "r"); | |
| 53 | + $cabecalho = fgets($handle); | |
| 54 | + $buffer = str_replace('"','',$cabecalho); | |
| 55 | + $buffer = str_replace("'",'',$buffer); | |
| 56 | + $buffer = str_replace("\n",'',$buffer); | |
| 57 | + $buffer = str_replace("\r",'',$buffer); | |
| 58 | + $colunas = explode(";",$buffer); | |
| 59 | + $separador = ";"; | |
| 60 | + if(count($colunas) == 1){ | |
| 61 | + $colunas = explode(",",$buffer); | |
| 62 | + $separador = ","; | |
| 63 | + } | |
| 64 | + //var_dump($colunas); | |
| 65 | + $colunas = implode(",",$colunas); | |
| 66 | + fclose ($handle); | |
| 67 | + | |
| 68 | + | |
| 69 | + //le o csv em um array | |
| 70 | + $handle = fopen ($arqcsv, "r"); | |
| 71 | + $linhas = array(); | |
| 72 | + while (!feof($handle)) { | |
| 73 | + $buffer = fgets($handle); | |
| 74 | + if($buffer != $cabecalho){ | |
| 75 | + $buffer = str_replace('"','',$buffer); | |
| 76 | + $buffer = str_replace("'",'',$buffer); | |
| 77 | + $buffer = str_replace("\n",'',$buffer); | |
| 78 | + $buffer = str_replace("\r",'',$buffer); | |
| 79 | + $linhas[] = explode($separador,$buffer); | |
| 80 | + } | |
| 81 | + } | |
| 82 | + fclose ($handle); | |
| 83 | + //decobre o tipo de coluna | |
| 84 | + $ncolunas = count($colunas); | |
| 85 | + for ($j=0; $j<$ncolunas;$j++){ | |
| 86 | + $tipo = "numeric"; | |
| 87 | + for ($i=0; $i<$testar;$i++){ | |
| 88 | + $s = $linhas[$i]; | |
| 89 | + $v = $s[$j]; | |
| 90 | + if(!is_numeric($v)){ | |
| 91 | + $tipo = "varchar"; | |
| 92 | + } | |
| 93 | + } | |
| 94 | + $tipoColuna[$colunas[$j]] = $tipo; | |
| 95 | + } | |
| 96 | + echo "<br>Tipos das colunas: <pre>"; | |
| 97 | + var_dump($tipoColuna); | |
| 98 | + echo "</pre>"; | |
| 99 | + //gera o script para criar a tabela | |
| 100 | + $sqltabela = array(); | |
| 101 | + $sql = "CREATE TABLE ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]."("; | |
| 102 | + foreach($colunas as $coluna){ | |
| 103 | + $sql .= ",".strtolower($coluna)." ".$tipoColuna[$coluna]; | |
| 104 | + } | |
| 105 | + $sql .= ")WITH(OIDS=FALSE)"; | |
| 106 | + $sqltabela[] = $sql; | |
| 107 | + $sqltabela[] = "ALTER TABLE ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." OWNER TO ".$conexao["usuario"]; | |
| 108 | + echo "<br>Sql tabela: <pre>"; | |
| 109 | + var_dump($sqltabela); | |
| 110 | + echo "</pre>"; | |
| 111 | + //gera o script para inserir os dados | |
| 112 | + $linhasql = array(); | |
| 113 | + $insert = "INSERT INTO ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]."(".strtolower(implode(",",$colunas)).")"; | |
| 114 | + $nlinhas = count($linhas); | |
| 115 | + for ($i=0; $i<$nlinhas;$i++){ | |
| 116 | + $s = $linhas[$i]; | |
| 117 | + $vs = array(); | |
| 118 | + $vs[] = $i; | |
| 119 | + for ($j=0; $j<$ncolunas;$j++){ | |
| 120 | + if($tipoColuna[$colunas[$j]] == "varchar"){ | |
| 121 | + $vs[] = "'".$s[$j]."'"; | |
| 122 | + } | |
| 123 | + else{ | |
| 124 | + $vs[] = $s[$j]; | |
| 125 | + } | |
| 126 | + } | |
| 127 | + $linhasql[] = $insert."VALUES(".implode(",",$vs).")"; | |
| 128 | + } | |
| 129 | + try { | |
| 130 | + $dbh = new PDO('pgsql:dbname='.$conexao["bancodedados"].';user='.$conexao["usuario"].';password='.$conexao["senha"].';host='.$conexao["host"].';port='.$conexao["porta"]); | |
| 131 | + } catch (PDOException $e) { | |
| 132 | + echo 'Connection failed: ' . $e->getMessage(); | |
| 133 | + } | |
| 134 | + | |
| 135 | + foreach($sqltabela as $linha){ | |
| 136 | + try { | |
| 137 | + $dbh->query($linha); | |
| 138 | + } catch (PDOException $e) { | |
| 139 | + echo 'Erro: ' . $e->getMessage(); | |
| 140 | + } | |
| 141 | + } | |
| 142 | + foreach($linhasql as $linha){ | |
| 143 | + try { | |
| 144 | + $dbh->query($linha); | |
| 145 | + } catch (PDOException $e) { | |
| 146 | + echo 'Erro: ' . $e->getMessage(); | |
| 147 | + } | |
| 148 | + } | |
| 149 | + echo "<br>Feito!!!<br>Faça o reload da página"; | |
| 150 | +} | |
| 151 | +else{ | |
| 152 | + echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>"; | |
| 153 | +} | |
| 154 | + | |
| 155 | +?> | |
| 156 | +</body> | |
| 157 | +</html> | ... | ... |
admin/php/metaestat_uploaddados_submit.php
| ... | ... | @@ -2,6 +2,7 @@ |
| 2 | 2 | $colunasarquivo = ""; |
| 3 | 3 | $nomearquivoserv = ""; |
| 4 | 4 | error_reporting(0); |
| 5 | +//var_dump($_FILES);exit; | |
| 5 | 6 | if (isset($_FILES['i3GEOuploadArquivo']['name'])) |
| 6 | 7 | { |
| 7 | 8 | require_once (dirname(__FILE__)."/../../ms_configura.php"); |
| ... | ... | @@ -23,7 +24,6 @@ if (isset($_FILES['i3GEOuploadArquivo']['name'])) |
| 23 | 24 | if(count($colunas) == 1){ |
| 24 | 25 | $colunas = explode(",",$buffer); |
| 25 | 26 | } |
| 26 | - //var_dump($colunas); | |
| 27 | 27 | $colunasarquivo = implode(",",$colunas); |
| 28 | 28 | } |
| 29 | 29 | } | ... | ... |
ferramentas/metaestat/dicionario1.js
| ... | ... | @@ -136,7 +136,7 @@ it:"" |
| 136 | 136 | }], |
| 137 | 137 | "20":[ |
| 138 | 138 | { |
| 139 | -pt:"Antes de continuar você pode inserir dados na variável que foi criada fazendo o upload de um arquivo no formato CSV. Essa inclusão poderá ser feita posteriormente, nesse caso você deverá atualizar a definição das classes que forem utilizadas na representação dos dados", | |
| 139 | +pt:"Antes de continuar você com o ajudante, pode inserir dados na variável que foi criada fazendo o upload de um arquivo no formato CSV. Essa inclusão poderá ser feita posteriormente, nesse caso lembre-se que você deverá atualizar a definição das classes que forem utilizadas na representação dos dados", | |
| 140 | 140 | en:"", |
| 141 | 141 | es:"", |
| 142 | 142 | it:"" | ... | ... |
ferramentas/metaestat/index.js
| ... | ... | @@ -61,6 +61,8 @@ i3GEOF.metaestat = { |
| 61 | 61 | if(Interface && Interface != ""){ |
| 62 | 62 | i3GEOF.metaestat.INTERFACE = Interface; |
| 63 | 63 | } |
| 64 | + i3GEOF.metaestat.CODIGO_VARIAVEL = ""; | |
| 65 | + i3GEOF.metaestat.ID_MEDIDA_VARIAVEL = ""; | |
| 64 | 66 | if(codigo_variavel && codigo_variavel != ""){ |
| 65 | 67 | i3GEOF.metaestat.CODIGO_VARIAVEL = codigo_variavel; |
| 66 | 68 | } |
| ... | ... | @@ -864,7 +866,7 @@ i3GEOF.metaestat = { |
| 864 | 866 | } |
| 865 | 867 | else{ |
| 866 | 868 | opacidade = ""; |
| 867 | - } | |
| 869 | + } | |
| 868 | 870 | i3GEO.php.mapfileMedidaVariavel( |
| 869 | 871 | temp, |
| 870 | 872 | $i("i3geoCartoComboMedidasVariavel").value, |
| ... | ... | @@ -1123,7 +1125,7 @@ i3GEOF.metaestat = { |
| 1123 | 1125 | i3GEOadmin.variaveis.editar("medidaVariavel",""); |
| 1124 | 1126 | //insere uma opcao para ativar as opcoes adicionais que sao usadas quando o usuario quer |
| 1125 | 1127 | //usar dados ja existentes em um banco de dados |
| 1126 | - var botoesdiv = $i("okcancel_checkbox"), | |
| 1128 | + var temp,botoesdiv = $i("okcancel_checkbox"), | |
| 1127 | 1129 | btn = document.createElement("div"); |
| 1128 | 1130 | 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á existente ou alterar os parâmetros adicionais"; |
| 1129 | 1131 | botoesdiv.appendChild(btn); |
| ... | ... | @@ -1138,7 +1140,7 @@ i3GEOF.metaestat = { |
| 1138 | 1140 | //o esquema e o public |
| 1139 | 1141 | $i("Eesquemadb").value = "i3geo_metaestat"; |
| 1140 | 1142 | //a tabela onde ficarao os dados |
| 1141 | - $i("Etabela").value = "indicadores_bairro"; | |
| 1143 | + $i("Etabela").value = "dados_medidas"; | |
| 1142 | 1144 | //coluna com os valores |
| 1143 | 1145 | $i("Ecolunavalor").value = "valor_num"; |
| 1144 | 1146 | //id que liga com o geo |
| ... | ... | @@ -1149,25 +1151,27 @@ i3GEOF.metaestat = { |
| 1149 | 1151 | $i("Ecodigo_unidade_medida").value = 1; |
| 1150 | 1152 | $i("Ecodigo_unidade_medida").style.width = "90%"; |
| 1151 | 1153 | //periodo |
| 1152 | - $i("Ecodigo_tipo_periodo").value = 0; | |
| 1153 | - $i("Ecodigo_tipo_periodo").style.width = "90%"; | |
| 1154 | + temp = $i("Ecodigo_tipo_periodo"); | |
| 1155 | + temp.value = 0; | |
| 1156 | + temp.style.width = "90%"; | |
| 1157 | + //mostra os campos para definir os parametros de tempo | |
| 1158 | + temp.onchange = function(){ | |
| 1159 | + $i("EparametrosTempo").style.display = "block"; | |
| 1160 | + if($i("editorMedidaDefault").style.display == "block"){ | |
| 1161 | + i3GEO.janela.tempoMsg("Especifique as colunas que contém os dados temporais no final do formulário"); | |
| 1162 | + } | |
| 1163 | + if($i("EparametrosTempo").value == ""){ | |
| 1164 | + $i("EcolunaAno").value = ""; | |
| 1165 | + $i("EcolunaMes").value = ""; | |
| 1166 | + $i("EcolunaDia").value = ""; | |
| 1167 | + $i("EcolunaHora").value = ""; | |
| 1168 | + } | |
| 1169 | + } | |
| 1154 | 1170 | //impede a alteracao do filtro |
| 1155 | 1171 | $i("Efiltro").disabled = "disabled"; |
| 1156 | 1172 | //altera a tabela quando escolher |
| 1157 | - $i("Ecodigo_tipo_regiao").onchange = function(){ | |
| 1158 | - var c = $i("Ecodigo_tipo_regiao"); | |
| 1159 | - if(c.value != ""){ | |
| 1160 | - //nesse caso, o nome da tabela e padrao | |
| 1161 | - if(i3GEOadmin && $i("Eesquemadb").value === "i3geo_metaestat"){ | |
| 1162 | - $i("Etabela").value = i3GEOadmin.variaveis.dadosAuxiliares.tipo_regiao[c.selectedIndex - 1].tabela; | |
| 1163 | - } | |
| 1164 | - else{ | |
| 1165 | - alert("Escolha uma tabela compatível com essa região"); | |
| 1166 | - $i("Etabela").value = ""; | |
| 1167 | - } | |
| 1168 | - } | |
| 1169 | - }; | |
| 1170 | 1173 | $i("Ecodigo_tipo_regiao").style.width = "90%"; |
| 1174 | + | |
| 1171 | 1175 | }, |
| 1172 | 1176 | editaMedidaVariavel: function(){ |
| 1173 | 1177 | i3GEOadmin.variaveis.aposGravar = function(){ |
| ... | ... | @@ -1249,9 +1253,11 @@ i3GEOF.metaestat = { |
| 1249 | 1253 | }, |
| 1250 | 1254 | comboVariaveisOnchange: function(){ |
| 1251 | 1255 | i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t2"); |
| 1256 | + i3GEOF.metaestat.CODIGO_VARIAVEL = $i("i3geoCartoComboVariavelEditor").value; | |
| 1252 | 1257 | }, |
| 1253 | 1258 | comboMedidaVariavelOnchange: function(combo){ |
| 1254 | 1259 | i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t3"); |
| 1260 | + i3GEOF.metaestat.ID_MEDIDA_VARIAVEL = $i("i3geoCartoComboMedidaVariavelEditor").value; | |
| 1255 | 1261 | }, |
| 1256 | 1262 | quartis: function(){ |
| 1257 | 1263 | var id_medida_variavel = $i("i3geoCartoComboMedidaVariavelEditor").value, |
| ... | ... | @@ -1617,9 +1623,11 @@ i3GEOF.metaestat = { |
| 1617 | 1623 | novoel.id = idpar; |
| 1618 | 1624 | novoel.className = "paragrafo"; |
| 1619 | 1625 | onde.appendChild(novoel); |
| 1620 | - onde = novoel; | |
| 1621 | 1626 | } |
| 1622 | 1627 | onde = $i(idpar); |
| 1628 | + //if($i(idcombo)){ | |
| 1629 | + // $i(idcombo).parentNode.innerHTML = ""; | |
| 1630 | + //} | |
| 1623 | 1631 | if(!$i(idcombo)){ |
| 1624 | 1632 | i3GEOF.metaestat.comum.aguarde(onde); |
| 1625 | 1633 | novoel = document.createElement("div"); |
| ... | ... | @@ -1656,9 +1664,9 @@ i3GEOF.metaestat = { |
| 1656 | 1664 | i3GEO.php.listaValoresParametroMedidaVariavel(id_parametro_medida,temp); |
| 1657 | 1665 | }, |
| 1658 | 1666 | antesCombo: function(){ |
| 1659 | - if(!$i("i3geoCartoClasses_corpo")){ | |
| 1660 | - i3GEOF.metaestat.classes.inicia(); | |
| 1661 | - } | |
| 1667 | + //if(!$i("i3geoCartoClasses_corpo")){ | |
| 1668 | + //i3GEOF.metaestat.classes.inicia(); | |
| 1669 | + //} | |
| 1662 | 1670 | }, |
| 1663 | 1671 | //retorna o id do parametro que e filho de um outro parametro |
| 1664 | 1672 | retornaIdFilho:function(pai){ | ... | ... |
ferramentas/metaestat/upload.html
| ... | ... | @@ -5,10 +5,10 @@ |
| 5 | 5 | <title>Upload de dados</title> |
| 6 | 6 | <style type="text/css"> |
| 7 | 7 | /*margin and padding on body element |
| 8 | - can introduce errors in determining | |
| 9 | - element position and are not recommended; | |
| 10 | - we turn them off as a foundation for YUI | |
| 11 | - CSS treatments. */ | |
| 8 | + can introduce errors in determining | |
| 9 | + element position and are not recommended; | |
| 10 | + we turn them off as a foundation for YUI | |
| 11 | + CSS treatments. */ | |
| 12 | 12 | body { |
| 13 | 13 | margin: 0; |
| 14 | 14 | padding: 0; |
| ... | ... | @@ -28,29 +28,30 @@ body { |
| 28 | 28 | <br> |
| 29 | 29 | <form id=i3GEOupload target="i3GEOuploadiframe" action="../../admin/php/metaestat_uploaddados_submit.php" onsubmit="i3GEOadmin.uploaddados.upload.submit();" method="post" ENCTYPE="multipart/form-data"> |
| 30 | 30 | <p class="paragrafo"> |
| 31 | - <input class=digitar type="file" size=22 name="i3GEOuploadArquivo" style="top: 0px;left: 0px;cursor: pointer;"> | |
| 31 | + <input class=digitar type="file" size=22 name="i3GEOuploadArquivo" style="top: 0px; left: 0px; cursor: pointer;"> | |
| 32 | 32 | </p> |
| 33 | - <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> <input type="submit" value="Enviar" size="22"> | |
| 33 | + <input type="hidden" name="MAX_FILE_SIZE" value="100000000"> <input type="submit" value="Enviar" size="22"> | |
| 34 | 34 | </form> |
| 35 | 35 | <br> |
| 36 | 36 | <div id="i3GEOadminEditorColunas" style="left: -5px;"></div> |
| 37 | - <iframe id="i3GEOuploadiframe" name="i3GEOuploadiframe" src="#" style="width: 0; | |
| 38 | - height: 0; | |
| 39 | - border: 0px solid #fff;"></iframe> | |
| 37 | + <iframe id="i3GEOuploadiframe" name="i3GEOuploadiframe" src="#" style="width: 0; height: 0; border: 0px solid #fff;"></iframe> | |
| 40 | 38 | <div id=logajax style="display: block"></div> |
| 41 | 39 | <script> |
| 42 | 40 | //recupera a variavel escolhida se existir |
| 43 | - try{ | |
| 44 | - if(window.parent && window.parent.i3GEOF && window.parent.i3GEOF.metaestat){ | |
| 41 | + try { | |
| 42 | + if (window.parent && window.parent.i3GEOF | |
| 43 | + && window.parent.i3GEOF.metaestat) { | |
| 45 | 44 | i3GEOF.metaestat.CODIGO_VARIAVEL = window.parent.i3GEOF.metaestat.CODIGO_VARIAVEL; |
| 46 | 45 | i3GEOF.metaestat.ID_MEDIDA_VARIAVEL = window.parent.i3GEOF.metaestat.ID_MEDIDA_VARIAVEL; |
| 46 | + i3GEO.configura.locaplic = window.parent.i3GEO.configura.locaplic; | |
| 47 | 47 | } |
| 48 | + } catch (e) { | |
| 49 | + i3GEO.configura = { | |
| 50 | + locaplic : "../.." | |
| 51 | + }; | |
| 48 | 52 | } |
| 49 | - catch(e){} | |
| 50 | 53 | //necessario para a ferramenta login e outras |
| 51 | - i3GEO.configura = { | |
| 52 | - locaplic : "../.." | |
| 53 | - }; | |
| 54 | + | |
| 54 | 55 | i3GEOadmin.uploaddados.inicia(); |
| 55 | 56 | /* |
| 56 | 57 | temp = function() { | ... | ... |