From c31b81cc1dbe1695f5424cd973ca423d8fea855d Mon Sep 17 00:00:00 2001
From: Joao Pedro <jpv.ramalho2013@gmail.com>
Date: Wed, 28 May 2025 09:32:16 -0300
Subject: [PATCH 1/2] [fix] retirou as colunas desnecessarias da tabela

---
 src/libs/middlewares/aggregateData.js |  2 ++
 src/libs/routes_v1/expenses.js        | 44 +++++++++++----------------
 2 files changed, 20 insertions(+), 26 deletions(-)

diff --git a/src/libs/middlewares/aggregateData.js b/src/libs/middlewares/aggregateData.js
index 8dbf01d7..0aab0341 100644
--- a/src/libs/middlewares/aggregateData.js
+++ b/src/libs/middlewares/aggregateData.js
@@ -78,6 +78,7 @@ function aggregateData(req, res, next) {
         let currentAggregateField;
         let currentNonAggregateField;
     
+        console.log("data pre aggregate" ,req.result)
         // Verifica se o filtro passado está presente nos filtros agregados
         fields.forEach(field => {if (aggregateFields.includes(field)) currentAggregateField = field; else currentNonAggregateField = field});
         if (currentAggregateField) {
@@ -109,6 +110,7 @@ function aggregateData(req, res, next) {
             req.result = newResult;
         }
     }
+    console.log("data pos aggregate" ,req.result)
     next();
 }
 
diff --git a/src/libs/routes_v1/expenses.js b/src/libs/routes_v1/expenses.js
index 624609e8..40f41166 100644
--- a/src/libs/routes_v1/expenses.js
+++ b/src/libs/routes_v1/expenses.js
@@ -111,33 +111,25 @@ rqf.addField({
 
 ExpensesApp.get('/', rqf.parse(), rqf.build(),  (req, res, next) => {
 
-    if (req.query.dims && req.query.dims.includes('despesas')) {
-        let whereCondition = req.query.filter.includes("region") ? "" : "despesas.cod_ibge = 0";
-        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 = `despesas.cod_ibge = ${filterId}`
-            }
-        })
-
-        req.sql.from('despesas')
-        .field('despesas.ano_censo', 'year')
-        .field('despesas.ano_censo', 'total_ano')
-        .field('despesas.nome_ente', 'total_nome_ente')
-        .field('round(despesas.despesas,2)', 'total_despesas')
-        .field('matriculas_publica', 'total_matriculas_publica')
-        .field('matriculas_publicas_mais_conveniada', 'total_matriculas_publicas_mais_conveniada')
-        .field('round(gasto_aluno_ano_publica,2)', 'total_gasto_aluno_ano_publica')
-        .field('round(gasto_aluno_mes_publica,2)', 'total_gasto_aluno_mes_publica')
-        .field('round(gasto_aluno_ano_publica_mais_conveniada,2)', 'total_gasto_aluno_ano_publica_mais_conveniada')
-        .field('round(gasto_aluno_mes_publica_mais_conveniada,2)', 'total_gasto_aluno_mes_publica_mais_conveniada')
-        .where(`${whereCondition}`)
-        .order('despesas.ano_censo')
-    }
+    let whereCondition = req.query.filter.includes("region") ? "" : "despesas.cod_ibge = 0";
+    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 = `despesas.cod_ibge = ${filterId}`
+        }
+    })
 
+    req.sql.from('despesas')
+    .field('despesas.ano_censo', 'year')
+    .field('despesas.ano_censo', 'total_ano')
+    .field('despesas.nome_ente', 'total_nome_ente')
+    .field('round(despesas.despesas,2)', 'total')
+    .where(`${whereCondition}`)
+    .order('despesas.ano_censo')
+    
     next();
-}, query, aggregateData, id2str.transform(false), response('expenses'));
+}, query, id2str.transform(false), response('expenses'));
 
 module.exports = ExpensesApp;
\ No newline at end of file
-- 
GitLab


From 537bdef25e53cdf2bf3e8996c204db5d46b23465 Mon Sep 17 00:00:00 2001
From: Joao Pedro <jpv.ramalho2013@gmail.com>
Date: Wed, 28 May 2025 11:19:38 -0300
Subject: [PATCH 2/2] [fix] filtros por rede

---
 src/libs/routes_v1/expenses.js | 43 +++++++++++++++++++++++++++-------
 1 file changed, 35 insertions(+), 8 deletions(-)

diff --git a/src/libs/routes_v1/expenses.js b/src/libs/routes_v1/expenses.js
index 40f41166..0e578f2e 100644
--- a/src/libs/routes_v1/expenses.js
+++ b/src/libs/routes_v1/expenses.js
@@ -51,6 +51,14 @@ ExpensesApp.get('/years', (req, res, next) => {
     next();
 }, query, response('years'))
 
+ExpensesApp.get('/type', (req, res, next) => {
+    req.result = []
+
+    req.result.push({ id: 1, name: "Rede Estadual" });
+    req.result.push({ id: 2, name: "Rede Municipal" });
+    next();
+}, response('type'));
+
 // rqf.addValue({
 //     name: 'location',
 //     table: 'despesas',
@@ -111,6 +119,8 @@ rqf.addField({
 
 ExpensesApp.get('/', rqf.parse(), rqf.build(),  (req, res, next) => {
 
+    let obj = {}
+    let typeFilter = false;
     let whereCondition = req.query.filter.includes("region") ? "" : "despesas.cod_ibge = 0";
     let filterId;
     const filters = req.query.filter.split(",");
@@ -121,14 +131,31 @@ ExpensesApp.get('/', rqf.parse(), rqf.build(),  (req, res, next) => {
         }
     })
 
-    req.sql.from('despesas')
-    .field('despesas.ano_censo', 'year')
-    .field('despesas.ano_censo', 'total_ano')
-    .field('despesas.nome_ente', 'total_nome_ente')
-    .field('round(despesas.despesas,2)', 'total')
-    .where(`${whereCondition}`)
-    .order('despesas.ano_censo')
-    
+    if (req.query.filter) {
+        const jsonString = `{${req.query.filter.replace(/(\w+):/g, '"$1":')}}`;
+        obj = JSON.parse(jsonString);
+        if (obj.type) {
+            if (obj.type.includes("1") && !obj.type.includes("2")) {
+                whereCondition = "despesas.cod_ibge >= 11 and despesas.cod_ibge <= 53"
+            }
+            else if (obj.type.includes("2") && !obj.type.includes("1")) {
+                whereCondition = "despesas.cod_ibge > 53"
+            }
+
+            typeFilter = true;
+        }
+    }
+
+    if (!typeFilter || (typeFilter && (!obj.state && !obj.city && !obj.region))) {
+        req.sql.from('despesas')
+        .field('despesas.ano_censo', 'year')
+        .field('despesas.ano_censo', 'total_ano')
+        .field('despesas.nome_ente', 'total_nome_ente')
+        .field('round(despesas.despesas,2)', 'total')
+        .where(`${whereCondition}`)
+        .order('despesas.ano_censo')
+    }
+
     next();
 }, query, id2str.transform(false), response('expenses'));
 
-- 
GitLab