release: v2.8.10 persist economic draft order number

This commit is contained in:
Christian 2026-09-13 11:24:18 +02:00
parent b3059dced1
commit 2a71e9285a
4 changed files with 30 additions and 6 deletions

View File

@ -0,0 +1,11 @@
# BMC Hub v2.8.10
## Gem e-conomic-ordrenummer
- Gemmer `economic_draft_id` fra det eksisterende eksportflow som kladdens e-conomic-ordrenummer.
- Audit-eventet `export_success` indeholder dermed det faktiske nummer i stedet for `null`.
- Bevarer understøttelse af de øvrige eksisterende feltnavne i eksportsvaret.
## Verifikation
- Regressionstest dækker mapping fra `economic_draft_id` til e-conomic-ordrenummer.

View File

@ -1 +1 @@
2.8.9 2.8.10

View File

@ -15,6 +15,17 @@ router = APIRouter()
ALLOWED_SYNC_STATUSES = {"pending", "exported", "failed", "posted", "paid"} ALLOWED_SYNC_STATUSES = {"pending", "exported", "failed", "posted", "paid"}
def _economic_order_number(export_result: Dict[str, Any]) -> Any:
"""Normalize legacy and catalog-aware e-conomic export response fields."""
return (
export_result.get("economic_order_number")
or export_result.get("economic_draft_id")
or export_result.get("draftOrderNumber")
or export_result.get("order_number")
or export_result.get("orderNumber")
)
def _snapshot_lines(lines): def _snapshot_lines(lines):
from app.products.backend.economic_documents import active_connection, snapshot_draft_lines from app.products.backend.economic_documents import active_connection, snapshot_draft_lines
return snapshot_draft_lines(lines) if active_connection() else lines return snapshot_draft_lines(lines) if active_connection() else lines
@ -236,11 +247,7 @@ async def export_ordre(request: OrdreExportRequest, http_request: Request):
"timestamp": datetime.utcnow().isoformat(), "timestamp": datetime.utcnow().isoformat(),
} }
economic_order_number = ( economic_order_number = _economic_order_number(export_result)
export_result.get("economic_order_number")
or export_result.get("order_number")
or export_result.get("orderNumber")
)
economic_invoice_number = ( economic_invoice_number = (
export_result.get("economic_invoice_number") export_result.get("economic_invoice_number")
or export_result.get("invoice_number") or export_result.get("invoice_number")

View File

@ -88,3 +88,9 @@ def test_product_creation_preview_values_become_economic_payload():
"barred": False, "barred": False,
"productGroup": {"productGroupNumber": 2}, "productGroup": {"productGroupNumber": 2},
} }
def test_legacy_draft_id_is_saved_as_order_number():
from app.modules.orders.backend.router import _economic_order_number
assert _economic_order_number({"economic_draft_id": 4711}) == 4711