Skip to content
Snippets Groups Projects
Commit 7b4a9746 authored by Joao Pedro Ramalho's avatar Joao Pedro Ramalho :call_me_tone2:
Browse files

Merge branch 'fix_despesas' into 'development'

[hotfix] somar registros para filtro de rede

See merge request !490
parents f4670a4a b0bee54b
No related branches found
No related tags found
5 merge requests!501[hotfix] capital filter working for superior education conclusion tax...,!499[hotfix] capital filter working for superior education conclusion tax...,!493dev -> hom,!491Development,!490[hotfix] somar registros para filtro de rede
...@@ -117,46 +117,58 @@ rqf.addField({ ...@@ -117,46 +117,58 @@ rqf.addField({
}) })
ExpensesApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { ExpensesApp.get(
'/',
let obj = {} rqf.parse(),
rqf.build(),
(req, res, next) => {
let obj = {};
let typeFilter = false; let typeFilter = false;
let whereCondition = req.query.filter.includes("region") ? "" : "despesas.cod_ibge = 0"; // condição inicial padrão (sem filtro de região, coloca cod_ibge = 0 só para não quebrar a query)
let whereCondition = req.query.filter.includes('region')
? ''
: 'despesas.cod_ibge = 0';
let filterId; let filterId;
const filters = req.query.filter.split(","); const filters = req.query.filter.split(',');
// Se houver filtro de estado/cidade, ajusta o cod_ibge
filters.forEach((filter) => { filters.forEach((filter) => {
if (filter.includes("state") || filter.includes("city")) { if (filter.includes('state') || filter.includes('city')) {
filterId = Number(filter.split(":")[1].replace(/"/g, "")); filterId = Number(filter.split(':')[1].replace(/"/g, ''));
whereCondition = `despesas.cod_ibge = ${filterId}` whereCondition = `despesas.cod_ibge = ${filterId}`;
} }
}) });
// Interpreta o JSON de filtros; se tiver “type”, ajusta o where para agregar por tipo
if (req.query.filter) { if (req.query.filter) {
const jsonString = `{${req.query.filter.replace(/(\w+):/g, '"$1":')}}`; const jsonString = `{${req.query.filter.replace(/(\w+):/g, '"$1":')}}`;
obj = JSON.parse(jsonString); obj = JSON.parse(jsonString);
if (obj.type) { if (obj.type) {
if (obj.type.includes("1") && !obj.type.includes("2")) { // Se vier só “1” (por exemplo, Unidades Federativas)
whereCondition = "despesas.cod_ibge >= 11 and despesas.cod_ibge <= 53" 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")) { // Se vier só “2” (Municípios)
whereCondition = "despesas.cod_ibge > 53" else if (obj.type.includes('2') && !obj.type.includes('1')) {
whereCondition = 'despesas.cod_ibge > 53';
} }
typeFilter = true; typeFilter = true;
} }
} }
if (!typeFilter || (typeFilter && (!obj.state && !obj.city && !obj.region))) { req.sql
req.sql.from('despesas') .from('despesas')
.field('despesas.ano_censo', 'year') .field('despesas.ano_censo', 'year')
.field('despesas.ano_censo', 'total_ano') .field('SUM(ROUND(despesas.despesas, 2))', 'total')
.field('despesas.nome_ente', 'total_nome_ente') .where(whereCondition)
.field('round(despesas.despesas,2)', 'total') .group('despesas.ano_censo')
.where(`${whereCondition}`) .order('despesas.ano_censo');
.order('despesas.ano_censo')
}
next(); next();
}, query, id2str.transform(false), response('expenses')); },
query,
id2str.transform(false),
response('expenses')
);
module.exports = ExpensesApp; module.exports = ExpensesApp;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment