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

Merge branch 'development' into 'homologa'

Development

See merge request !491
parents 439142e5 31f48959
Branches
No related tags found
4 merge requests!514hom -> master,!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