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 | 23 | porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita |
24 | 24 | de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. |
25 | 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 | 27 | GNU junto com este programa; se não, escreva para a |
28 | 28 | Free Software Foundation, Inc., no endereço |
29 | 29 | 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. |
... | ... | @@ -897,7 +897,7 @@ class Metaestat{ |
897 | 897 | * @param id da medida |
898 | 898 | * @param filtro a ser concatenado ao sql |
899 | 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 | 902 | function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor=""){ |
903 | 903 | if(!empty($agruparpor)){ |
... | ... | @@ -1852,12 +1852,30 @@ class Metaestat{ |
1852 | 1852 | $sql .= "AND codigo_tipo_regiao = $codigo_tipo_regiao"; |
1853 | 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 | 1860 | function esquemasConexao($codigo_estat_conexao){ |
1856 | 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 | 1869 | function criaEsquemaDB($codigo_estat_conexao,$nome_esquema){ |
1859 | 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 | 1879 | function tabelasEsquema($codigo_estat_conexao,$nome_esquema,$excluigeom=""){ |
1862 | 1880 | $sql = "SELECT table_name as tabela FROM information_schema.tables where table_schema = '$nome_esquema'"; |
1863 | 1881 | if(strtolower($excluigeom) == "sim"){ |
... | ... | @@ -1865,9 +1883,26 @@ class Metaestat{ |
1865 | 1883 | } |
1866 | 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 | 1894 | function criaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela){ |
1869 | 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 | 1906 | function alteraNomeTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$novonome_tabela){ |
1872 | 1907 | $res = $this->execSQLDB($codigo_estat_conexao,"ALTER TABLE ".$nome_esquema.".".$nome_tabela." RENAME TO ".$novonome_tabela ); |
1873 | 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 | 1914 | } |
1880 | 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 | 1925 | function copiaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$novonome_tabela){ |
1883 | 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 | 1936 | function colunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela,$tipo=""){ |
1886 | 1937 | $colunas = array(); |
1887 | 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 | 1944 | } |
1894 | 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 | 1956 | function criaColunaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$nova_coluna,$tipo){ |
1897 | 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 | 1969 | function alteraNomeColunaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$nome_coluna,$novonome_coluna){ |
1900 | 1970 | $res = $this->execSQLDB($codigo_estat_conexao,"ALTER TABLE ".$nome_esquema.".".$nome_tabela." RENAME COLUMN $nome_coluna TO ".$novonome_coluna ); |
1901 | 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 | 1990 | } |
1921 | 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 | 2001 | function descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){ |
1924 | 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 | 2013 | function obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$geo="nao",$nreg=""){ |
1927 | 2014 | $desccolunas = $this->descreveColunasTabela($codigo_estat_conexao, $nome_esquema, $nome_tabela); |
1928 | 2015 | $colunas = array(); |
... | ... | @@ -1952,6 +2039,12 @@ class Metaestat{ |
1952 | 2039 | } |
1953 | 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 | 2048 | function relatorioCompleto($codigo_variavel="",$dadosGerenciais="nao"){ |
1956 | 2049 | $dados = array(); |
1957 | 2050 | if($codigo_variavel != "" || !empty($codigo_variavel)){ |
... | ... | @@ -1988,7 +2081,12 @@ class Metaestat{ |
1988 | 2081 | } |
1989 | 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 | 2090 | function formataRelatorioHtml($dados,$detalhes="sim"){ |
1993 | 2091 | $html[] = "<div class='var_div_relatorio'>"; |
1994 | 2092 | $var_cor = "var_cor1"; |
... | ... | @@ -2034,6 +2132,11 @@ class Metaestat{ |
2034 | 2132 | $html[] = "</div><br><br>"; |
2035 | 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 | 2140 | function formataXML($dados){ |
2038 | 2141 | $chaves = array_keys($dados[0]); |
2039 | 2142 | if(count($chaves) == 0){ |
... | ... | @@ -2094,7 +2197,13 @@ class Metaestat{ |
2094 | 2197 | $xml .= '</result-set>' . PHP_EOL; |
2095 | 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 | 2207 | function buscaNoArray($lista,$chave,$valor){ |
2099 | 2208 | foreach($lista as $l){ |
2100 | 2209 | if($l[$chave] == $valor){ | ... | ... |