Commit 2f7e4fa4446b3f3306615d45a67805d427bd5949

Authored by Edmar Moretti
1 parent 4d5209bd
Exists in master

V5 - correção nos cálculos de classes no sistema metaestat

admin/php/classe_metaestat.php
... ... @@ -294,7 +294,7 @@ class Metaestat{
294 294 * @param codigo do tipo de regiao. Se nao for definido, utiliza-se o default da variavel
295 295 * @return array("sqlagrupamento"=>,"sql"=>,"sqlmapserver"=>,"filtro"=>,"colunas"=>,"alias"=>,"colunavalor"=>,"titulo"=>,"nomeregiao"=>)
296 296 */
297   - function sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor="",$tipolayer="polygon",$codigo_tipo_regiao = "",$suportaWMST = false,$filtro = ""){
  297 + function sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor="",$tipolayer="polygon",$codigo_tipo_regiao = "",$suportaWMST = false,$filtro = "",$direto=false){
298 298 /* Modelo de SQL
299 299 SELECT regiao.*,sum(j.valorcalculado) OVER (PARTITION BY regiao.co_municipio) AS valorcalculado
300 300 FROM i3geo_metaestat.municipios AS regiao
... ... @@ -406,13 +406,13 @@ class Metaestat{
406 406 }
407 407 //verifica o tipo de calculo para agragacao de valores
408 408 $tipoconta = "";
409   - if($dados["permitesoma"] == 1){
  409 + if($dados["permitesoma"] == 1 && $direto == false){
410 410 $tipoconta = "sum";
411 411 if($agregaregiao == true){
412 412 $titulo .= " - soma";
413 413 }
414 414 }
415   - elseif($dados["permitemedia"] == 1){
  415 + elseif($dados["permitemedia"] == 1 && $direto == false){
416 416 $tipoconta = "avg";
417 417 if($agregaregiao == true){
418 418 $titulo .= " - media";
... ... @@ -421,21 +421,21 @@ class Metaestat{
421 421  
422 422 //obtem o SQL que faz o acesso aos dados da media da variavel
423 423 $sqlDadosMedidaVariavel = "SELECT ".$dados["colunaidgeo"]." AS cod_regiao,$tipoconta(".$dados["colunavalor"].") AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"];
424   - if($suportaWMST == true){
  424 + if($suportaWMST == true && $direto == false){
425 425 $sqlDadosMedidaVariavel = "SELECT $sqlWMST as dimtempo,".$dados["colunaidgeo"]." AS cod_regiao,".$dados["colunavalor"]." AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"];
426 426 }
427   - if(!empty ($filtro)){
  427 + if(!empty ($filtro) && $direto == false){
428 428 $sqlDadosMedidaVariavel .= " WHERE ".$filtro . "AND ".$dados["colunavalor"]." IS NOT NULL ";
429 429 }
430 430 else{
431 431 $sqlDadosMedidaVariavel .= " WHERE ".$dados["colunavalor"]." IS NOT NULL ";
432 432 }
433   - if($suportaWMST != true){
  433 + if($suportaWMST != true && $direto == false){
434 434 $sqlDadosMedidaVariavel .= " /*FA*//*FA*/ /*FAT*//*FAT*/ GROUP BY cod_regiao ";
435 435 }
436 436 $sqlagrupamento = "";
437 437 //sql que retorna a lista de ocorrencias agrupados de uma coluna especifica
438   - if(!empty($agruparpor)){
  438 + if(!empty($agruparpor) && $direto == false){
439 439 $sqlagrupamento = " SELECT $agruparpor FROM ".$dados["esquemadb"].".".$dados["tabela"];
440 440 if(!empty ($filtro)){
441 441 $sqlagrupamento .= " WHERE ".$filtro;
... ... @@ -449,7 +449,7 @@ class Metaestat{
449 449 " INNER JOIN ( __SQLDADOS__ ) ".
450 450 " AS j ON j.cod_regiao::text = regiao.".$dadosgeo["identificador"]."::text";
451 451 //inclui os sqls de regioes de niveis inferiores
452   - if($agregaregiao == true){
  452 + if($agregaregiao == true && $direto == false){
453 453 $hierarquia = $this->regiaoFilhaAoPai($dados["codigo_tipo_regiao"],$codigo_tipo_regiao);
454 454 $caminho = $hierarquia["caminho"];
455 455 $dadosColunas = $hierarquia["colunas"];
... ... @@ -484,7 +484,7 @@ class Metaestat{
484 484  
485 485 //o SQL com os dados contem um filtro ou nao?
486 486 $contemfiltro = false;
487   - if(!empty($filtro)){
  487 + if(!empty($filtro) && $direto == false){
488 488 $contemfiltro = true;
489 489 $titulo .= " ".$filtro;
490 490 }
... ... @@ -986,9 +986,9 @@ class Metaestat{
986 986 * @param limite do numero de registros
987 987 * @return execSQL
988 988 */
989   - function dadosMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$agruparpor = "",$limite=""){
  989 + function dadosMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$agruparpor = "",$limite="",$direto=false){
990 990 set_time_limit(0);
991   - $sql = $this->sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor,"polygon","",false,$filtro);
  991 + $sql = $this->sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor,"polygon","",false,$filtro,$direto);
992 992 $sqlf = $sql["sqlmapserver"];
993 993 //remove marcadores geo
994 994 $sqlf = explode("/*SE*/",$sqlf);
... ... @@ -1038,12 +1038,12 @@ class Metaestat{
1038 1038 * @param coluna de agrupamento
1039 1039 * @return array("colunavalor"=>,"soma"=>,"media"=>,"menor"=>,"maior"=>,"quantidade"=>,"histograma"=>,"grupos"=>,"unidademedida"=>,"quartis"=>)
1040 1040 */
1041   - function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor="",$limite=""){
  1041 + function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor="",$limite="",$direto=false){
1042 1042 if(!empty($agruparpor)){
1043   - $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,1,"",$limite);
  1043 + $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,1,"",$limite,$direto);
1044 1044 }
1045 1045 else{
1046   - $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,0,"",$limite);
  1046 + $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,0,"",$limite,$direto);
1047 1047 }
1048 1048 if($dados){
1049 1049 $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel);
... ...
admin/php/metaestat.php
... ... @@ -498,11 +498,11 @@ switch (strtoupper($funcao))
498 498 $cores = explode(";",$cores);
499 499 }
500 500 if(empty($limite)){
501   - $limite = 10000;
  501 + $limite = "";
502 502 }
503 503 if($tipo == "quebrasnaturais"){
504 504 $m = new Metaestat();
505   - $dados = $m->dadosMedidaVariavel($id_medida_variavel,"",0,"",$limite);
  505 + $dados = $m->dadosMedidaVariavel($id_medida_variavel,"",0,"",$limite,true);
506 506 $metaVariavel = $m->listaMedidaVariavel("",$id_medida_variavel);
507 507 $colunavalor = $metaVariavel["colunavalor"];
508 508 $valores = array();
... ... @@ -538,7 +538,7 @@ switch (strtoupper($funcao))
538 538 }
539 539 if($tipo == "quartil"){
540 540 $m = new Metaestat();
541   - $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite);
  541 + $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite,true);
542 542 if($dados == false){
543 543 retornaJSON("erro");
544 544 exit;
... ... @@ -567,7 +567,7 @@ switch (strtoupper($funcao))
567 567 }
568 568 if($tipo == "intiguais5" || $tipo == "intiguais"){
569 569 $m = new Metaestat();
570   - $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite);
  570 + $dados = $m->sumarioMedidaVariavel($id_medida_variavel,"","",$limite,true);
571 571 if($dados == false){
572 572 retornaJSON("erro");
573 573 exit;
... ...