Skip to content

Email Integration -- Code Reconciliation Tasks

Tasks identified during documentation reconciliation that require code changes in the operations or common-module repositories.

File: src/main/kotlin/cards/arda/operations/reference/item/business/ItemSupply.kt

The OrderMethod enum is missing the OTHER value that is documented in the domain model. Add it as the last value.

enum class OrderMethod {
UNKNOWN,
PURCHASE_ORDER,
EMAIL,
PHONE,
IN_STORE,
ONLINE,
RFQ,
PRODUCTION,
TASK,
THIRD_PARTY,
OTHER // <-- add
}

Impact: Low. No existing code paths depend on exhaustive matching of OrderMethod values in a way that would break. Serialization handles unknown enum values gracefully.

Context: The documentation specifies totalAmount as a single Money value. The code computes totalAmount as List<Money.Value> (one per currency) to handle multi-currency orders.

Decision needed: The documentation adopts the single-value interpretation per reconciliation guidance. If multi-currency orders are a real requirement, the documentation should be updated instead. Verify whether any tenant data actually uses mixed currencies within a single order.

  • The OrderLineStatus enum in code (NEW, COMMITTED, RECEIVING, COMPLETED, CANCELLED) has been adopted as the documented state model, replacing the previous documentation which described a computed status based on item freshness (BLANK, CURRENT, STALE, INVALID).
  • The OrderStatus.ARCHIVED value present in code has been added to the documentation.
  • Fields added to documentation from code: expedite, accountingReference, shippingTerms, shipVia (order header); title, description, servicedCards (order line).