diff --git a/src/libs/routes/disciplines.js b/src/libs/routes/disciplines.js index 3fde7c6e4b7e510049b038bd20a9d40a4a08330a..0d491d79b358589e14c975060a88234d1ed36431 100644 --- a/src/libs/routes/disciplines.js +++ b/src/libs/routes/disciplines.js @@ -460,6 +460,7 @@ disciplinesApp.get('/', rqf.parse(), (req, res, next) => { if ('discipline' in req.dims) { // delete req.filter.discipline; delete req.dims.discipline; + req.tmp_discipline = true; req.sql.field('SUM(n_disc)', 'total') .field('SUM(n_disc_adequada)', 'total_suitable') @@ -630,40 +631,41 @@ disciplinesApp.get('/', rqf.parse(), (req, res, next) => { let disciplinesSuitable = []; req.result.forEach((r) => { - let objNotSuitable = { - total: parseInt(r.total) - parseInt(r.total_suitable), - suitable: 0, - discipline_name: 'Formação não adequada', - } - let objSuitable = { - total: parseInt(r.total_suitable), - suitable: 1, - discipline_name: 'Formação adequada', + let obj = { + sum_total: 0, + sum_suitable: 0 } + Object.keys(r).forEach(k => { - if (k !== 'total' && k !== 'total_suitable') { - objNotSuitable[k] = r[k]; - objSuitable[k] = r[k]; - } + if (k !== 'total' && k !== 'total_suitable') + obj[k] = r[k]; }) - if ('discipline' in req.dims){ - objNotSuitable["sum_total"] = 0; - objNotSuitable["sum_suitable"] = 0; - objSuitable["sum_total"] = 0; - objSuitable["sum_suitable"] = 0; + + if (req.tmp_discipline){ Object.keys(r).forEach(k => { - if (/^total_suitable/.test(k)){ // if k starts with total_suitable - objSuitable.sum_suitable += parseInt(r[k]); - objNotSuitable.sum_suitable += parseInt(r[k]); - } - else if (/^total_/.test(k)){ - objSuitable.sum_total += parseInt(r[k]); - objNotSuitable.sum_total += parseInt(r[k]); - } + if (/^total_suitable/.test(k)) // if k starts with total_suitable + obj.sum_suitable += parseInt(r[k]); + else if (/^total_/.test(k)) + obj.sum_total += parseInt(r[k]); }) + } else { + delete obj.sum_total; + delete obj.sum_suitable; } + let objNotSuitable = Object.assign({}, { + total: parseInt(r.total) - parseInt(r.total_suitable), + suitable: 0, + discipline_name: 'Formação não adequada', + }, obj) + + let objSuitable = Object.assign({}, { + total: parseInt(r.total_suitable), + suitable: 1, + discipline_name: 'Formação adequada', + }, obj) + disciplinesNotSuitable.push(objNotSuitable) disciplinesSuitable.push(objSuitable) })