diff --git a/src/libs/middlewares/reqQueryFields.js b/src/libs/middlewares/reqQueryFields.js index f65efc81d28787ca753909aeeb8f10c797b4afd6..7f4a1399e1369350d1b8b1b383e70bd7918e5fed 100644 --- a/src/libs/middlewares/reqQueryFields.js +++ b/src/libs/middlewares/reqQueryFields.js @@ -198,9 +198,9 @@ class ReqQueryFields { build() { // "Constrói" o SQL return (req, res, next) => { - // Foreach no campos let hasJoined = {}; let thisTable = req.sql.tableFrom; + // Foreach no campos Object.keys(this.fields).forEach((key) => { // Campo let field = this.fields[key]; diff --git a/src/libs/routes/teacher.js b/src/libs/routes/teacher.js index 8727db5884b3ae2818a050bd20dc215710ee9ff0..e41202ca909fb645da26e9d82c1dfac85f53edb9 100644 --- a/src/libs/routes/teacher.js +++ b/src/libs/routes/teacher.js @@ -336,16 +336,51 @@ rqf.addField({ } }); -teacherApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { - req.sql.field('COUNT(DISTINCT docente.id)', 'total') - .field("'Brasil'", 'name') - .field('docente.ano_censo', 'year') - .from('docente') - .join('turma', null, 'docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo') - .group('docente.ano_censo') - .order('docente.ano_censo') - .where('(docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND (turma.tipo_turma_id <= 3)'); - next(); -}, query, id2str.transform(), response('teacher')); +teacherApp.get('/', rqf.parse(), (req, res, next) => { + req.sql.field('COUNT(DISTINCT docente.id)', 'total') + .field("'Brasil'", 'name') + .field('docente.ano_censo', 'year') + .from('docente') + .join('turma', null, 'docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo') + .group('docente.ano_censo') + .order('docente.ano_censo') + .where('(docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND (turma.tipo_turma_id <= 3)'); + + if("education_level_mod" in req.dims) { + delete req.dims.education_level_mod; + req.hadEducationLevelMod = true; + req.sql.field('docente.etapas_mod_ensino_segmento_id', 'education_level_mod_id') + .where('docente.etapas_mod_ensino_segmento_id < 11') + .group('docente.etapas_mod_ensino_segmento_id'); + } + + next(); +}, rqf.build(), query, (req, res, next) => { + if(req.hadEducationLevelMod) { + req.oldResult = req.result; + + req.sql = squel.select() + .field('COUNT(DISTINCT docente.id)', 'total') + .field("'Brasil'", 'name') + .field('docente.ano_censo', 'year') + .from('docente') + .join('turma', null, 'docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo') + .group('docente.ano_censo') + .order('docente.ano_censo') + .where('(docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND (turma.tipo_turma_id <= 3)') + .where('docente.profissionalizante = 1'); + + next(); + } else { + next(); + } +}, rqf.build(), query, (req, res, next) => { + req.result.forEach((result) => { + result.education_level_mod_id = 11; + req.oldResult.push(result); + }); + req.result = req.oldResult; + next(); +}, id2str.transform(), response('teacher')); module.exports = teacherApp;