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