EMailed label return generation (alpha)

This commit is contained in:
2026-09-02 09:30:19 -05:00
parent 6655b02f4a
commit 826a70bdf6
13 changed files with 603 additions and 5 deletions
+29
View File
@@ -61,6 +61,33 @@ class SendToShipStationWorker(QThread):
self.finished_ok.emit(result)
class CreateReturnLabelWorker(QThread):
"""Runs return-label creation off the GUI thread."""
finished_ok = pyqtSignal(dict) # the created label's JSON
failed = pyqtSignal(str)
def __init__(self, order, packages: list[dict], charge_event: str, parent=None):
super().__init__(parent)
self.order = order
self.packages = packages
self.charge_event = charge_event
def run(self) -> None:
from app.services.shipstation_send import create_return_label, ShipStationSendError
try:
result = create_return_label(self.order, self.packages, self.charge_event)
except ShipStationSendError as exc:
self.failed.emit(str(exc))
return
except Exception as exc: # noqa: BLE001
self.failed.emit(f"Unexpected error creating return label: {exc}")
return
self.finished_ok.emit(result)
class FetchOrdersWorker(QThread):
"""Fetches orders from a given service and saves/merges the results."""
@@ -158,6 +185,7 @@ def save_orders(orders: List[NormalizedOrder]) -> SaveResult:
line_items=order.get("line_items", []),
shipping_info=order.get("shipping_info", {}),
creator=order.get("creator"),
description=order.get("description"),
tracking_numbers=order.get("tracking_numbers", []),
summary=order["summary"],
status=new_status,
@@ -197,6 +225,7 @@ def save_orders(orders: List[NormalizedOrder]) -> SaveResult:
existing.line_items = order.get("line_items", [])
existing.shipping_info = order.get("shipping_info", {})
existing.creator = order.get("creator")
existing.description = order.get("description")
existing.summary = order["summary"]
existing.status = new_status
existing.source_created_at = order["source_created_at"]