From ee0fd06ac54ca24c712cedc5ce2109601ac9296f Mon Sep 17 00:00:00 2001
From: Lewis <lgtg20@inf.ufpr.br>
Date: Mon, 24 Feb 2025 11:32:22 -0300
Subject: [PATCH] feat: update revenue conversion logic and enhance student
 revenue API with new filters

---
 src/libs/convert/revenue.js          | 14 ++++++++------
 src/libs/routes_v1/studentRevenue.js | 26 +++++++++++++++-----------
 2 files changed, 23 insertions(+), 17 deletions(-)

diff --git a/src/libs/convert/revenue.js b/src/libs/convert/revenue.js
index c4f5865a..9278e280 100644
--- a/src/libs/convert/revenue.js
+++ b/src/libs/convert/revenue.js
@@ -21,18 +21,20 @@ along with simcaq-node.  If not, see <https://www.gnu.org/licenses/>.
 module.exports = function regionCode(id) {
     switch (id) {
         case 1:
-        return 'Receitas';
+        return "Nome Ente"
         case 2:
-        return 'Matrículas Públicas';
+        return 'Receitas';
         case 3:
-        return 'Matrículas Públicas Mais Conveniada';
+        return 'Matrículas Públicas';
         case 4:
-        return 'Receita Aluno Ano Pública'
+        return 'Matrículas Públicas Mais Conveniada';
         case 5:
-        return 'Receita Aluno Mês Pública';
+        return 'Receita Aluno Ano Pública'
         case 6:
-        return 'Receita Aluno Ano Pública Mais Conveniada';
+        return 'Receita Aluno Mês Pública';
         case 7:
+        return 'Receita Aluno Ano Pública Mais Conveniada';
+        case 8:
         return 'Receita Aluno Mês Pública Mais Conveniada';
     }
 };
diff --git a/src/libs/routes_v1/studentRevenue.js b/src/libs/routes_v1/studentRevenue.js
index 93ae6997..efce47c5 100644
--- a/src/libs/routes_v1/studentRevenue.js
+++ b/src/libs/routes_v1/studentRevenue.js
@@ -45,8 +45,9 @@ let rqf = new ReqQueryFields();
 studentRevenueApp.use(cache('15 day'));
 
 studentRevenueApp.get('/years', (req, res, next) => {
-    req.sql.from('pnad_novo')
+    req.sql.from('receitas')
     .field('DISTINCT receitas.ano', 'year')
+    .where('receitas.ano is not null')
     next();
 }, query, response('years'));
 
@@ -78,23 +79,24 @@ rqf.addField({
         type: 'integer',
         field: 'ano'
     }
-}).addValue({
-    name: 'city',
-    table: 'receitas',
-    tableField: 'cod_ibge',
-    resultField: 'city',
-    where: {
-        relation: '=',
-        type: 'integer',
-        field: 'cod_ibge'
-    }
 })
 
 studentRevenueApp.get('/', rqf.parse(), rqf.build(),  (req, res, next) => {
 
     if (req.query.dims && req.query.dims.includes('receitas')) {
+        let whereCondition = "";
+        let filterId;
+        const filters = req.query.filter.split(",");
+        filters.forEach((filter) => {
+            if (filter.includes("state") || filter.includes("city")) {
+                filterId = Number(filter.split(":")[1].replace(/"/g, ""));
+                whereCondition = `receitas.cod_ibge = ${filterId}`
+            }
+        })
+
         req.sql.from('receitas')
         .field('receitas.ano', 'year')
+        .field('receitas.nome_ente', 'total_nome_ente')
         .field('receitas.receitas', 'total_receitas')
         .field('matriculas_publica', 'total_matriculas_publica')
         .field('matriculas_publicas_mais_conveniada', 'total_matriculas_publicas_mais_conveniada')
@@ -102,6 +104,8 @@ studentRevenueApp.get('/', rqf.parse(), rqf.build(),  (req, res, next) => {
         .field('receita_aluno_mes_publica', 'total_receita_aluno_mes_publica')
         .field('receita_aluno_ano_publica_mais_conveniada', 'total_receita_aluno_ano_publica_mais_conveniada')
         .field('receita_aluno_mes_publica_mais_conveniada', 'total_receita_aluno_mes_publica_mais_conveniada')
+        .where(`${whereCondition}`)
+        .order('receitas.cod_ibge')
     }
 
     next();
-- 
GitLab