release: v2.8.10 persist economic draft order number
This commit is contained in:
parent
b3059dced1
commit
2a71e9285a
11
MDfile/RELEASE_NOTES_v2.8.10.md
Normal file
11
MDfile/RELEASE_NOTES_v2.8.10.md
Normal 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.
|
||||||
@ -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")
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user