Email procedure (beta), WorkFlow update

This commit is contained in:
2026-09-02 11:44:54 -05:00
parent 826a70bdf6
commit edd5f2a886
12 changed files with 450 additions and 8 deletions
+30
View File
@@ -161,6 +161,8 @@ def save_orders(orders: List[NormalizedOrder]) -> SaveResult:
continue
jira_row.tracking_numbers = order.get("tracking_numbers", [])
if order.get("shipping_method"):
jira_row.shipping_method = order["shipping_method"]
enriched_count += 1
continue
@@ -185,6 +187,7 @@ def save_orders(orders: List[NormalizedOrder]) -> SaveResult:
line_items=order.get("line_items", []),
shipping_info=order.get("shipping_info", {}),
creator=order.get("creator"),
assignee=order.get("assignee"),
description=order.get("description"),
tracking_numbers=order.get("tracking_numbers", []),
summary=order["summary"],
@@ -225,6 +228,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.assignee = order.get("assignee")
existing.description = order.get("description")
existing.summary = order["summary"]
existing.status = new_status
@@ -330,6 +334,32 @@ def mark_shipstation_sent(ticket_number: str) -> None:
session.close()
def save_pack_data(ticket_number: str, serial_numbers: dict, packed: bool) -> None:
"""
Saves serial numbers and the packed/done flag from the Pack Ticket
dialog. Staff-entered data, not sourced from JIRA - this is the
beginning of the eventual end-of-day push back to JIRA (deferred for
now), so nothing here gets overwritten by a JIRA re-import.
"""
session = get_session()
try:
order = session.execute(
select(Order).where(Order.source == "jira", Order.ticket_number == ticket_number)
).scalar_one_or_none()
if order is None:
return
order.serial_numbers = serial_numbers
was_packed = order.packed
order.packed = packed
if packed and not was_packed:
order.packed_at = dt.datetime.now()
elif not packed:
order.packed_at = None
session.commit()
finally:
session.close()
def get_dashboard_stats() -> dict:
"""
Counts for the dashboard. "Active Orders" and the company breakdown