toga-ai 1.0.129 → 1.0.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
| Doc | Framework | Summary | Files |
|
|
4
4
|
|-----|-----------|---------|-------|
|
|
5
|
-
| [Compass ASN → ItemFulfillment Auto-Creation](features/asn-to-item-fulfillment.md) | 2.0 | For Compass USA, posting an AdvanceShippingNotice (ASN) auto-creates the ItemFulfillment (IF) on the upstream SalesOrder. | _underscore/Model/Compass/AdvanceShippingNotice.php, _underscore/Model/Compass/PurchaseOrder.php, api2/Component/Api/Cxml/Cxml.php, dbchanges2/Client_Compass/2026-06-11 - AsnItemTrackingNumberAcl.sql, dbchanges2/Client_Compass/2026-06-15b - BackfillSA132781ItemFulfillmentTracking.sql, dbchanges2/Client_Compass/2026-06-16 - CleanupSA132763CrossLineTracking.sql, dbchanges2/Client_Compass/2026-06-16b - CleanupSA132743CrossLineTracking.sql, dbchanges2/Client_Compass/2026-06-16c - BackfillSA132763C40QYUCTracking.sql |
|
|
5
|
+
| [Compass ASN → ItemFulfillment Auto-Creation](features/asn-to-item-fulfillment.md) | 2.0 | For Compass USA, posting an AdvanceShippingNotice (ASN) auto-creates the ItemFulfillment (IF) on the upstream SalesOrder. | _underscore/Model/Compass/AdvanceShippingNotice.php, _underscore/Model/Compass/PurchaseOrder.php, api2/Component/Api/Cxml/Cxml.php, dbchanges2/Client_Compass/2026-06-11 - AsnItemTrackingNumberAcl.sql, dbchanges2/Client_Compass/2026-06-15b - BackfillSA132781ItemFulfillmentTracking.sql, dbchanges2/Client_Compass/2026-06-16 - CleanupSA132763CrossLineTracking.sql, dbchanges2/Client_Compass/2026-06-16b - CleanupSA132743CrossLineTracking.sql, dbchanges2/Client_Compass/2026-06-16c - BackfillSA132763C40QYUCTracking.sql, dbchanges2/Client_Compass/2026-06-18a - CleanupSA132898DuplicateTracking.sql |
|
|
6
6
|
| [Compass: Item-Fulfillment TableViews (for-sales-order-items & for-sales-orders, tracking via bridge)](features/item-fulfillment-tracking-tableview.md) | 2.0 | Two sibling Compass TableViews in `Client_Compass` display fulfilled items in toga2-supply, both driven by `TableViews` / `TableViewJoins` / `TableViewFields` c | dbchanges2/Client_Compass/2026-06-10 - ItemFulfillmentsForSalesOrderItemsTableView.sql, dbchanges2/Client_Compass/2026-06-11 - ItemFulfillmentsForSalesOrdersTableView.sql, dbchanges2/Client_Compass/2026-06-15a - FixItemFulfillmentTrackingNumberJoins.sql |
|
|
7
7
|
| [Compass MITS PO → SO Item Linking](features/mits-po-to-so-item-linking.md) | 2.0 | MITS sends Compass inbound Purchase Orders (`POST /v2/purchase-orders`) against a Sales Order (`mitsSalesOrder`). | _underscore/Model/Compass/PurchaseOrder.php, worker/crons/toga2/compass/workflow/3a_import_office_depot_purchase_orders.php |
|
|
8
8
|
| [Compass USA](profile.md) | 2.0 | Compass USA is a TOGA client running a multi-tier supply-chain commerce operation. | |
|
|
@@ -5,7 +5,7 @@ project: _Underscore
|
|
|
5
5
|
client: compass-usa
|
|
6
6
|
type: client-feature
|
|
7
7
|
status: active
|
|
8
|
-
updated: 2026-06-
|
|
8
|
+
updated: 2026-06-18
|
|
9
9
|
owners: [jcardinal]
|
|
10
10
|
files:
|
|
11
11
|
- _underscore/Model/Compass/AdvanceShippingNotice.php
|
|
@@ -16,6 +16,7 @@ files:
|
|
|
16
16
|
- dbchanges2/Client_Compass/2026-06-16 - CleanupSA132763CrossLineTracking.sql
|
|
17
17
|
- dbchanges2/Client_Compass/2026-06-16b - CleanupSA132743CrossLineTracking.sql
|
|
18
18
|
- dbchanges2/Client_Compass/2026-06-16c - BackfillSA132763C40QYUCTracking.sql
|
|
19
|
+
- dbchanges2/Client_Compass/2026-06-18a - CleanupSA132898DuplicateTracking.sql
|
|
19
20
|
related:
|
|
20
21
|
- ../../../2.0/apps/_underscore/features/recursive-item-fulfillments.md
|
|
21
22
|
---
|
|
@@ -54,6 +55,11 @@ the gotcha about already-fulfilled orders). Flow:
|
|
|
54
55
|
- **`remaining <= 0`** (reconcile path, new): the tracking targets are the **existing IFIs**
|
|
55
56
|
for that SOI (resolved via `ItemFulfillmentItems.salesOrderItemId` → their `itemFulfillmentId`),
|
|
56
57
|
**not** an SO-number lookup — NetSuite/toga2-supply IFs are `F`-numbered, not SO-numbered.
|
|
58
|
+
As of **2026-06-18** an existing IFI that **already carries item-level tracking is skipped**
|
|
59
|
+
here (`itemFulfillmentItemHasTracking()`): reconcile only attaches onto untracked
|
|
60
|
+
out-of-band IFIs. An already-tracked, fully-fulfilled line revisited by a later ASN is a
|
|
61
|
+
vendor re-transmission and must not gain a second tracking number (see the duplicate-tracking
|
|
62
|
+
gotcha).
|
|
57
63
|
4. Copy the ASN item's tracking (`AdvanceShippingNoticeItems_TrackingNumbers`) onto each target
|
|
58
64
|
IFI via `POST /item-fulfillment-item-tracking-numbers` → `ItemFulfillmentItems_TrackingNumbers`
|
|
59
65
|
— **idempotent** (skipped if the bridge row already exists; ASNs get re-POSTed).
|
|
@@ -176,8 +182,29 @@ Compass Canada (`Model/Compass/Canada/`) is a separate sub-client. The Compass c
|
|
|
176
182
|
`NOT EXISTS`. ~116 PO items across other Compass orders share the off-by-one fingerprint and
|
|
177
183
|
are not yet repaired — a broader reviewed backfill is still outstanding.
|
|
178
184
|
|
|
185
|
+
- **Duplicate tracking from vendor ASN re-transmission (root cause, fixed forward 2026-06-18)
|
|
186
|
+
— DISTINCT from the cross-line contamination above.** Compass vendors (Office Depot, Strategic
|
|
187
|
+
Systems) re-send the **same** shipment ASN file for several days; one PO can receive many ASNs
|
|
188
|
+
(e.g. SA132898 / PO `50305272-1` got 6). The first ASN takes the create path and attaches its
|
|
189
|
+
tracking; a later ASN re-listing the same, now fully-fulfilled line takes the **reconcile path**
|
|
190
|
+
and — pre-fix — attached its *different* tracking number onto the existing IFI. On a qty-1 line
|
|
191
|
+
this yields two item-level tracking rows (plus a propagated package row). Unlike the cross-line
|
|
192
|
+
bug, **both** tracking numbers here map cleanly to the correct line via their own valid ASN
|
|
193
|
+
items, so the `NOT EXISTS (ASN item with matching VendorItems.itemId)` cleanup guard does **not**
|
|
194
|
+
catch it — diagnose instead by an IFI carrying more item-level tracking numbers than its
|
|
195
|
+
fulfilled quantity. Fix: the reconcile path now skips any IFI that already has item-level
|
|
196
|
+
tracking (`itemFulfillmentItemHasTracking()`), so only untracked out-of-band IFIs receive ASN
|
|
197
|
+
tracking. The legitimate out-of-band case (IFI has no tracking, one ASN arrives) is preserved.
|
|
198
|
+
Forward-only; SA132898 repaired by `2026-06-18a` (delete the later tracking + orphaned package
|
|
199
|
+
row, keep the original; no backfill needed since the correct number is already present).
|
|
200
|
+
|
|
179
201
|
## Change history
|
|
180
202
|
Dated one-liners, newest first.
|
|
203
|
+
- 2026-06-18 — Reconcile path now skips IFIs that already carry item-level tracking
|
|
204
|
+
(`itemFulfillmentItemHasTracking()`), stopping duplicate/different tracking numbers from
|
|
205
|
+
vendor ASN re-transmissions piling onto fully-fulfilled lines (qty-1 SA132898 / USB31CC1 had
|
|
206
|
+
2). Distinct root cause from the 2026-06-16 cross-line contamination. SA132898 repaired by
|
|
207
|
+
`2026-06-18a` (cleanup-only; original tracking already correct). (jcardinal)
|
|
181
208
|
- 2026-06-16 — Identified cross-line tracking contamination root cause: bad
|
|
182
209
|
`SalesOrderItems_PurchaseOrderItems` rows (PO-local lineNumber collision in
|
|
183
210
|
`_Model_Compass_PurchaseOrder`, fixed forward 2026-06-11 `ec935478`; and the worker ODP-PO
|
package/package.json
CHANGED