Commit b58ad44071cbb560ac8e2807fac1fbc75051434e
1 parent
74b8cffb
Exists in
master
and in
7 other branches
V6 - correção nos cálculos de classes no sistema metaestat
Showing
3 changed files
with
24 additions
and
18 deletions
Show diff stats
admin/admin.db
No preview for this file type
admin/php/classe_metaestat.php
| @@ -292,9 +292,10 @@ class Metaestat{ | @@ -292,9 +292,10 @@ class Metaestat{ | ||
| 292 | * @param coluna que sera usada para agrupar os dados | 292 | * @param coluna que sera usada para agrupar os dados |
| 293 | * @param tipo de layer. Usado para escolher qual coluna com as geometrias sera incluida no sql | 293 | * @param tipo de layer. Usado para escolher qual coluna com as geometrias sera incluida no sql |
| 294 | * @param codigo do tipo de regiao. Se nao for definido, utiliza-se o default da variavel | 294 | * @param codigo do tipo de regiao. Se nao for definido, utiliza-se o default da variavel |
| 295 | + * @param le os dados diretamente da tabela sem nenhum tipo de agrupamento, seja por data ou outro parametro | ||
| 295 | * @return array("sqlagrupamento"=>,"sql"=>,"sqlmapserver"=>,"filtro"=>,"colunas"=>,"alias"=>,"colunavalor"=>,"titulo"=>,"nomeregiao"=>) | 296 | * @return array("sqlagrupamento"=>,"sql"=>,"sqlmapserver"=>,"filtro"=>,"colunas"=>,"alias"=>,"colunavalor"=>,"titulo"=>,"nomeregiao"=>) |
| 296 | */ | 297 | */ |
| 297 | - function sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor="",$tipolayer="polygon",$codigo_tipo_regiao = "",$suportaWMST = false,$filtro = ""){ | 298 | + function sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor="",$tipolayer="polygon",$codigo_tipo_regiao = "",$suportaWMST = false,$filtro = "",$direto=false){ |
| 298 | /* Modelo de SQL | 299 | /* Modelo de SQL |
| 299 | SELECT regiao.*,sum(j.valorcalculado) OVER (PARTITION BY regiao.co_municipio) AS valorcalculado | 300 | SELECT regiao.*,sum(j.valorcalculado) OVER (PARTITION BY regiao.co_municipio) AS valorcalculado |
| 300 | FROM i3geo_metaestat.municipios AS regiao | 301 | FROM i3geo_metaestat.municipios AS regiao |
| @@ -406,13 +407,13 @@ class Metaestat{ | @@ -406,13 +407,13 @@ class Metaestat{ | ||
| 406 | } | 407 | } |
| 407 | //verifica o tipo de calculo para agragacao de valores | 408 | //verifica o tipo de calculo para agragacao de valores |
| 408 | $tipoconta = ""; | 409 | $tipoconta = ""; |
| 409 | - if($dados["permitesoma"] == 1){ | 410 | + if($dados["permitesoma"] == 1 && $direto == false){ |
| 410 | $tipoconta = "sum"; | 411 | $tipoconta = "sum"; |
| 411 | if($agregaregiao == true){ | 412 | if($agregaregiao == true){ |
| 412 | $titulo .= " - soma"; | 413 | $titulo .= " - soma"; |
| 413 | } | 414 | } |
| 414 | } | 415 | } |
| 415 | - elseif($dados["permitemedia"] == 1){ | 416 | + elseif($dados["permitemedia"] == 1 && $direto == false){ |
| 416 | $tipoconta = "avg"; | 417 | $tipoconta = "avg"; |
| 417 | if($agregaregiao == true){ | 418 | if($agregaregiao == true){ |
| 418 | $titulo .= " - media"; | 419 | $titulo .= " - media"; |
| @@ -421,21 +422,21 @@ class Metaestat{ | @@ -421,21 +422,21 @@ class Metaestat{ | ||
| 421 | 422 | ||
| 422 | //obtem o SQL que faz o acesso aos dados da media da variavel | 423 | //obtem o SQL que faz o acesso aos dados da media da variavel |
| 423 | $sqlDadosMedidaVariavel = "SELECT ".$dados["colunaidgeo"]." AS cod_regiao,$tipoconta(".$dados["colunavalor"].") AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; | 424 | $sqlDadosMedidaVariavel = "SELECT ".$dados["colunaidgeo"]." AS cod_regiao,$tipoconta(".$dados["colunavalor"].") AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; |
| 424 | - if($suportaWMST == true){ | 425 | + if($suportaWMST == true && $direto == false){ |
| 425 | $sqlDadosMedidaVariavel = "SELECT $sqlWMST as dimtempo,".$dados["colunaidgeo"]." AS cod_regiao,".$dados["colunavalor"]." AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; | 426 | $sqlDadosMedidaVariavel = "SELECT $sqlWMST as dimtempo,".$dados["colunaidgeo"]." AS cod_regiao,".$dados["colunavalor"]." AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; |
| 426 | } | 427 | } |
| 427 | - if(!empty ($filtro)){ | 428 | + if(!empty ($filtro) && $direto == false){ |
| 428 | $sqlDadosMedidaVariavel .= " WHERE ".$filtro . "AND ".$dados["colunavalor"]." IS NOT NULL "; | 429 | $sqlDadosMedidaVariavel .= " WHERE ".$filtro . "AND ".$dados["colunavalor"]." IS NOT NULL "; |
| 429 | } | 430 | } |
| 430 | else{ | 431 | else{ |
| 431 | $sqlDadosMedidaVariavel .= " WHERE ".$dados["colunavalor"]." IS NOT NULL "; | 432 | $sqlDadosMedidaVariavel .= " WHERE ".$dados["colunavalor"]." IS NOT NULL "; |
| 432 | } | 433 | } |
| 433 | - if($suportaWMST != true){ | 434 | + if($suportaWMST != true && $direto == false){ |
| 434 | $sqlDadosMedidaVariavel .= " /*FA*//*FA*/ /*FAT*//*FAT*/ GROUP BY cod_regiao "; | 435 | $sqlDadosMedidaVariavel .= " /*FA*//*FA*/ /*FAT*//*FAT*/ GROUP BY cod_regiao "; |
| 435 | } | 436 | } |
| 436 | $sqlagrupamento = ""; | 437 | $sqlagrupamento = ""; |
| 437 | //sql que retorna a lista de ocorrencias agrupados de uma coluna especifica | 438 | //sql que retorna a lista de ocorrencias agrupados de uma coluna especifica |
| 438 | - if(!empty($agruparpor)){ | 439 | + if(!empty($agruparpor) && $direto == false){ |
| 439 | $sqlagrupamento = " SELECT $agruparpor FROM ".$dados["esquemadb"].".".$dados["tabela"]; | 440 | $sqlagrupamento = " SELECT $agruparpor FROM ".$dados["esquemadb"].".".$dados["tabela"]; |
| 440 | if(!empty ($filtro)){ | 441 | if(!empty ($filtro)){ |
| 441 | $sqlagrupamento .= " WHERE ".$filtro; | 442 | $sqlagrupamento .= " WHERE ".$filtro; |
| @@ -449,7 +450,7 @@ class Metaestat{ | @@ -449,7 +450,7 @@ class Metaestat{ | ||
| 449 | " INNER JOIN ( __SQLDADOS__ ) ". | 450 | " INNER JOIN ( __SQLDADOS__ ) ". |
| 450 | " AS j ON j.cod_regiao::text = regiao.".$dadosgeo["identificador"]."::text"; | 451 | " AS j ON j.cod_regiao::text = regiao.".$dadosgeo["identificador"]."::text"; |
| 451 | //inclui os sqls de regioes de niveis inferiores | 452 | //inclui os sqls de regioes de niveis inferiores |
| 452 | - if($agregaregiao == true){ | 453 | + if($agregaregiao == true && $direto == false){ |
| 453 | $hierarquia = $this->regiaoFilhaAoPai($dados["codigo_tipo_regiao"],$codigo_tipo_regiao); | 454 | $hierarquia = $this->regiaoFilhaAoPai($dados["codigo_tipo_regiao"],$codigo_tipo_regiao); |
| 454 | $caminho = $hierarquia["caminho"]; | 455 | $caminho = $hierarquia["caminho"]; |
| 455 | $dadosColunas = $hierarquia["colunas"]; | 456 | $dadosColunas = $hierarquia["colunas"]; |
| @@ -484,7 +485,7 @@ class Metaestat{ | @@ -484,7 +485,7 @@ class Metaestat{ | ||
| 484 | 485 | ||
| 485 | //o SQL com os dados contem um filtro ou nao? | 486 | //o SQL com os dados contem um filtro ou nao? |
| 486 | $contemfiltro = false; | 487 | $contemfiltro = false; |
| 487 | - if(!empty($filtro)){ | 488 | + if(!empty($filtro) && $direto == false){ |
| 488 | $contemfiltro = true; | 489 | $contemfiltro = true; |
| 489 | $titulo .= " ".$filtro; | 490 | $titulo .= " ".$filtro; |
| 490 | } | 491 | } |
| @@ -992,11 +993,12 @@ class Metaestat{ | @@ -992,11 +993,12 @@ class Metaestat{ | ||
| 992 | * @param 0|1 mostra ou nao todas as colunas da tabela com os dados | 993 | * @param 0|1 mostra ou nao todas as colunas da tabela com os dados |
| 993 | * @param coluna de agrupamento | 994 | * @param coluna de agrupamento |
| 994 | * @param limite do numero de registros | 995 | * @param limite do numero de registros |
| 996 | + * @param le os dados diretamente da tabela sem nenhum tipo de agrupamento, seja por data ou outro parametro | ||
| 995 | * @return execSQL | 997 | * @return execSQL |
| 996 | */ | 998 | */ |
| 997 | - function dadosMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$agruparpor = "",$limite=""){ | 999 | + function dadosMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$agruparpor = "",$limite="",$direto=false){ |
| 998 | set_time_limit(0); | 1000 | set_time_limit(0); |
| 999 | - $sql = $this->sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor,"polygon","",false,$filtro); | 1001 | + $sql = $this->sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor,"polygon","",false,$filtro,$direto); |
| 1000 | $sqlf = $sql["sqlmapserver"]; | 1002 | $sqlf = $sql["sqlmapserver"]; |
| 1001 | //remove marcadores geo | 1003 | //remove marcadores geo |
| 1002 | $sqlf = explode("/*SE*/",$sqlf); | 1004 | $sqlf = explode("/*SE*/",$sqlf); |
| @@ -1007,6 +1009,7 @@ class Metaestat{ | @@ -1007,6 +1009,7 @@ class Metaestat{ | ||
| 1007 | } | 1009 | } |
| 1008 | $sqlf = str_replace(", FROM"," FROM",$sqlf); | 1010 | $sqlf = str_replace(", FROM"," FROM",$sqlf); |
| 1009 | $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); | 1011 | $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); |
| 1012 | + //echo $sqlf;exit; | ||
| 1010 | if(!empty($metaVariavel["codigo_estat_conexao"])){ | 1013 | if(!empty($metaVariavel["codigo_estat_conexao"])){ |
| 1011 | $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); | 1014 | $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); |
| 1012 | $dbhold = $this->dbh; | 1015 | $dbhold = $this->dbh; |
| @@ -1044,14 +1047,16 @@ class Metaestat{ | @@ -1044,14 +1047,16 @@ class Metaestat{ | ||
| 1044 | * @param id da medida | 1047 | * @param id da medida |
| 1045 | * @param filtro a ser concatenado ao sql | 1048 | * @param filtro a ser concatenado ao sql |
| 1046 | * @param coluna de agrupamento | 1049 | * @param coluna de agrupamento |
| 1050 | + * @param limite numero maximo de registros que serao lidos do banco | ||
| 1051 | + * @param le os dados diretamente da tabela sem nenhum tipo de agrupamento, seja por data ou outro parametro | ||
| 1047 | * @return array("colunavalor"=>,"soma"=>,"media"=>,"menor"=>,"maior"=>,"quantidade"=>,"histograma"=>,"grupos"=>,"unidademedida"=>,"quartis"=>) | 1052 | * @return array("colunavalor"=>,"soma"=>,"media"=>,"menor"=>,"maior"=>,"quantidade"=>,"histograma"=>,"grupos"=>,"unidademedida"=>,"quartis"=>) |
| 1048 | */ | 1053 | */ |
| 1049 | - function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor="",$limite=""){ | 1054 | + function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor="",$limite="",$direto=false){ |
| 1050 | if(!empty($agruparpor)){ | 1055 | if(!empty($agruparpor)){ |
| 1051 | - $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,1,"",$limite); | 1056 | + $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,1,"",$limite,$direto); |
| 1052 | } | 1057 | } |
| 1053 | else{ | 1058 | else{ |
| 1054 | - $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,0,"",$limite); | 1059 | + $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,0,"",$limite,$direto); |
| 1055 | } | 1060 | } |
| 1056 | if($dados){ | 1061 | if($dados){ |
| 1057 | $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); | 1062 | $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); |
admin/php/metaestat.php
| @@ -499,11 +499,12 @@ switch (strtoupper($funcao)) | @@ -499,11 +499,12 @@ switch (strtoupper($funcao)) | ||
| 499 | $cores = explode(";",$cores); | 499 | $cores = explode(";",$cores); |
| 500 | } | 500 | } |
| 501 | if(empty($limite)){ | 501 | if(empty($limite)){ |
| 502 | - $limite = 10000; | 502 | + $limite = ""; |
| 503 | } | 503 | } |
| 504 | + | ||
| 504 | if($tipo == "quebrasnaturais"){ | 505 | if($tipo == "quebrasnaturais"){ |
| 505 | $m = new Metaestat(); | 506 | $m = new Metaestat(); |
| 506 | - $dados = $m->dadosMedidaVariavel($id_medida_variavel,"",0,"",$limite); | 507 | + $dados = $m->dadosMedidaVariavel($id_medida_variavel,"",0,"",$limite,true); |
| 507 | $metaVariavel = $m->listaMedidaVariavel("",$id_medida_variavel); | 508 | $metaVariavel = $m->listaMedidaVariavel("",$id_medida_variavel); |
| 508 | $colunavalor = $metaVariavel["colunavalor"]; | 509 | $colunavalor = $metaVariavel["colunavalor"]; |
| 509 | $valores = array(); | 510 | $valores = array(); |
| @@ -539,7 +540,7 @@ switch (strtoupper($funcao)) | @@ -539,7 +540,7 @@ switch (strtoupper($funcao)) | ||
| 539 | } | 540 | } |
| 540 | if($tipo == "quartil"){ | 541 | if($tipo == "quartil"){ |
| 541 | $m = new Metaestat(); | 542 | $m = new Metaestat(); |
| 542 | - $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite); | 543 | + $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite,true); |
| 543 | if($dados == false){ | 544 | if($dados == false){ |
| 544 | retornaJSON("erro"); | 545 | retornaJSON("erro"); |
| 545 | exit; | 546 | exit; |
| @@ -568,7 +569,7 @@ switch (strtoupper($funcao)) | @@ -568,7 +569,7 @@ switch (strtoupper($funcao)) | ||
| 568 | } | 569 | } |
| 569 | if($tipo == "intiguais5" || $tipo == "intiguais"){ | 570 | if($tipo == "intiguais5" || $tipo == "intiguais"){ |
| 570 | $m = new Metaestat(); | 571 | $m = new Metaestat(); |
| 571 | - $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite); | 572 | + $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite,true); |
| 572 | if($dados == false){ | 573 | if($dados == false){ |
| 573 | retornaJSON("erro"); | 574 | retornaJSON("erro"); |
| 574 | exit; | 575 | exit; |