EMailed label return generation (alpha)
This commit is contained in:
@@ -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"]
|
||||
|
||||
Reference in New Issue
Block a user