fix: Fix report generation to respect data completeness check

- Modified generate_yearly_report(), generate_monthly_report(), and generate_period_report()
  to use force=False when downloading yearly data
- Removed hardcoded force=True that was bypassing the smart downloading logic
- Report generation now respects data completeness check and avoids unnecessary downloads
- Maintains backward compatibility and data integrity
- Reports are still generated with most current data when needed
This commit is contained in:
Kadu
2025-08-19 16:45:18 +02:00
parent 03ba5eb99e
commit ba6ca3c7a0

View File

@@ -110,11 +110,10 @@ def generate_yearly_report(year, currency_code, output_dir="data"):
print(f"Generuji report kurzů pro {currency_code} za rok {year}...") print(f"Generuji report kurzů pro {currency_code} za rok {year}...")
# Zkontrolujeme, zda databáze obsahuje data pro daný rok # Zkontrolujeme, zda databáze obsahuje data pro daný rok
# Pro generování reportu vždy stáhneme aktuální roční data, aby byl report kompletní # Stáhneme roční data pouze pokud nejsou kompletní
print(f"Stahuji roční data pro rok {year}...") print(f"Kontroluji dostupnost ročních dat pro rok {year}...")
# Stáhneme roční data s vynuceným stažením
os.makedirs("data", exist_ok=True) os.makedirs("data", exist_ok=True)
data_fetcher.download_yearly_data(year, output_dir="data", force=True) data_fetcher.download_yearly_data(year, output_dir="data", force=False)
# Vytvoříme seznam všech dní v roce # Vytvoříme seznam všech dní v roce
start_date = datetime(year, 1, 1) start_date = datetime(year, 1, 1)
@@ -195,11 +194,10 @@ def generate_monthly_report(year, month, currency_code, output_dir="data"):
print(f"Generuji report kurzů pro {currency_code} za {month}/{year}...") print(f"Generuji report kurzů pro {currency_code} za {month}/{year}...")
# Zkontrolujeme, zda databáze obsahuje data pro daný rok # Zkontrolujeme, zda databáze obsahuje data pro daný rok
# Pro generování reportu vždy stáhneme aktuální roční data, aby byl report kompletní # Stáhneme roční data pouze pokud nejsou kompletní
print(f"Stahuji roční data pro rok {year}...") print(f"Kontroluji dostupnost ročních dat pro rok {year}...")
# Stáhneme roční data s vynuceným stažením
os.makedirs("data", exist_ok=True) os.makedirs("data", exist_ok=True)
data_fetcher.download_yearly_data(year, output_dir="data", force=True) data_fetcher.download_yearly_data(year, output_dir="data", force=False)
# Vytvoříme seznam všech dní v měsíci # Vytvoříme seznam všech dní v měsíci
start_date = datetime(year, month, 1) start_date = datetime(year, month, 1)
@@ -301,15 +299,14 @@ def generate_period_report(start_date_str, end_date_str, currency_code, output_d
end_date = today end_date = today
# Zkontrolujeme, zda databáze obsahuje data pro roky v rozmezí # Zkontrolujeme, zda databáze obsahuje data pro roky v rozmezí
# Pro generování reportu vždy stáhneme aktuální roční data, aby byl report kompletní # Stáhneme roční data pouze pokud nejsou kompletní
start_year = start_date.year start_year = start_date.year
end_year = end_date.year end_year = end_date.year
for year in range(start_year, end_year + 1): for year in range(start_year, end_year + 1):
print(f"Stahuji roční data pro rok {year}...") print(f"Kontroluji dostupnost ročních dat pro rok {year}...")
# Stáhneme roční data s vynuceným stažením
os.makedirs("data", exist_ok=True) os.makedirs("data", exist_ok=True)
data_fetcher.download_yearly_data(year, output_dir="data", force=True) data_fetcher.download_yearly_data(year, output_dir="data", force=False)
# Otevřeme CSV soubor pro zápis # Otevřeme CSV soubor pro zápis
filename = f"report_{currency_code}_{start_date_str.replace('.', '_')}_to_{end_date_str.replace('.', '_')}.csv" filename = f"report_{currency_code}_{start_date_str.replace('.', '_')}_to_{end_date_str.replace('.', '_')}.csv"