Skip to content
Snippets Groups Projects
Commit 31f48959 authored by Fernando Gbur dos Santos's avatar Fernando Gbur dos Santos
Browse files

Development

parent 439142e5
No related branches found
No related tags found
3 merge requests!501[hotfix] capital filter working for superior education conclusion tax...,!499[hotfix] capital filter working for superior education conclusion tax...,!491Development
...@@ -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