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; |