Skip to content
Snippets Groups Projects
Commit 755ab6d5 authored by Vytor Calixto's avatar Vytor Calixto :space_invader:
Browse files

Merge branch 'issue/423' into development

Related: simcaq/SCRUM#423
parents a9d1adda 64b47d4a
No related branches found
No related tags found
No related merge requests found
Pipeline #17787 failed
module.exports = function educationLevelSchoolYear(id) {
switch(id) {
case 1: return 'Creche';
case 11: return 'Creche - Menor de 1 ano';
case 12: return 'Creche - 1 ano';
case 13: return 'Creche - 2 anos';
case 14: return 'Creche - 3 anos';
case 2: return 'Pré-Escola';
case 21: return 'Pré-Escola - 4 anos';
case 22: return 'Pré-Escola - 5 anos';
case 3: return 'Ensino Fundamental - anos iniciais';
case 31: return 'Ens. Fundamental - 1º Ano';
case 32: return 'Ens. Fundamental - 1ª série/2º ano';
case 33: return 'Ens. Fundamental - 2ª série/3º ano';
case 34: return 'Ens. Fundamental - 3ª série/4º ano';
case 35: return 'Ens. Fundamental - 4ª série/5º Ano';
case 4: return 'Ensino Fundamento - anos finais';
case 41: return 'Ens. Fundamental - 5ª série/6º ano';
case 42: return 'Ens. Fundamental - 6ª série/7º ano';
case 43: return 'Ens. Fundamental - 7ª série/8º ano';
case 44: return 'Ens. Fundamental - 8ª serie/9º ano';
case 5: return 'Ensino Médio';
case 51: return 'Ens. Médio - 1ª série';
case 52: return 'Ens. Médio - 2ª série';
case 53: return 'Ens. Médio - 3ª série';
case 54: return 'Ens. Médio - 4ª série';
case 6: return 'EJA';
case 61: return 'EJA - anos iniciais do Ens. Fundamental';
case 62: return 'EJA - anos finais do Ens. Fundamental';
case 63: return 'EJA - Ensino Médio';
case 64: return 'EJA semi-presencial';
case 7: return 'EE exclusiva';
case 71: return 'Educação Profissional';
default: return 'Não classificada';
}
}
\ No newline at end of file
......@@ -30,6 +30,7 @@ const useTransport = require(`${libs}/convert/booleanVariable`);
const useTransportPublic = require(`${libs}/convert/booleanVariable`);
const transportationManager = require(`${libs}/convert/transportationManager`);
const specialClass = require(`${libs}/convert/booleanVariable`);
const educationLevelSchoolYear = require(`${libs}/convert/educationLevelSchoolYear`);
const ids = {
gender_id: gender,
......@@ -71,7 +72,8 @@ const ids = {
use_transport_id: useTransport,
use_transport_public_id: useTransportPublic,
transportation_manager_id: transportationManager,
special_class_id: specialClass
special_class_id: specialClass,
education_level_school_year_id: educationLevelSchoolYear,
};
function transform(removeId=false) {
......
......@@ -80,6 +80,8 @@ const classCount = require(`${libs}/routes/classCount`);
const portalMecInep = require(`${libs}/routes/portalMecInep`);
const enrollmentProjection = require(`${libs}/routes/enrollmentProjection`);
api.get('/', (req, res) => {
res.json({ msg: 'SimCAQ API is running' });
......@@ -123,5 +125,6 @@ api.use('/auxiliar', auxiliar);
api.use('/verify_teacher', verifyTeacher);
api.use('/class_count', classCount);
api.use('/portal_mec_inep', portalMecInep);
api.use('/enrollment_projection', enrollmentProjection);
module.exports = api;
const express = require('express');
const enrollmentProjectionApp = express.Router();
const libs = `${process.cwd()}/libs`;
const log = require(`${libs}/log`)(module);
const squel = require('squel');
const query = require(`${libs}/middlewares/query`).query;
const response = require(`${libs}/middlewares/response`);
const ReqQueryFields = require(`${libs}/middlewares/reqQueryFields`);
const id2str = require(`${libs}/middlewares/id2str`);
const config = require(`${libs}/config`);
const addMissing = require(`${libs}/middlewares/addMissing`);
const cache = require('apicache').options({ debug: config.debug, statusCodes: {include: [200]} }).middleware;
enrollmentProjectionApp.use(cache('15 day'));
let rqf = new ReqQueryFields();
rqf.addField({
name: 'filter',
field: false,
where: true
}).addField({
name: 'dims',
field: true,
where: false
}).addValueToField({
name: 'state',
table: 'estado',
tableField: ['nome', 'id'],
resultField: ['state_name', 'state_id'],
where: {
relation: '=',
type: 'integer',
field: 'id'
},
join: {
primary: 'id',
foreign: 'estado_id',
foreignTable: 'projecao_matricula'
}
}, 'dims').addValueToField({
name: 'state',
table: 'estado',
tableField: 'nome',
resultField: 'state_name',
where: {
relation: '=',
type: 'integer',
field: 'id'
},
join: {
primary: 'id',
foreign: 'estado_id',
foreignTable: 'projecao_matricula'
}
}, 'filter').addValueToField({
name: 'city',
table: 'municipio',
tableField: ['nome', 'id'],
resultField: ['city_name', 'city_id'],
where: {
relation: '=',
type: 'integer',
field: 'id'
},
join: {
primary: 'id',
foreign: 'municipio_id',
foreignTable: 'projecao_matricula'
}
}, 'dims').addValueToField({
name: 'city',
table: 'municipio',
tableField: 'nome',
resultField: 'city_name',
where: {
relation: '=',
type: 'integer',
field: 'id'
},
join: {
primary: 'id',
foreign: 'municipio_id',
foreignTable: 'projecao_matricula'
}
}, 'filter').addValue({
name: 'min_year',
table: 'projecao_matricula',
tableField: 'ano_censo',
resultField: 'year',
where: {
relation: '>=',
type: 'integer',
field: 'ano_censo'
}
}).addValue({
name: 'max_year',
table: 'projecao_matricula',
tableField: 'ano_censo',
resultField: 'year',
where: {
relation: '<=',
type: 'integer',
field: 'ano_censo'
}
});
enrollmentProjectionApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
req.sql.field("'Brasil'", 'name')
.field('SUM(projecao_matricula.urbano_dia_total)', 'urban_day_total')
.field('SUM(projecao_matricula.urbano_noite_total)', 'urban_night_total')
.field('SUM(projecao_matricula.rural_dia_total)', 'rural_day_total')
.field('SUM(projecao_matricula.rural_noite_total)', 'rural_night_total')
.field('projecao_matricula.etapa_ensino_escola_ano_id', 'education_level_school_year_id')
.field('projecao_matricula.ano_censo', 'year')
.from('projecao_matricula')
.group('projecao_matricula.etapa_ensino_escola_ano_id')
.group('projecao_matricula.ano_censo')
.order('projecao_matricula.ano_censo')
.order('projecao_matricula.etapa_ensino_escola_ano_id');
next();
}, query, id2str.transform(), response('enrollment_projection'));
module.exports = enrollmentProjectionApp;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment