From ebb5931152e45266196fd79f02a31f55f7cb0971 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Fri, 8 Nov 2013 21:20:32 +0000 Subject: [PATCH] $1 --- admin/admin.db | Bin 229376 -> 0 bytes admin/js/estat_editor.js | 5 +++-- admin/js/estat_variavel.js | 22 +++++++++++----------- admin/php/metaestat_uploadcsv_submit.php | 44 ++++++++++++++++++++++++++++++++++---------- admin/php/metaestat_uploadshp_submit.php | 10 ++++++---- ferramentas/metaestat/analise.php | 14 +++++++------- ferramentas/metaestat/index.js | 8 ++++++-- 7 files changed, 67 insertions(+), 36 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 190607a..ebe732f 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/js/estat_editor.js b/admin/js/estat_editor.js index 8d8f195..4b56c60 100644 --- a/admin/js/estat_editor.js +++ b/admin/js/estat_editor.js @@ -582,7 +582,7 @@ i3GEOadmin.editor = { }, formulario: function(){ var ins = '
' + - '

CSV (utilize ponto como separador de valores decimais ou a importação poderá não ocorrer):

' + + '

CSV (Não utilize separador de milhar e utilize ponto como separador de casas decimais ou a importação poderá não ocorrer):

' + '

Nome da nova tabela (não utilize caracteres incompatíveis com o banco de dados, como -, acentos ou espaços em branco):
 ' + 'Ou escolha da lista: ' + '

' + '

 Inclui uma coluna gid do tipo serial e chave primária com código único

' + - '

Opcional: coluna que contém as latitudes (Y) coluna que contém as longitudes (X)

' + + '

Opcional (utilize sempre coordenadas em décimos de grau no CSV):

coluna que contém as latitudes (Y) coluna que contém as longitudes (X)

' + '

' + '' + '' + @@ -603,6 +603,7 @@ i3GEOadmin.editor = { '

' + '' + '

Após terminar o processo, atualize essa página para que a nova tabela criada apareça nas listas de seleção.

' + + '

Utilize o cadastro de regiões para registrar a tabela criada com latitude e longitude como uma nova unidade geográfica que poderá ser escolhida no processo de criação de variáveis.

' + '
'; return ins; }, diff --git a/admin/js/estat_variavel.js b/admin/js/estat_variavel.js index 0da9fd6..88f3c7c 100755 --- a/admin/js/estat_variavel.js +++ b/admin/js/estat_variavel.js @@ -301,21 +301,21 @@ i3GEOadmin.variaveis = { }, montaDiv: function(i){ var temp,ins = "",limg=i3GEO.configura.locaplic+"/imagens/ic_zoom.png", - param = { - "linhas":[ - {titulo:"Nome:",id:"Enomemedida",size:"50",value:i.nomemedida,tipo:"text",div:""}, - {titulo:"Unidade de medida:",id:"",size:"50",value:i.codigo_unidade_medida,tipo:"text",div:"
"}, - {titulo:"Tipo de período:",id:"",size:"50",value:i.codigo_tipo_periodo,tipo:"text",div:"
"}, - {titulo:"Tipo de região:",id:"",size:"50",value:i.codigo_tipo_regiao,tipo:"text",div:"
"}, - {titulo:"Tabela do banco que contem os valores: ",id:"Etabela",size:"50",value:i.tabela,tipo:"text",div:""} - ] - }; - ins += core_geraLinhas(param); - ins += "

"; param = { "linhas":[ + {titulo:"Nome:",id:"Enomemedida",size:"50",value:i.nomemedida,tipo:"text",div:""}, + {titulo:"Unidade de medida:",id:"",size:"50",value:i.codigo_unidade_medida,tipo:"text",div:"
"}, + {titulo:"Tipo de período:",id:"",size:"50",value:i.codigo_tipo_periodo,tipo:"text",div:"
"}, + {titulo:"Tipo de região:",id:"",size:"50",value:i.codigo_tipo_regiao,tipo:"text",div:"
"}, {titulo:"Conexão:",id:"",size:"50",value:i.codigo_estat_conexao,tipo:"text",div:"
"}, {titulo:"Esquema do banco: ",id:"Eesquemadb",size:"50",value:i.esquemadb,tipo:"text",div:""}, + {titulo:"Tabela do banco que contem os valores: ",id:"Etabela",size:"50",value:i.tabela,tipo:"text",div:""} + ] + }; + ins += core_geraLinhas(param); + ins += "

"; + param = { + "linhas":[ {titulo:"Coluna com os valores: ",id:"Ecolunavalor",size:"50",value:i.colunavalor,tipo:"text",div:""}, {titulo:"Coluna de ligação com a tabela GEO: ",id:"Ecolunaidgeo",size:"50",value:i.colunaidgeo,tipo:"text",div:""}, {titulo:"Coluna com os IDs únicos que identificam cada registro da tabela com os valores: ",id:"Ecolunaidunico",size:"50",value:i.colunaidunico,tipo:"text",div:""}, diff --git a/admin/php/metaestat_uploadcsv_submit.php b/admin/php/metaestat_uploadcsv_submit.php index 51e709a..5373774 100644 --- a/admin/php/metaestat_uploadcsv_submit.php +++ b/admin/php/metaestat_uploadcsv_submit.php @@ -114,6 +114,18 @@ if (ob_get_level() == 0) ob_start(); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } + //encoding do banco de dados + $sql = "SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = '".$conexao["bancodedados"]."'"; + $res = $dbh->query($sql,PDO::FETCH_ASSOC); + $encodingdb = $res->fetchAll(); + $encodingdb = $encodingdb[0]; + $encodingdb = $encodingdb["pg_encoding_to_char"]; + if($encodingdb == "UTF8"){ + $encodingdb = "UTF-8"; + } + if($encodingdb == "LATIN1"){ + $encodingdb = "ISO-8859-1"; + } //gera o script para criar a tabela e verifica se ja existe $sql = "SELECT table_name FROM information_schema.tables where table_schema = '".$_POST["i3GEOuploadcsvesquema"]."' AND table_name = '".$_POST["tabelaDestinocsv"]."'"; $res = $dbh->query($sql,PDO::FETCH_ASSOC); @@ -171,28 +183,40 @@ if (ob_get_level() == 0) ob_start(); $vs = array(); for ($j=0; $j<$ncolunas;$j++){ if($tipoColuna[$colunas[$j]] == "varchar"){ - $texto = str_replace("'","",$s[$j]); - $vs[] = "'".$texto."'"; - } - else{ - if(empty($s[$j]) && $s[$j] != 0){ - $vs[] = 'null'; + $texto = $s[$j]; + $texto = str_replace("'","",$texto); + $enc = mb_detect_encoding($texto); + if(enc != ""){ + $texto = "'".mb_convert_encoding($texto,$encodingdb,$enc)."'"; } else{ - $vs[] = $s[$j]; + $texto = "'".$texto."'"; + } + if($texto == "''"){ + $texto = 'null'; + } + $vs[] = $texto; + } + else{ + $valor = $s[$j]; + if($valor == ""){ + $valor = "nulo"; } + $vs[] = $valor; } - if($colunas[$j] == $_POST["colunaxcsv"]){ + if(strtolower($colunas[$j]) == strtolower($_POST["colunaxcsv"])){ $valorX = $s[$j]; } - if($colunas[$j] == $_POST["colunaycsv"]){ + if(strtolower($colunas[$j]) == strtolower($_POST["colunaycsv"])){ $valorY = $s[$j]; } } if($_POST["colunaxcsv"] != "" && $_POST["colunaycsv"] != ""){ $vs[] = "ST_PointFromText('POINT(". str_replace(",",".",$valorX)." ".str_replace(",",".",$valorY).")',4326)"; } - $linhasql[] = $insert."VALUES(".implode(",",$vs).")"; + $str = implode(",",$vs); + $str = str_replace("nulo",'null',$str); + $linhasql[] = $insert."VALUES(".$str.")"; } echo "
";
 			//var_dump($linhasql);exit;
diff --git a/admin/php/metaestat_uploadshp_submit.php b/admin/php/metaestat_uploadshp_submit.php
index be71e0e..e0dfa9b 100755
--- a/admin/php/metaestat_uploadshp_submit.php
+++ b/admin/php/metaestat_uploadshp_submit.php
@@ -115,7 +115,7 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){
 	ob_flush();
 	flush();
 	sleep(1);
-	
+
 	try {
 		$dbh = new PDO('pgsql:dbname='.$conexao["bancodedados"].';user='.$conexao["usuario"].';password='.$conexao["senha"].';host='.$conexao["host"].';port='.$conexao["porta"]);
 	} catch (PDOException $e) {
@@ -204,14 +204,16 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){
 			}
 			else{
 				$valor = $s->getValue($layer,$coluna);
-				if(empty($valor) && $valor != 0){
-					$valor = 'null';
+				if($valor = "" || (empty($valor) && $valor != 0){
+					$valor = 'nulo';
 				}
 				$vs[] = $valor;
 			}
 		}
 		$vs[] = "st_geomfromtext('".$s->toWkt()."','".$_POST["srid"]."')";
-		$linhas[] = $insert."VALUES(".implode(",",$vs).")";
+		$str = implode(",",$vs);
+		$str = str_replace("nulo",'null',$str);
+		$linhas[] = $insert."VALUES(".$str.")";
 	}
 	//echo "
".var_dump($linhas);exit;
 	$layer->close();
diff --git a/ferramentas/metaestat/analise.php b/ferramentas/metaestat/analise.php
index 307f8a1..4cb7711 100644
--- a/ferramentas/metaestat/analise.php
+++ b/ferramentas/metaestat/analise.php
@@ -677,12 +677,12 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula
 		//pega valores do primeiro layer para a tabela0
 		if($conta == 0){
 			$codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO");
-			$gid = $medidavariavel["colunaidunico"];
 		}
 		$conta++;
 	}
 	//coluna com a geometria
 	$regiao = $m->listaTipoRegiao($codigo_tipo_regiao);
