From 53b2bf84812387e9565214cd724f2422941c0d81 Mon Sep 17 00:00:00 2001
From: Fernando Erd <fce15@inf.ufpr.br>
Date: Thu, 10 May 2018 10:48:44 -0300
Subject: [PATCH] Fix gloss enrrolment indicator

---
 src/libs/routes/glossEnrollmentRatio.js | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/src/libs/routes/glossEnrollmentRatio.js b/src/libs/routes/glossEnrollmentRatio.js
index 0a929ca7..041a93ad 100644
--- a/src/libs/routes/glossEnrollmentRatio.js
+++ b/src/libs/routes/glossEnrollmentRatio.js
@@ -298,7 +298,13 @@ glossEnrollmentRatioApp.get('/', rqf.parse(),(req, res, next) => {
     .field('matricula.ano_censo', 'year')
     .group('matricula.ano_censo')
     .order('matricula.ano_censo')
+    .where('matricula.tipo <= 3')
 
+    if ( "education_level_basic" in req.dims ) {
+        req.sql.field('matricula.etapas_mod_ensino_segmento_id', 'age_range')
+        req.sql.where('matricula.etapas_mod_ensino_segmento_id = 1 OR matricula.etapas_mod_ensino_segmento_id = 2 OR matricula.etapas_mod_ensino_segmento_id = 4 OR matricula.etapas_mod_ensino_segmento_id = 5 OR matricula.etapas_mod_ensino_segmento_id = 6')
+        req.sql.group('matricula.etapas_mod_ensino_segmento_id', 'age_range');
+    }
     next();
 }, rqf.build(), query, id2str.transform(), (req, res, next) => {
     req.numerator = req.result;
@@ -332,9 +338,13 @@ glossEnrollmentRatioApp.get('/', rqf.parse(),(req, res, next) => {
             }
             string_query = string_query + convert(req.filter.education_level_basic[req.filter.education_level_basic.length - 1]);
             req.sql.where(string_query);
-        } else {
-            req.sql.where(convert(req.filter.education_level_basic));
+            req.sql.field('pnad.faixa_etaria_31_03','age_range')
+            req.sql.group('pnad.faixa_etaria_31_03', 'age_range')
         }
+    } else if ( "education_level_basic" in req.dims ) {
+        req.sql.field('pnad.faixa_etaria_31_03','age_range')
+        req.sql.where('pnad.faixa_etaria_31_03 = 1 OR pnad.faixa_etaria_31_03 = 2 OR pnad.faixa_etaria_31_03 = 3 OR pnad.faixa_etaria_31_03 = 4 OR pnad.faixa_etaria_31_03 = 5')
+        req.sql.group('pnad.faixa_etaria_31_03', 'age_range');
     } else {
         res.status(400);
         next({
@@ -354,7 +364,16 @@ glossEnrollmentRatioApp.get('/', rqf.parse(),(req, res, next) => {
     next();
 }, rqf.build(), query, id2str.transform(), (req, res, next) => {
     req.denominator = req.result;
-
+    //change age range in denominator to match with numerator result
+    for(let i = 0; i < req.denominator.length; i++)  {
+        if (req.denominator[i].age_range > 2) {
+            req.denominator[i].age_range = req.denominator[i].age_range + 1;
+        }
+    }
+    // log.debug("Numerador");
+    // log.debug(req.numerator);
+    // log.debug("Denominador");
+    // log.debug(req.denominator);
     req.result = []
     let glossEnrollment = matchQueries(req.denominator, req.numerator);
     req.result = glossEnrollment;
-- 
GitLab