From 2b2f35f1f174be1d5e16297208f93a666ae7d2ab Mon Sep 17 00:00:00 2001 From: Pietro <ppc19@inf.ufpr.br> Date: Tue, 7 Jun 2022 11:18:44 -0300 Subject: [PATCH] add sum parameters to dim disciplines --- src/libs/routes/disciplines.js | 54 ++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/src/libs/routes/disciplines.js b/src/libs/routes/disciplines.js index 3fde7c6e..0d491d79 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) }) -- GitLab