diff --git a/src/libs/routes/transport.js b/src/libs/routes/transport.js index a93de2e2995599e17d310a9dc498e7c62f03bcae..7af1b9907366b1de7be37f1db0c4d5d4d7dc8487 100644 --- a/src/libs/routes/transport.js +++ b/src/libs/routes/transport.js @@ -211,6 +211,26 @@ rqf.addField({ type: 'integer', field: 'etapas_mod_ensino_segmento_id' } +}).addValue({ + name: 'service_type', + table: 'matricula', + tableField: 'tipo', + resultField: 'service_type_id', + where: { + relation: '=', + type: 'integer', + field: 'tipo' + } +}).addValue({ + name: 'service_type', + table: 'matricula', + tableField: 'tipo', + resultField: 'service_type_id', + where: { + relation: '=', + type: 'integer', + field: 'tipo' + } }).addValue({ name: 'min_year', table: 'matricula', @@ -280,13 +300,23 @@ transportApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { allEnrollment.field('COUNT(*)', 'total') .field("'Brasil'", 'name') .field('matricula.ano_censo', 'year') + .from('matricula') + .group('matricula.ano_censo') + .order('matricula.ano_censo') + .where('matricula.tipo <= 3'); + req.queryIndex.allEnrollment = req.querySet.push(allEnrollment) - 1; + + let allEnrollmentTransport = req.sql.clone() + allEnrollmentTransport.field('COUNT(*)', 'total') + .field("'Brasil'", 'name') + .field('matricula.ano_censo', 'year') .field('matricula.transporte_escolar_publico', 'use_transport_id') .from('matricula') .group('matricula.ano_censo') .group('matricula.transporte_escolar_publico') .order('matricula.ano_censo') .where('matricula.tipo <= 3'); - req.queryIndex.allEnrollment = req.querySet.push(allEnrollment) - 1; + req.queryIndex.allEnrollmentTransport = req.querySet.push(allEnrollmentTransport) - 1; let allTransports = req.sql.clone() @@ -379,33 +409,58 @@ transportApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { next(); }, multiQuery, (req, res, next) => { + let transport_match = []; + let transport_match_0 = JSON.parse(JSON.stringify(req.result[req.queryIndex.allTransports])); + let transport_match_1 = JSON.parse(JSON.stringify(req.result[req.queryIndex.allTransports])); + + let all_enrollment_match = []; + let all_enrollment_match_0 = JSON.parse(JSON.stringify(req.result[req.queryIndex.allEnrollment])); + let all_enrollment_match_1 = JSON.parse(JSON.stringify(req.result[req.queryIndex.allEnrollment])); + + //modifica adicionando use_transport_id=false, com os mesmos valores + //do transport_id=true, usado para dar o match e fazer a divisão. + for (let i = 0; i < transport_match_0.length; i++) { + transport_match_0[i].use_transport_id = true; + transport_match.push(transport_match_0[i]) + transport_match_1[i].use_transport_id = false; + transport_match.push(transport_match_1[i]) + } + + //modifica adicionando use_transport_id=false, com os mesmos valores + //do transport_id=true, usado para dar o match e fazer a divisão. + for (let i = 0; i < all_enrollment_match_0.length; i++) { + all_enrollment_match_0[i].use_transport_id = true; + all_enrollment_match.push(all_enrollment_match_0[i]) + all_enrollment_match_1[i].use_transport_id = false; + all_enrollment_match.push(all_enrollment_match_1[i]) + } - let public_transport = req.result[req.queryIndex.allEnrollment]; - let van_and_kombi = req.result[req.queryIndex.goVansAndKombi]; - let micro_bus = req.result[req.queryIndex.goMicroBus]; - let Bus = req.result[req.queryIndex.goBus]; - let bike = req.result[req.queryIndex.goBikes]; - let animal_traction = req.result[req.queryIndex.goAnimalTraction]; - let other_vehicle = req.result[req.queryIndex.goOtherVehicle]; - let waterway_5_Students = req.result[req.queryIndex.goWaterway_5_Students]; - let waterway_15_Students = req.result[req.queryIndex.goWaterway_15_Students]; - let waterway_35_Students = req.result[req.queryIndex.goWaterway_35_Students]; - let waterway_More_Than_35 = req.result[req.queryIndex.goWaterwayMoreThan_35]; - let subway_and_train = req.result[req.queryIndex.goSubwayAndTrain]; + let public_transport = matchQueries(all_enrollment_match, req.result[req.queryIndex.allEnrollmentTransport]); + let van_and_kombi = matchQueries(transport_match, req.result[req.queryIndex.goVansAndKombi]); + let micro_bus = matchQueries(transport_match, req.result[req.queryIndex.goMicroBus]); + let bus = matchQueries(transport_match, req.result[req.queryIndex.goBus]); + let bike = matchQueries(transport_match, req.result[req.queryIndex.goBikes]); + let animal_traction = matchQueries(transport_match, req.result[req.queryIndex.goAnimalTraction]); + let other_vehicle = matchQueries(transport_match, req.result[req.queryIndex.goOtherVehicle]); + let waterway_5_Students = matchQueries(transport_match, req.result[req.queryIndex.goWaterway_5_Students]); + let waterway_15_Students = matchQueries(transport_match, req.result[req.queryIndex.goWaterway_15_Students]); + let waterway_35_Students = matchQueries(transport_match, req.result[req.queryIndex.goWaterway_35_Students]); + let waterway_More_Than_35 = matchQueries(transport_match, req.result[req.queryIndex.goWaterwayMoreThan_35]); + let subway_and_train = matchQueries(transport_match, req.result[req.queryIndex.goSubwayAndTrain]); req.result = [{ - public_transport, - van_and_kombi, - micro_bus, - Bus, - bike, - animal_traction, - other_vehicle, - waterway_5_Students, - waterway_15_Students, - waterway_35_Students, - waterway_More_Than_35, - subway_and_train + public_transport, + van_and_kombi, + micro_bus, + bus, + bike, + animal_traction, + other_vehicle, + waterway_5_Students, + waterway_15_Students, + waterway_35_Students, + waterway_More_Than_35, + subway_and_train }]; next(); }, id2str.multitransform(false), response('transports'));