From 959f9a125ac27f51a5a5ae502d3480ae6399d94d Mon Sep 17 00:00:00 2001
From: Lewis <lgtg20@inf.ufpr.br>
Date: Thu, 1 Aug 2024 17:25:36 -0300
Subject: [PATCH] integral_time filter working

---
 src/libs/middlewares/aggregateData.js     |  7 ++++---
 src/libs/routes_v1/enrollmentAggregate.js | 11 +++++++++++
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/libs/middlewares/aggregateData.js b/src/libs/middlewares/aggregateData.js
index 41c32836..f0378d0b 100644
--- a/src/libs/middlewares/aggregateData.js
+++ b/src/libs/middlewares/aggregateData.js
@@ -5,12 +5,13 @@ const convert = {
     "age_range": "ageRangeAggregate",
     "gender": "gender",
     "ethnic_group": "ethnicGroup",
-    "education_level_mod_agg": "educationLevelModAgg"
+    "education_level_mod_agg": "educationLevelModAgg",
+    'integral_time_agg': 'integralTime'
 }
 
 function aggregateData(req, res, next) {
     const newResult = []
-    const aggregateFields = ['gender', 'age_range', 'ethnic_group', 'education_level_mod_agg']
+    const aggregateFields = ['gender', 'age_range', 'ethnic_group', 'education_level_mod_agg', 'integral_time_agg']
     let id;
     const fields = req.query.dims.split(',');
     let currentAggregateField;
@@ -19,7 +20,7 @@ function aggregateData(req, res, next) {
     if (currentAggregateField) {
         console.log(currentAggregateField);
         req.result.forEach((r) => {
-            id = currentAggregateField === 'ethnic_group' ? 0 : 1;
+            id = ['ethnic_group', 'integral_time_agg'].includes(currentAggregateField) ? 0 : 1;
             for (const property in r) {
                 if (property.includes("total_")) {
                     let data = {
diff --git a/src/libs/routes_v1/enrollmentAggregate.js b/src/libs/routes_v1/enrollmentAggregate.js
index 95de1c25..c12329cd 100644
--- a/src/libs/routes_v1/enrollmentAggregate.js
+++ b/src/libs/routes_v1/enrollmentAggregate.js
@@ -355,6 +355,17 @@ enrollmentAggregateApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
         .group('escola.ano_censo')
         .order('escola.ano_censo');
     }
+    else if (req.query.dims && req.query.dims.includes('integral_time_agg')) {
+
+        req.sql.from('turma,escola')
+        .field('SUM(CASE WHEN turma.tempo_integral=0 then turma.num_matricula ELSE 0 END)', 'total_int_nao')
+        .field('SUM(CASE WHEN turma.tempo_integral=1 then turma.num_matricula ELSE 0 END)', 'total_int')
+        .field('SUM(CASE WHEN turma.tempo_integral=2 then turma.num_matricula ELSE 0 END)', 'total_int_nao_aplica')
+        .field('escola.ano_censo', 'year')
+        .group('escola.ano_censo')
+        .order('escola.ano_censo')
+        .where('turma.tipo_atendimento_id <= 2 and turma.escola_id = escola.id and turma.ano_censo = escola.ano_censo');
+    }
     else {
         req.sql.from('escola')
         .field('SUM(escola.qt_mat_bas)', 'total')
-- 
GitLab