Commit f556773b8d201056271f9b6be56970d0a5a567f6

Authored by Edmar Moretti
1 parent 974de6f5

Correções no sistema de metadados estatísticos

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&iacute;odo:",id:"",size:"50",value:i.codigo_tipo_periodo,tipo:"text",div:"<div id=Ccodigo_tipo_periodo ></div>"},
301   - {titulo:"Tipo de regi&atilde;o:",id:"",size:"50",value:i.codigo_tipo_regiao,tipo:"text",div:"<div id=Ccodigo_tipo_regiao ></div>"}
302   - ]
  301 + {titulo:"Tipo de regi&atilde;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&atilde;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&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:""},
313 314 {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:""},
... ... @@ -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&ecirc;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&iacute;vel com essa regi&atilde;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;
... ...
admin/php/metaestat_uploadcsv_submit.php 0 → 100644
... ... @@ -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&atilde;o definido";
  24 + exit;
  25 +}
  26 +if ($_FILES['i3GEOuploadcsv']['name'] == ""){
  27 + echo "Arquivo n&atilde;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&ccedil;a o reload da p&aacute;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[&#39;i3GEOuploadArquivo&#39;][&#39;name&#39;]))
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:&quot;&quot;
136 136 }],
137 137 "20":[
138 138 {
139   -pt:"Antes de continuar voc&ecirc; pode inserir dados na vari&aacute;vel que foi criada fazendo o upload de um arquivo no formato CSV. Essa inclus&atilde;o poder&aacute; ser feita posteriormente, nesse caso voc&ecirc; dever&aacute; atualizar a defini&ccedil;&atilde;o das classes que forem utilizadas na representa&ccedil;&atilde;o dos dados",
  139 +pt:"Antes de continuar voc&ecirc; com o ajudante, pode inserir dados na vari&aacute;vel que foi criada fazendo o upload de um arquivo no formato CSV. Essa inclus&atilde;o poder&aacute; ser feita posteriormente, nesse caso lembre-se que voc&ecirc; dever&aacute; atualizar a defini&ccedil;&atilde;o das classes que forem utilizadas na representa&ccedil;&atilde;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&aacute; existente ou alterar os par&acirc;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&eacute;m os dados temporais no final do formul&aacute;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&iacute;vel com essa regi&atilde;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() {
... ...