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({
})
ExpensesApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
let obj = {}
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";
// 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;
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) => {
if (filter.includes("state") || filter.includes("city")) {
filterId = Number(filter.split(":")[1].replace(/"/g, ""));
whereCondition = `despesas.cod_ibge = ${filterId}`
if (filter.includes('state') || filter.includes('city')) {
filterId = Number(filter.split(':')[1].replace(/"/g, ''));
whereCondition = `despesas.cod_ibge = ${filterId}`;
}
})
});
// Interpreta o JSON de filtros; se tiver “type”, ajusta o where para agregar por tipo
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"
// Se vier só “1” (por exemplo, Unidades Federativas)
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"
// 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.from('despesas')
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')
}
.field('SUM(ROUND(despesas.despesas, 2))', 'total')
.where(whereCondition)
.group('despesas.ano_censo')
.order('despesas.ano_censo');
next();
}, query, id2str.transform(false), response('expenses'));
},
query,
id2str.transform(false),
response('expenses')
);
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