Skip to content
Snippets Groups Projects

[hotfix] somar registros para filtro de rede

Merged Joao Pedro Ramalho requested to merge fix_despesas into development
1 file
+ 44
32
Compare changes
  • Side-by-side
  • Inline
@@ -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.includes("1") && !obj.type.includes("2")) {
if (obj.type) {
whereCondition = "despesas.cod_ibge >= 11 and despesas.cod_ibge <= 53"
// Se vier só “1” (por exemplo, Unidades Federativas)
}
if (obj.type.includes('1') && !obj.type.includes('2')) {
else if (obj.type.includes("2") && !obj.type.includes("1")) {
whereCondition = 'despesas.cod_ibge >= 11 AND despesas.cod_ibge <= 53';
whereCondition = "despesas.cod_ibge > 53"
}
typeFilter = true;
}
}
 
// Se vier só “2” (Municípios)
 
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
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
Loading