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] [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