Implemented the changed for ISO numbering to 90 script (generated the simple word file)

This commit is contained in:
DimitraVeropoulou 2026-02-05 12:11:33 +01:00
parent cc38d25a54
commit 5be79bcc87

View file

@ -119,8 +119,10 @@ kpi_data_dir <- file.path("..", "laravel_app", "storage", "app", project_dir, "r
date_suffix <- format(as.Date(report_date), "%Y%m%d") date_suffix <- format(as.Date(report_date), "%Y%m%d")
# Calculate current week from report_date using ISO 8601 week numbering # Calculate current week from report_date using ISO 8601 week numbering
current_week <- as.numeric(format(as.Date(report_date), "%V")) report_date_obj <- as.Date(report_date)
week_suffix <- paste0("week", current_week) current_week <- lubridate::isoweek(report_date_obj)
current_iso_year <- lubridate::isoyear(report_date_obj)
week_suffix <- paste0("week", sprintf("%02d", current_week), "_", current_iso_year)
# Candidate filenames we expect (exact and common variants) # Candidate filenames we expect (exact and common variants)
expected_summary_names <- c( expected_summary_names <- c(
@ -307,46 +309,39 @@ Sys.setlocale("LC_TIME", "C")
today <- as.character(report_date) today <- as.character(report_date)
mail_day_as_character <- as.character(mail_day) mail_day_as_character <- as.character(mail_day)
# Calculate report dates and weeks using ISO 8601 week numbering # Calculate report dates and weeks using ISO 8601 week numbering (consistent with scripts 40 & 80)
report_date_obj <- as.Date(today) report_date_obj <- as.Date(today)
current_week <- as.numeric(format(report_date_obj, "%V")) current_week <- lubridate::isoweek(report_date_obj)
year <- as.numeric(format(report_date_obj, "%Y")) current_iso_year <- lubridate::isoyear(report_date_obj)
year <- lubridate::isoyear(report_date_obj) # Use ISO year, not calendar year
# Calculate dates for weekly analysis # Calculate dates for weekly analysis (Monday-based, consistent with ISO 8601)
week_start <- report_date_obj - ((as.numeric(format(report_date_obj, "%w")) + 1) %% 7) week_start <- lubridate::floor_date(report_date_obj, unit = "week", week_start = 1)
week_end <- week_start + 6 week_end <- week_start + 6
# Calculate week days (copied from 05 script for compatibility) # Calculate previous week dates using date arithmetic (handles year boundaries automatically)
report_date_as_week_day <- weekdays(lubridate::ymd(today)) today_minus_1 <- as.character(report_date_obj - 7)
days_of_week <- c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday") today_minus_2 <- as.character(report_date_obj - 14)
today_minus_3 <- as.character(report_date_obj - 21)
# Calculate initial week number # Calculate week numbers for previous weeks using date arithmetic
week <- lubridate::week(today) prev_week_1_date <- report_date_obj - 7
safe_log(paste("Initial week calculation:", week, "today:", today)) prev_week_2_date <- report_date_obj - 14
prev_week_3_date <- report_date_obj - 21
# Calculate previous dates for comparisons week_minus_1 <- lubridate::isoweek(prev_week_1_date)
today_minus_1 <- as.character(lubridate::ymd(today) - 7) week_minus_1_year <- lubridate::isoyear(prev_week_1_date)
today_minus_2 <- as.character(lubridate::ymd(today) - 14)
today_minus_3 <- as.character(lubridate::ymd(today) - 21)
# Adjust week calculation based on mail day week_minus_2 <- lubridate::isoweek(prev_week_2_date)
if (which(days_of_week == report_date_as_week_day) > which(days_of_week == mail_day_as_character)) { week_minus_2_year <- lubridate::isoyear(prev_week_2_date)
safe_log("Adjusting weeks because of mail day")
week <- lubridate::week(today) + 1
today_minus_1 <- as.character(lubridate::ymd(today))
today_minus_2 <- as.character(lubridate::ymd(today) - 7)
today_minus_3 <- as.character(lubridate::ymd(today) - 14)
}
# Calculate week numbers for previous weeks week_minus_3 <- lubridate::isoweek(prev_week_3_date)
week_minus_1 <- week - 1 week_minus_3_year <- lubridate::isoyear(prev_week_3_date)
week_minus_2 <- week - 2
week_minus_3 <- week - 3
# Format current week with leading zeros # Format current week with leading zeros
week <- sprintf("%02d", week) week <- sprintf("%02d", current_week)
safe_log(paste("Report week:", current_week, "Year:", year)) safe_log(paste("Report week:", current_week, "ISO Year:", current_iso_year))
safe_log(paste("Week range:", week_start, "to", week_end)) safe_log(paste("Week range:", week_start, "to", week_end))
``` ```