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

Fix bug with school_year order

Related: simcaq/SCRUM#408
parent 2c6001a5
No related branches found
No related tags found
No related merge requests found
Pipeline #18593 failed
......@@ -405,7 +405,14 @@ classroomCountApp.post('/', rqf.parse(), (req, res, next) => {
total_classrooms_needed: 0
}
schoolYearSet.add(schoolYearHash);
educationLevel.classes_school_year.push(school_year);
// Busca a posição para inserir
let k = 0;
let el = educationLevel.classes_school_year[k];
while((typeof el !== 'undefined') && school_year.school_year_id > el.school_year_id) {
el = educationLevel.classes_school_year[++k];
}
// educationLevel.classes_school_year.push(school_year);
educationLevel.classes_school_year.splice(k, 0, school_year);
currentSchoolYear = school_year;
}
}
......@@ -558,25 +565,27 @@ classroomCountApp.post('/', rqf.parse(), (req, res, next) => {
currentEducation.enrollment.day_classes += cityEducation.enrollment.day_classes;
currentEducation.enrollment.night_classes += cityEducation.enrollment.night_classes;
currentEducation.enrollment.total_classrooms_needed += cityEducation.enrollment.total_classrooms_needed;
// Insere as séries escolares, se existirem
if((typeof cityEducation.classes_school_year !== 'undefined') && (typeof currentEducation.classes_school_year !== 'undefined')) {
let n = 0;
let o = 0;
let cityClass = null;
let currentClass = null;
let currentClass = currentEducation.classes_school_year[n];
let cityClass = cityEducation.classes_school_year[o];
while((typeof cityClass !== 'undefined') && (typeof currentClass !== 'undefined')) {
cityClass = cityEducation.classes_school_year[o];
currentClass = currentEducation.classes_school_year[n];
cityClass = cityEducation.classes_school_year[o];
// Se a série escolar é menor que a atual, ela não está no vetor, pois o vetor está ordenado e tem range limitado
if(cityClass.school_year_id < currentClass.school_year_id) {
currentEducation.classes_school_year.splice(n, 0, cityClass);
currentClass = currentEducation.classes_school_year[n];
cityClass = cityEducation.classes_school_year[++o];
continue;
} else if(cityClass.school_year_id > currentClass.school_year_id) {
currentClass = currentEducation.classes_school_year[++n];
// Se o ano escolar da cidade é maior que a localidade do objeto atual E o vetor de ano escolar do objeto atual
// Se o ano escolar da cidade é maior que do objeto atual E o vetor de ano escolar do objeto atual
// acaba, então este ano escolar falta no objeto atual, pois os anos escolares estão ordenados
if(typeof currentClass == 'undefined' && typeof cityClass !== 'undefined') {
if((typeof currentClass == 'undefined') && (typeof cityClass !== 'undefined')) {
currentEducation.classes_school_year[n] = cityClass;
currentClass = currentEducation.classes_school_year[n];
}
......@@ -616,7 +625,10 @@ classroomCountApp.post('/', rqf.parse(), (req, res, next) => {
}
}
req.result = reduction || result;
req.result = {
result: reduction || result,
leftovers
}
next();
}, response('classroom_count'));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment