diff --git a/src/libs/routes/classCount.js b/src/libs/routes/classCount.js index 8747ee3961ed831e602db83dd0755ee93120df6c..854b489a8a46aef657a35b6d9b556f9aaece2646 100644 --- a/src/libs/routes/classCount.js +++ b/src/libs/routes/classCount.js @@ -313,6 +313,28 @@ function averageCalc(response) { return(obj); } +// Se a dimensão obrigatória do LDE (etapa de ensino) possui alguma etapa sem nenhum valor, então é criado um objeto +// com média 0.0 e é inserido no resultado. Usada para não quebrar a sequência de etapas na tabela do LDE. +function addNullFields(result) { + const firstYear = result[0].year; + var obj = result.filter(res => res.year == firstYear); + var prevFirstDimId = obj[0]; + obj.forEach((d) => { + if((d["education_level_mod_id"] > prevFirstDimId["education_level_mod_id"]) && (prevFirstDimId["education_level_mod_id"] != 10) && + (d["education_level_mod_id"] != prevFirstDimId["education_level_mod_id"] + 1)) { + let newObj = {}; + Object.keys(prevFirstDimId).forEach((key) => { + newObj[key] = prevFirstDimId[key]; + }); + newObj.education_level_mod_id = d["education_level_mod_id"] - 1; + newObj.education_level_mod_name = id2str.educationLevelMod(d["education_level_mod_id"] - 1); + newObj.average = 0.0; + result.splice(result.indexOf(prevFirstDimId) + 1, 0, newObj); + } + prevFirstDimId = d; + }); +} + // LDE classCountApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { // Faz a consulta do número de alunos pelas dimensões @@ -379,6 +401,7 @@ classCountApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { else { const classCount = averageCalc(req.result); req.result = classCount; + addNullFields(req.result); } next(); }, response('class_count'));