+	$gid = $regiao["identificador"];
 	$n = count($sqls);
 
 	$cwhere = array();
@@ -691,7 +691,7 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula
 	}
 	$colunasDados = array();
 	$itens = array($gid,"regiao");
-	$itensdesc = array("gid","Regiao");
+	$itensdesc = array("id","Regiao");
 	$tabelaColuna = array();
 	for($i=0;$i<$n;$i++){
 		$colunasDados[] = "tabela".$i.".".$colunasValor[$i]." as valortema".$i;
@@ -735,11 +735,11 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula
 	$nlayer->setmetadata("tema",$nome);
 	$nlayer->setmetadata("METAESTAT_DERIVADO","sim");
 	$nlayer->setmetadata("METAESTAT_ID_MEDIDA_VARIAVEL","");
-		$nlayer->setmetadata("TIP","");
-		$nlayer->setmetadata("arquivotemaoriginal","");
-		$nlayer->setmetadata("nomeoriginal","");
-		$nlayer->setmetadata("ITENS",implode(",",$itens));
-		$nlayer->setmetadata("ITENSDESC",implode(",",$itensdesc));
+	$nlayer->setmetadata("TIP","");
+	$nlayer->setmetadata("arquivotemaoriginal","");
+	$nlayer->setmetadata("nomeoriginal","");
+	$nlayer->setmetadata("ITENS",implode(",",$itens));
+	$nlayer->setmetadata("ITENSDESC",implode(",",$itensdesc));
 	$nclass = $nlayer->numclasses;
 	for($i=1;$i<$nclass;$i++){
 		$nlayer->getclass($i)->set("status",MS_DELETE);
diff --git a/ferramentas/metaestat/index.js b/ferramentas/metaestat/index.js
index 371eb83..16ce920 100644
--- a/ferramentas/metaestat/index.js
+++ b/ferramentas/metaestat/index.js
@@ -1620,11 +1620,15 @@ i3GEOF.metaestat = {
 			//insere uma opcao para ativar as opcoes adicionais que sao usadas quando o usuario quer
 			//usar dados ja existentes em um banco de dados
 			var temp,botoesdiv = $i("okcancel_checkbox"),
-				btn = document.createElement("div");
-			btn.innerHTML = "
Quero usar uma tabela já existente ou alterar os parâmetros adicionais"; + btn = document.createElement("div"), + oclick = '$i(\"editorMedidaDefault\").style.display = \"block\";$i(\"Eesquemadb\").style.display = \"block\";$i(\"Etabela\").style.display = \"block\";'; + btn.innerHTML = "
Quero usar uma tabela já existente ou alterar os parâmetros adicionais"; botoesdiv.appendChild(btn); $i("editorMedidaDefault").style.display = "none"; + $i("Eesquemadb").style.display = "none"; + $i("Etabela").style.display = "none"; + //passa o codigo da variavel $i("Ecodigo_variavel").value = $i("i3geoCartoComboVariavelEditor").value; //define os valores que sao padrao -- libgit2 0.21.2