WFDASH-WEBAPP/src/app/api
Dave af4cdc66da feat(collection-confirm): spot a photo on the wrong PO and move it
Drivers photograph invoices per item and can't see which order a photo
lands on. B&R invoice 00282979 (stock order PO26100702STK) ended up on
the thinners line of PO202610017BLY; the AI read "PO26100702STK" off it
but the card only said "not found".

- The card list now carries each read's po_refs and source file, and sets
  ai_doc.other_po when the document names a PO that exists and isn't the
  row's PO (none named, or this card's PO among them: no hint).
- PO card: "Photo may be for <PO>" in the header; when open, "Invoice <no>
  is for <PO>, not this PO" with a Move photo button. Nothing moves on its
  own.
- POST /api/v1/collection-confirm/move-photo (browser session) →
  movePhotoToPo: copies the photo to the target (a collected line of a
  customer PO, or the stock purchase's single photo slot — refused when
  taken), removes it from the source, deletes the AI's read of it and the
  checks built on it so it is re-read where it now belongs.
- normalizePoReference moves to the client-safe src/lib/po-reference.ts
  (re-exported from the matching service).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:08:47 +02:00
..
counter feat(counter): add standalone counter order PWA 2026-08-13 09:27:20 +02:00
dashboard feat(tv): add TV dashboard + refine workflows 2026-08-13 20:55:22 +02:00
invoicing feat(invoicing): cancel a dead order off the To Invoice list, with a reason 2026-10-08 00:58:16 +02:00
mcp docs(mcp): collection_confirm.ai_check may set a discounted cost 2026-10-19 13:40:22 +02:00
tv feat(tv): add TV dashboard + refine workflows 2026-08-13 20:55:22 +02:00
v1 feat(collection-confirm): spot a photo on the wrong PO and move it 2026-10-19 14:08:47 +02:00
route-export-contract.test.ts chore: update route.ts 2026-10-15 16:28:37 +02:00