diff --git a/backend/app/api/reports.py b/backend/app/api/reports.py index b1abb9e..523a06b 100644 --- a/backend/app/api/reports.py +++ b/backend/app/api/reports.py @@ -119,17 +119,28 @@ def generate_report( with open(filepath, "wb") as f: f.write(xlsx_bytes) - # Save report metadata to DB - report = WeeklyReport( - jahr=jahr, - kw=kw, - report_date=date.today(), - report_data=report_data, - generated_by=user.id, + # Upsert report metadata (replace if same jahr/kw exists) + report = ( + db.query(WeeklyReport) + .filter(WeeklyReport.jahr == jahr, WeeklyReport.kw == kw) + .first() ) - report.report_file_path = filepath + if report: + report.report_date = date.today() + report.report_data = report_data + report.report_file_path = filepath + report.generated_by = user.id + else: + report = WeeklyReport( + jahr=jahr, + kw=kw, + report_date=date.today(), + report_data=report_data, + generated_by=user.id, + ) + report.report_file_path = filepath + db.add(report) - db.add(report) db.commit() db.refresh(report)