diff --git a/src/libs/middlewares/aggregateData.js b/src/libs/middlewares/aggregateData.js index f0378d0bc7829241ca435b905809d342686af3e5..265e973c57d344445df91a9f58afff880ce6a6a0 100644 --- a/src/libs/middlewares/aggregateData.js +++ b/src/libs/middlewares/aggregateData.js @@ -6,12 +6,13 @@ const convert = { "gender": "gender", "ethnic_group": "ethnicGroup", "education_level_mod_agg": "educationLevelModAgg", - 'integral_time_agg': 'integralTime' + 'integral_time_agg': 'integralTime', + 'period_agg': 'period' } function aggregateData(req, res, next) { const newResult = [] - const aggregateFields = ['gender', 'age_range', 'ethnic_group', 'education_level_mod_agg', 'integral_time_agg'] + const aggregateFields = ['gender', 'age_range', 'ethnic_group', 'education_level_mod_agg', 'integral_time_agg', 'period_agg'] let id; const fields = req.query.dims.split(','); let currentAggregateField; diff --git a/src/libs/routes_v1/enrollmentAggregate.js b/src/libs/routes_v1/enrollmentAggregate.js index c12329cdbfd71eb68428f4cefe2bfaa901d998ed..feae26810174f762d9a497ff21e1bd20dfc532b5 100644 --- a/src/libs/routes_v1/enrollmentAggregate.js +++ b/src/libs/routes_v1/enrollmentAggregate.js @@ -366,6 +366,31 @@ enrollmentAggregateApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { .order('escola.ano_censo') .where('turma.tipo_atendimento_id <= 2 and turma.escola_id = escola.id and turma.ano_censo = escola.ano_censo'); } + else if (req.query.dims && req.query.dims.includes('period_agg')) { + + req.sql.from('turma,escola') + .field('SUM(CASE WHEN turma.turma_turno_id=1 then turma.num_matricula ELSE 0 END)', 'total_qt_mat_bas_matutino') + .field('SUM(CASE WHEN turma.turma_turno_id=2 then turma.num_matricula ELSE 0 END)', 'total_qt_mat_bas_vespertino') + .field('SUM(CASE WHEN turma.turma_turno_id=3 then turma.num_matricula ELSE 0 END)', 'total_qt_mat_bas_noturno') + .field('SUM(CASE WHEN turma.turma_turno_id=4 then turma.num_matricula ELSE 0 END)', 'total_qt_mat_bas_integral') + .field('SUM(CASE WHEN turma.turma_turno_id=99 then turma.num_matricula ELSE 0 END)', 'total_qt_mat_bas_semi_ead') + .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 if (req.query.dims && req.query.dims.includes('modality_integral_time')) { + + req.sql.from('escola') + .field('SUM(escola.qt_mat_inf_cre_int)', 'total_qt_mat_inf_cre_int') + .field('SUM(escola.qt_mat_inf_pre_int)', 'total_qt_mat_inf_pre_int') + .field('SUM(escola.qt_mat_fund_ai_int)', 'total_qt_mat_fund_ai_int') + .field('SUM(escola.qt_mat_fund_af_int)', 'total_qt_mat_fund_af_int') + .field('SUM(escola.qt_mat_med_int)', 'total_qt_mat_med_int') + .field('escola.ano_censo', 'year') + .group('escola.ano_censo') + .order('escola.ano_censo') + } else { req.sql.from('escola') .field('SUM(escola.qt_mat_bas)', 'total')