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 | 292 | * @param coluna que sera usada para agrupar os dados |
293 | 293 | * @param tipo de layer. Usado para escolher qual coluna com as geometrias sera incluida no sql |
294 | 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 | 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 | 299 | /* Modelo de SQL |
299 | 300 | SELECT regiao.*,sum(j.valorcalculado) OVER (PARTITION BY regiao.co_municipio) AS valorcalculado |
300 | 301 | FROM i3geo_metaestat.municipios AS regiao |
... | ... | @@ -406,13 +407,13 @@ class Metaestat{ |
406 | 407 | } |
407 | 408 | //verifica o tipo de calculo para agragacao de valores |
408 | 409 | $tipoconta = ""; |
409 | - if($dados["permitesoma"] == 1){ | |
410 | + if($dados["permitesoma"] == 1 && $direto == false){ | |
410 | 411 | $tipoconta = "sum"; |
411 | 412 | if($agregaregiao == true){ |
412 | 413 | $titulo .= " - soma"; |
413 | 414 | } |
414 | 415 | } |
415 | - elseif($dados["permitemedia"] == 1){ | |
416 | + elseif($dados["permitemedia"] == 1 && $direto == false){ | |
416 | 417 | $tipoconta = "avg"; |
417 | 418 | if($agregaregiao == true){ |
418 | 419 | $titulo .= " - media"; |
... | ... | @@ -421,21 +422,21 @@ class Metaestat{ |
421 | 422 | |
422 | 423 | //obtem o SQL que faz o acesso aos dados da media da variavel |
423 | 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 | 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 | 429 | $sqlDadosMedidaVariavel .= " WHERE ".$filtro . "AND ".$dados["colunavalor"]." IS NOT NULL "; |
429 | 430 | } |
430 | 431 | else{ |
431 | 432 | $sqlDadosMedidaVariavel .= " WHERE ".$dados["colunavalor"]." IS NOT NULL "; |
432 | 433 | } |
433 | - if($suportaWMST != true){ | |
434 | + if($suportaWMST != true && $direto == false){ | |
434 | 435 | $sqlDadosMedidaVariavel .= " /*FA*//*FA*/ /*FAT*//*FAT*/ GROUP BY cod_regiao "; |
435 | 436 | } |
436 | 437 | $sqlagrupamento = ""; |
437 | 438 | //sql que retorna a lista de ocorrencias agrupados de uma coluna especifica |
438 | - if(!empty($agruparpor)){ | |
439 | + if(!empty($agruparpor) && $direto == false){ | |
439 | 440 | $sqlagrupamento = " SELECT $agruparpor FROM ".$dados["esquemadb"].".".$dados["tabela"]; |
440 | 441 | if(!empty ($filtro)){ |
441 | 442 | $sqlagrupamento .= " WHERE ".$filtro; |
... | ... | @@ -449,7 +450,7 @@ class Metaestat{ |
449 | 450 | " INNER JOIN ( __SQLDADOS__ ) ". |
450 | 451 | " AS j ON j.cod_regiao::text = regiao.".$dadosgeo["identificador"]."::text"; |
451 | 452 | //inclui os sqls de regioes de niveis inferiores |
452 | - if($agregaregiao == true){ | |
453 | + if($agregaregiao == true && $direto == false){ | |
453 | 454 | $hierarquia = $this->regiaoFilhaAoPai($dados["codigo_tipo_regiao"],$codigo_tipo_regiao); |
454 | 455 | $caminho = $hierarquia["caminho"]; |
455 | 456 | $dadosColunas = $hierarquia["colunas"]; |
... | ... | @@ -484,7 +485,7 @@ class Metaestat{ |
484 | 485 | |
485 | 486 | //o SQL com os dados contem um filtro ou nao? |
486 | 487 | $contemfiltro = false; |
487 | - if(!empty($filtro)){ | |
488 | + if(!empty($filtro) && $direto == false){ | |
488 | 489 | $contemfiltro = true; |
489 | 490 | $titulo .= " ".$filtro; |
490 | 491 | } |
... | ... | @@ -992,11 +993,12 @@ class Metaestat{ |
992 | 993 | * @param 0|1 mostra ou nao todas as colunas da tabela com os dados |
993 | 994 | * @param coluna de agrupamento |
994 | 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 | 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 | 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 | 1002 | $sqlf = $sql["sqlmapserver"]; |
1001 | 1003 | //remove marcadores geo |
1002 | 1004 | $sqlf = explode("/*SE*/",$sqlf); |
... | ... | @@ -1007,6 +1009,7 @@ class Metaestat{ |
1007 | 1009 | } |
1008 | 1010 | $sqlf = str_replace(", FROM"," FROM",$sqlf); |
1009 | 1011 | $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); |
1012 | + //echo $sqlf;exit; | |
1010 | 1013 | if(!empty($metaVariavel["codigo_estat_conexao"])){ |
1011 | 1014 | $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); |
1012 | 1015 | $dbhold = $this->dbh; |
... | ... | @@ -1044,14 +1047,16 @@ class Metaestat{ |
1044 | 1047 | * @param id da medida |
1045 | 1048 | * @param filtro a ser concatenado ao sql |
1046 | 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 | 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 | 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 | 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 | 1061 | if($dados){ |
1057 | 1062 | $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); | ... | ... |
admin/php/metaestat.php
... | ... | @@ -499,11 +499,12 @@ switch (strtoupper($funcao)) |
499 | 499 | $cores = explode(";",$cores); |
500 | 500 | } |
501 | 501 | if(empty($limite)){ |
502 | - $limite = 10000; | |
502 | + $limite = ""; | |
503 | 503 | } |
504 | + | |
504 | 505 | if($tipo == "quebrasnaturais"){ |
505 | 506 | $m = new Metaestat(); |
506 | - $dados = $m->dadosMedidaVariavel($id_medida_variavel,"",0,"",$limite); | |
507 | + $dados = $m->dadosMedidaVariavel($id_medida_variavel,"",0,"",$limite,true); | |
507 | 508 | $metaVariavel = $m->listaMedidaVariavel("",$id_medida_variavel); |
508 | 509 | $colunavalor = $metaVariavel["colunavalor"]; |
509 | 510 | $valores = array(); |
... | ... | @@ -539,7 +540,7 @@ switch (strtoupper($funcao)) |
539 | 540 | } |
540 | 541 | if($tipo == "quartil"){ |
541 | 542 | $m = new Metaestat(); |
542 | - $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite); | |
543 | + $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite,true); | |
543 | 544 | if($dados == false){ |
544 | 545 | retornaJSON("erro"); |
545 | 546 | exit; |
... | ... | @@ -568,7 +569,7 @@ switch (strtoupper($funcao)) |
568 | 569 | } |
569 | 570 | if($tipo == "intiguais5" || $tipo == "intiguais"){ |
570 | 571 | $m = new Metaestat(); |
571 | - $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite); | |
572 | + $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite,true); | |
572 | 573 | if($dados == false){ |
573 | 574 | retornaJSON("erro"); |
574 | 575 | exit; | ... | ... |