Commit 3783c4399357a3f0437d0810002bbed5a786fb0f
1 parent
13a92cb5
Exists in
master
and in
7 other branches
--no commit message
Showing
1 changed file
with
113 additions
and
4 deletions
Show diff stats
admin/php/classe_metaestat.php
@@ -23,7 +23,7 @@ Este programa é distribuído na expectativa de que seja útil | @@ -23,7 +23,7 @@ Este programa é distribuído na expectativa de que seja útil | ||
23 | porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | 23 | porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita |
24 | de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | 24 | de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. |
25 | Consulte a Licença Pública Geral do GNU para mais detalhes. | 25 | Consulte a Licença Pública Geral do GNU para mais detalhes. |
26 | -Você deve ter recebido uma c�pia da Licença Pública Geral do | 26 | +Você deve ter recebido uma copia da Licença Pública Geral do |
27 | GNU junto com este programa; se não, escreva para a | 27 | GNU junto com este programa; se não, escreva para a |
28 | Free Software Foundation, Inc., no endereço | 28 | Free Software Foundation, Inc., no endereço |
29 | 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | 29 | 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. |
@@ -897,7 +897,7 @@ class Metaestat{ | @@ -897,7 +897,7 @@ class Metaestat{ | ||
897 | * @param id da medida | 897 | * @param id da medida |
898 | * @param filtro a ser concatenado ao sql | 898 | * @param filtro a ser concatenado ao sql |
899 | * @param coluna de agrupamento | 899 | * @param coluna de agrupamento |
900 | - * @return array("colunavalor"=>,"soma"=>,"media"=>,"menor"=>,"maior"=>,"quantidade"=>,"histograma"=>,"grupos"=>,"unidademedida"=>,"quartis"=>) | 900 | + * @return array("colunavalor"=>,"soma"=>,"media"=>,"menor"=>,"maior"=>,"quantidade"=>,"histograma"=>,"grupos"=>,"unidademedida"=>,"quartis"=>) |
901 | */ | 901 | */ |
902 | function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor=""){ | 902 | function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor=""){ |
903 | if(!empty($agruparpor)){ | 903 | if(!empty($agruparpor)){ |
@@ -1852,12 +1852,30 @@ class Metaestat{ | @@ -1852,12 +1852,30 @@ class Metaestat{ | ||
1852 | $sql .= "AND codigo_tipo_regiao = $codigo_tipo_regiao"; | 1852 | $sql .= "AND codigo_tipo_regiao = $codigo_tipo_regiao"; |
1853 | return $this->execSQL($sql,$codigo_tipo_regiao_pai); | 1853 | return $this->execSQL($sql,$codigo_tipo_regiao_pai); |
1854 | } | 1854 | } |
1855 | + /** | ||
1856 | + * Lista os esquemas em um banco de dados | ||
1857 | + * @param codigo da conexao | ||
1858 | + * @return execSQLDB | ||
1859 | + */ | ||
1855 | function esquemasConexao($codigo_estat_conexao){ | 1860 | function esquemasConexao($codigo_estat_conexao){ |
1856 | return $this->execSQLDB($codigo_estat_conexao,"SELECT oid,nspname as esquema FROM pg_namespace group by nspname,oid order by nspname"); | 1861 | return $this->execSQLDB($codigo_estat_conexao,"SELECT oid,nspname as esquema FROM pg_namespace group by nspname,oid order by nspname"); |
1857 | } | 1862 | } |
1863 | + /** | ||
1864 | + * Cria um novo esquema no banco de dados | ||
1865 | + * @param codigo da conexao | ||
1866 | + * @param nome do esquema | ||
1867 | + * @return execSQLDB | ||
1868 | + */ | ||
1858 | function criaEsquemaDB($codigo_estat_conexao,$nome_esquema){ | 1869 | function criaEsquemaDB($codigo_estat_conexao,$nome_esquema){ |
1859 | return $this->execSQLDB($codigo_estat_conexao,"create schema $nome_esquema"); | 1870 | return $this->execSQLDB($codigo_estat_conexao,"create schema $nome_esquema"); |
1860 | } | 1871 | } |
1872 | + /** | ||
1873 | + * Lista as tabelas de um esquema | ||
1874 | + * @param codigo da conexao | ||
1875 | + * @param nome do esquema | ||
1876 | + * @param sim|nao exclui da lista as tabelas que contem geometria | ||
1877 | + * @return execSQLDB | ||
1878 | + */ | ||
1861 | function tabelasEsquema($codigo_estat_conexao,$nome_esquema,$excluigeom=""){ | 1879 | function tabelasEsquema($codigo_estat_conexao,$nome_esquema,$excluigeom=""){ |
1862 | $sql = "SELECT table_name as tabela FROM information_schema.tables where table_schema = '$nome_esquema'"; | 1880 | $sql = "SELECT table_name as tabela FROM information_schema.tables where table_schema = '$nome_esquema'"; |
1863 | if(strtolower($excluigeom) == "sim"){ | 1881 | if(strtolower($excluigeom) == "sim"){ |
@@ -1865,9 +1883,26 @@ class Metaestat{ | @@ -1865,9 +1883,26 @@ class Metaestat{ | ||
1865 | } | 1883 | } |
1866 | return $this->execSQLDB($codigo_estat_conexao,$sql); | 1884 | return $this->execSQLDB($codigo_estat_conexao,$sql); |
1867 | } | 1885 | } |
1886 | + /** | ||
1887 | + * Cria uma nova tabela no banco de dados | ||
1888 | + * A nova tabela tera apenas uma coluna chamada gid (PK) | ||
1889 | + * @param codigo da conexao | ||
1890 | + * @param nome do esquema | ||
1891 | + * @param nome da tabela | ||
1892 | + * @return execSQLDB | ||
1893 | + */ | ||
1868 | function criaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela){ | 1894 | function criaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela){ |
1869 | return $this->execSQLDB($codigo_estat_conexao,"create table ".$nome_esquema.".".$nome_tabela." (gid serial, CONSTRAINT ".$nome_tabela."_pkey PRIMARY KEY (gid ))"); | 1895 | return $this->execSQLDB($codigo_estat_conexao,"create table ".$nome_esquema.".".$nome_tabela." (gid serial, CONSTRAINT ".$nome_tabela."_pkey PRIMARY KEY (gid ))"); |
1870 | } | 1896 | } |
1897 | + /** | ||
1898 | + * ALtera o nome de uma tabela | ||
1899 | + * Atualiza as tabelas i3geoestat_medida_variavel e i3geoestat_tipo_regiao | ||
1900 | + * @param codigo da conexao | ||
1901 | + * @param nome do esquema | ||
1902 | + * @param nome da tabela atual | ||
1903 | + * @param novo nome da tabela | ||
1904 | + * @return execSQLDB | ||
1905 | + */ | ||
1871 | function alteraNomeTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$novonome_tabela){ | 1906 | function alteraNomeTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$novonome_tabela){ |
1872 | $res = $this->execSQLDB($codigo_estat_conexao,"ALTER TABLE ".$nome_esquema.".".$nome_tabela." RENAME TO ".$novonome_tabela ); | 1907 | $res = $this->execSQLDB($codigo_estat_conexao,"ALTER TABLE ".$nome_esquema.".".$nome_tabela." RENAME TO ".$novonome_tabela ); |
1873 | $tabela = $this->execSQLDB($codigo_estat_conexao,"SELECT table_name FROM information_schema.tables where table_name = '$novonome_tabela' and table_schema = '$nome_esquema'"); | 1908 | $tabela = $this->execSQLDB($codigo_estat_conexao,"SELECT table_name FROM information_schema.tables where table_name = '$novonome_tabela' and table_schema = '$nome_esquema'"); |
@@ -1879,9 +1914,25 @@ class Metaestat{ | @@ -1879,9 +1914,25 @@ class Metaestat{ | ||
1879 | } | 1914 | } |
1880 | return $res; | 1915 | return $res; |
1881 | } | 1916 | } |
1917 | + /** | ||
1918 | + * Faz uma copia de uma tabela | ||
1919 | + * @param codigo da conexao | ||
1920 | + * @param esquema | ||
1921 | + * @param nome da tabela existente | ||
1922 | + * @param nome da nova tabela | ||
1923 | + * @return execSQLDB | ||
1924 | + */ | ||
1882 | function copiaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$novonome_tabela){ | 1925 | function copiaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$novonome_tabela){ |
1883 | return $this->execSQLDB($codigo_estat_conexao,"CREATE TABLE ".$nome_esquema.".".$novonome_tabela." AS select * from ".$nome_esquema.".".$nome_tabela ); | 1926 | return $this->execSQLDB($codigo_estat_conexao,"CREATE TABLE ".$nome_esquema.".".$novonome_tabela." AS select * from ".$nome_esquema.".".$nome_tabela ); |
1884 | } | 1927 | } |
1928 | + /** | ||
1929 | + * Lista as colunas de uma tabela e seus metadados | ||
1930 | + * @param codigo da conexao | ||
1931 | + * @param nome do esquema | ||
1932 | + * @param nome da tabela | ||
1933 | + * @param tipo de coluna (opcional) | ||
1934 | + * @return execSQLDB | ||
1935 | + */ | ||
1885 | function colunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela,$tipo=""){ | 1936 | function colunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela,$tipo=""){ |
1886 | $colunas = array(); | 1937 | $colunas = array(); |
1887 | $res = $this->execSQLDB($codigo_estat_conexao,"SELECT column_name as coluna,udt_name FROM information_schema.columns where table_schema = '$nome_esquema' and table_name = '$nome_tabela'"); | 1938 | $res = $this->execSQLDB($codigo_estat_conexao,"SELECT column_name as coluna,udt_name FROM information_schema.columns where table_schema = '$nome_esquema' and table_name = '$nome_tabela'"); |
@@ -1893,9 +1944,28 @@ class Metaestat{ | @@ -1893,9 +1944,28 @@ class Metaestat{ | ||
1893 | } | 1944 | } |
1894 | return $colunas; | 1945 | return $colunas; |
1895 | } | 1946 | } |
1947 | + /** | ||
1948 | + * Cria uma coluna em uma tabela do banco | ||
1949 | + * @param codigo da conexao | ||
1950 | + * @param nome do esquema | ||
1951 | + * @param nome da tabela | ||
1952 | + * @param nome da nova coluna | ||
1953 | + * @param tipo da coluna | ||
1954 | + * @return execSQLDB | ||
1955 | + */ | ||
1896 | function criaColunaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$nova_coluna,$tipo){ | 1956 | function criaColunaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$nova_coluna,$tipo){ |
1897 | return $this->execSQLDB($codigo_estat_conexao,"ALTER TABLE ".$nome_esquema.".".$nome_tabela." ADD COLUMN $nova_coluna $tipo "); | 1957 | return $this->execSQLDB($codigo_estat_conexao,"ALTER TABLE ".$nome_esquema.".".$nome_tabela." ADD COLUMN $nova_coluna $tipo "); |
1898 | } | 1958 | } |
1959 | + /** | ||
1960 | + * Altera o nome de uma coluna de uma tabela | ||
1961 | + * Atualiza as tabelas i3geoestat_medida_variavel, i3geoestat_tipo_regiao, i3geoestat_parametro_medida e i3geoestat_agregaregiao | ||
1962 | + * @param codigo da conexao | ||
1963 | + * @param nome do esquema | ||
1964 | + * @param nome da tabela | ||
1965 | + * @param nome da coluna | ||
1966 | + * @param novo nome | ||
1967 | + * @return execSQLDB | ||
1968 | + */ | ||
1899 | function alteraNomeColunaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$nome_coluna,$novonome_coluna){ | 1969 | function alteraNomeColunaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$nome_coluna,$novonome_coluna){ |
1900 | $res = $this->execSQLDB($codigo_estat_conexao,"ALTER TABLE ".$nome_esquema.".".$nome_tabela." RENAME COLUMN $nome_coluna TO ".$novonome_coluna ); | 1970 | $res = $this->execSQLDB($codigo_estat_conexao,"ALTER TABLE ".$nome_esquema.".".$nome_tabela." RENAME COLUMN $nome_coluna TO ".$novonome_coluna ); |
1901 | $coluna = $this->execSQLDB($codigo_estat_conexao,"SELECT column_name FROM information_schema.columns where table_name = '$novonome_tabela' and table_schema = '$nome_esquema' and column_name = '$novonome_coluna'"); | 1971 | $coluna = $this->execSQLDB($codigo_estat_conexao,"SELECT column_name FROM information_schema.columns where table_name = '$novonome_tabela' and table_schema = '$nome_esquema' and column_name = '$novonome_coluna'"); |
@@ -1920,9 +1990,26 @@ class Metaestat{ | @@ -1920,9 +1990,26 @@ class Metaestat{ | ||
1920 | } | 1990 | } |
1921 | return $res; | 1991 | return $res; |
1922 | } | 1992 | } |
1993 | + /** | ||
1994 | + * Lista os metadados de uma coluna | ||
1995 | + * Os metadados são obtidos do próprio PostgreSQL | ||
1996 | + * @param codigo da conexao | ||
1997 | + * @param nome do esquema | ||
1998 | + * @param nome da tabela | ||
1999 | + * @return execSQLDB | ||
2000 | + */ | ||
1923 | function descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){ | 2001 | function descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){ |
1924 | return $this->execSQLDB($codigo_estat_conexao,"SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE c.relname = '$nome_tabela' and p.nspname = '$nome_esquema' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname"); | 2002 | return $this->execSQLDB($codigo_estat_conexao,"SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE c.relname = '$nome_tabela' and p.nspname = '$nome_esquema' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname"); |
1925 | } | 2003 | } |
2004 | + /** | ||
2005 | + * Lista os dados de uma tabela | ||
2006 | + * @param codigo da conexao | ||
2007 | + * @param nome do esquema | ||
2008 | + * @param nome da tabela | ||
2009 | + * @param sim|nao inclui o WKT da geometria de colunas geo | ||
2010 | + * @param (opcional) numero de registros que serao listados | ||
2011 | + * @return execSQLDB | ||
2012 | + */ | ||
1926 | function obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$geo="nao",$nreg=""){ | 2013 | function obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$geo="nao",$nreg=""){ |
1927 | $desccolunas = $this->descreveColunasTabela($codigo_estat_conexao, $nome_esquema, $nome_tabela); | 2014 | $desccolunas = $this->descreveColunasTabela($codigo_estat_conexao, $nome_esquema, $nome_tabela); |
1928 | $colunas = array(); | 2015 | $colunas = array(); |
@@ -1952,6 +2039,12 @@ class Metaestat{ | @@ -1952,6 +2039,12 @@ class Metaestat{ | ||
1952 | } | 2039 | } |
1953 | return array("nomescolunas"=>$colunas,"colunas"=>$desccolunas,"linhas"=>$linhas); | 2040 | return array("nomescolunas"=>$colunas,"colunas"=>$desccolunas,"linhas"=>$linhas); |
1954 | } | 2041 | } |
2042 | + /** | ||
2043 | + * Relatorio completo com a lista de variaveis e medidas | ||
2044 | + * @param codigo da variavel | ||
2045 | + * @param sim|nao inclui dados detalhados | ||
2046 | + * @return Array | ||
2047 | + */ | ||
1955 | function relatorioCompleto($codigo_variavel="",$dadosGerenciais="nao"){ | 2048 | function relatorioCompleto($codigo_variavel="",$dadosGerenciais="nao"){ |
1956 | $dados = array(); | 2049 | $dados = array(); |
1957 | if($codigo_variavel != "" || !empty($codigo_variavel)){ | 2050 | if($codigo_variavel != "" || !empty($codigo_variavel)){ |
@@ -1988,7 +2081,12 @@ class Metaestat{ | @@ -1988,7 +2081,12 @@ class Metaestat{ | ||
1988 | } | 2081 | } |
1989 | return $dados; | 2082 | return $dados; |
1990 | } | 2083 | } |
1991 | - //$dados vem de relatorioCompleto | 2084 | + /** |
2085 | + * Cria um raltorio formatado em HTML | ||
2086 | + * @param dados obtidos com relatorioCompleto | ||
2087 | + * @param sim|nao inclui os dados detalhados | ||
2088 | + * @return string | ||
2089 | + */ | ||
1992 | function formataRelatorioHtml($dados,$detalhes="sim"){ | 2090 | function formataRelatorioHtml($dados,$detalhes="sim"){ |
1993 | $html[] = "<div class='var_div_relatorio'>"; | 2091 | $html[] = "<div class='var_div_relatorio'>"; |
1994 | $var_cor = "var_cor1"; | 2092 | $var_cor = "var_cor1"; |
@@ -2034,6 +2132,11 @@ class Metaestat{ | @@ -2034,6 +2132,11 @@ class Metaestat{ | ||
2034 | $html[] = "</div><br><br>"; | 2132 | $html[] = "</div><br><br>"; |
2035 | return implode("",$html); | 2133 | return implode("",$html); |
2036 | } | 2134 | } |
2135 | + /** | ||
2136 | + * Cria um relatorio no formato XML | ||
2137 | + * @param dados obtidos com relatorioCompleto | ||
2138 | + * @return string | ||
2139 | + */ | ||
2037 | function formataXML($dados){ | 2140 | function formataXML($dados){ |
2038 | $chaves = array_keys($dados[0]); | 2141 | $chaves = array_keys($dados[0]); |
2039 | if(count($chaves) == 0){ | 2142 | if(count($chaves) == 0){ |
@@ -2094,7 +2197,13 @@ class Metaestat{ | @@ -2094,7 +2197,13 @@ class Metaestat{ | ||
2094 | $xml .= '</result-set>' . PHP_EOL; | 2197 | $xml .= '</result-set>' . PHP_EOL; |
2095 | return $xml; | 2198 | return $xml; |
2096 | } | 2199 | } |
2097 | - //busca o valor de uma chave em um array multiplo | 2200 | + /** |
2201 | + * Verifica se em um array existe uma chave com determinado valor | ||
2202 | + * @param Array | ||
2203 | + * @param nome da chave | ||
2204 | + * @param valor a ser buscado | ||
2205 | + * @return boolean | ||
2206 | + */ | ||
2098 | function buscaNoArray($lista,$chave,$valor){ | 2207 | function buscaNoArray($lista,$chave,$valor){ |
2099 | foreach($lista as $l){ | 2208 | foreach($lista as $l){ |
2100 | if($l[$chave] == $valor){ | 2209 | if($l[$chave] == $valor){ |