feat: enhance Letzshop jobs and order management

- Add job cancellation and retry functionality
- Improve jobs table with better status display
- Add background task improvements
- Update Letzshop order service
- Update documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-21 14:12:26 +01:00
parent 5c0c92e94b
commit a118edced5
7 changed files with 163 additions and 9 deletions

View File

@@ -619,6 +619,11 @@ class LetzshopOrderService:
"""
jobs = []
# Fetch vendor info once for all jobs
vendor = self.get_vendor(vendor_id)
vendor_name = vendor.name if vendor else None
vendor_code = vendor.vendor_code if vendor else None
# Historical order imports from letzshop_historical_import_jobs
if job_type in (None, "historical_import"):
hist_query = self.db.query(LetzshopHistoricalImportJob).filter(
@@ -646,6 +651,9 @@ class LetzshopOrderService:
"records_succeeded": (job.orders_imported or 0)
+ (job.orders_updated or 0),
"records_failed": job.orders_skipped or 0,
"vendor_id": vendor_id,
"vendor_name": vendor_name,
"vendor_code": vendor_code,
"current_phase": job.current_phase,
"error_message": job.error_message,
}
@@ -679,6 +687,9 @@ class LetzshopOrderService:
"records_succeeded": (job.imported_count or 0)
+ (job.updated_count or 0),
"records_failed": job.error_count or 0,
"vendor_id": vendor_id,
"vendor_name": vendor_name,
"vendor_code": vendor_code,
}
)
@@ -705,6 +716,9 @@ class LetzshopOrderService:
"records_processed": log.records_processed or 0,
"records_succeeded": log.records_succeeded or 0,
"records_failed": log.records_failed or 0,
"vendor_id": vendor_id,
"vendor_name": vendor_name,
"vendor_code": vendor_code,
"error_details": log.error_details,
}
)
@@ -734,6 +748,9 @@ class LetzshopOrderService:
"records_processed": log.records_processed or 0,
"records_succeeded": log.records_succeeded or 0,
"records_failed": log.records_failed or 0,
"vendor_id": vendor_id,
"vendor_name": vendor_name,
"vendor_code": vendor_code,
"error_details": log.error_details, # Include export file details
}
)