@@ -317,7 +317,7 @@ function calculateDayStatistics(fromDate, toDate) {
317317
318318 // Count population on holiday
319319 const population = regions ( populationData . countries [ country ] ) ;
320- let holidayRegions = new Set ( ) ;
320+ let regionsOnHoliday = new Set ( ) ;
321321 let nationwideHoliday = false ;
322322 let nationwideSchoolHoliday = false ;
323323 const infos = { } ;
@@ -340,7 +340,7 @@ function calculateDayStatistics(fromDate, toDate) {
340340 regions ( r ) . map ( s => s . code . split ( "-" ) . slice ( 0 , 2 ) . join ( "-" ) ) . forEach ( region => {
341341 if ( population [ region ] ) {
342342 infos [ label ] . Regions . add ( region ) ;
343- holidayRegions . add ( region )
343+ regionsOnHoliday . add ( region )
344344 } else {
345345 missingRegions . add ( region )
346346 }
@@ -351,24 +351,28 @@ function calculateDayStatistics(fromDate, toDate) {
351351 }
352352
353353 const countryPopTotal = Object . values ( population ) . reduce ( ( a , b ) => a + b , 0 ) ;
354- const holidayPopulation = ( nationwideHoliday || nationwideSchoolHoliday ) ? countryPopTotal : [ ...holidayRegions ] . map ( c => population [ c ] ) . reduce ( ( a , b ) => a + b , 0 ) ;
354+ const holidayPopulation = ( nationwideHoliday || nationwideSchoolHoliday ) ? countryPopTotal : [ ...regionsOnHoliday ] . map ( c => population [ c ] ) . reduce ( ( a , b ) => a + b , 0 ) ;
355355 holidayPopulationTotal += holidayPopulation ;
356356 nationwideHolidayAnyCountry |= nationwideHoliday ;
357357
358358
359359 // Check for incomplete data
360- if ( holidays . length === 0 || schoolHolidays . length === 0 || maxDate ( schoolHolidays . map ( f => f . endDate ) ) < d ) {
361- incompleteData . add ( countryName ) ;
362- incompleteDataPopulation += countryPopTotal ;
363- } else {
364- // Also check if school holidays are missing completely for any region
365- let missing = Object . keys ( regions ( populationData . countries [ country ] ) ) . filter ( region => {
366- const regionHolidays = schoolHolidays . filter ( h => h . nationwide || regions ( h ) ?. map ( s => s . code . split ( "-" ) . slice ( 0 , 2 ) . join ( "-" ) ) . includes ( region ) ) ;
367- return regionHolidays . length === 0 || maxDate ( regionHolidays . map ( f => f . endDate ) ) < d ;
368- } ) ;
369- if ( missing . length > 0 ) {
370- incompleteData . add ( countryName + " (" + missing . map ( r => regionNames [ r ] ) . join ( ", " ) + ")" )
371- incompleteDataPopulation += missing . map ( r => population [ r ] ) . reduce ( ( a , b ) => a + b , 0 ) ;
360+ if ( ! nationwideHoliday && ! nationwideSchoolHoliday ) {
361+ if ( holidays . length === 0 || schoolHolidays . length === 0 || maxDate ( schoolHolidays . map ( f => f . endDate ) ) < d ) {
362+ incompleteData . add ( countryName ) ;
363+ incompleteDataPopulation += countryPopTotal ;
364+ } else {
365+ // Also check if school holidays are missing completely for any region
366+ let missing = Object . keys ( regions ( populationData . countries [ country ] ) ) . filter ( region => {
367+ if ( regionsOnHoliday . has ( region ) ) return false ;
368+ const regionalSchoolHolidays = schoolHolidays . filter ( h => h . nationwide || regions ( h ) ?. map (
369+ s => s . code . split ( "-" ) . slice ( 0 , 2 ) . join ( "-" ) ) . includes ( region ) ) ;
370+ return regionalSchoolHolidays . length === 0 || maxDate ( regionalSchoolHolidays . map ( f => f . endDate ) ) < d ;
371+ } ) ;
372+ if ( missing . length > 0 ) {
373+ incompleteData . add ( countryName + " (" + missing . map ( r => regionNames [ r ] ) . join ( ", " ) + ")" )
374+ incompleteDataPopulation += missing . map ( r => population [ r ] ) . reduce ( ( a , b ) => a + b , 0 ) ;
375+ }
372376 }
373377 }
374378
0 commit comments