diff --git a/src/libs/routes_v1/expenses.js b/src/libs/routes_v1/expenses.js index 40f41166844abe3a41167ff459c84f52aec21749..0e578f2e663414eb3641496670685e710b221ac1 100644 --- a/src/libs/routes_v1/expenses.js +++ b/src/libs/routes_v1/expenses.js @@ -51,6 +51,14 @@ ExpensesApp.get('/years', (req, res, next) => { next(); }, query, response('years')) +ExpensesApp.get('/type', (req, res, next) => { + req.result = [] + + req.result.push({ id: 1, name: "Rede Estadual" }); + req.result.push({ id: 2, name: "Rede Municipal" }); + next(); +}, response('type')); + // rqf.addValue({ // name: 'location', // table: 'despesas', @@ -111,6 +119,8 @@ rqf.addField({ 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"; let filterId; const filters = req.query.filter.split(","); @@ -121,14 +131,31 @@ ExpensesApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { } }) - 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') - + 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" + } + 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') + .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') + } + next(); }, query, id2str.transform(false), response('expenses'));