SJCoetz
d4b3f7c041
Add collection confirm rewrite implementation plan
2026-07-10 01:00:08 +02:00
SJCoetz
683b6c8d0a
Add collection confirm rewrite spec
2026-07-10 00:59:26 +02:00
SJCoetz
579acb300f
style(assign-driver): give the action button more breathing room from the modal edge
2026-07-10 00:53:55 +02:00
SJCoetz
961d09a798
fix(collection-map): use ISO 8601 UTC bounds for assigned_at day filter
2026-07-10 00:51:17 +02:00
SJCoetz
1846e86b9e
test(collection-map): cover assigned_at clear on unassign
2026-07-10 00:49:36 +02:00
SJCoetz
5ce3ef1000
fix(collection-map): clear assigned_at on unassign so item returns to pool
2026-07-10 00:48:23 +02:00
SJCoetz
728bab1671
Add collection map date filter and unassign spec
2026-07-10 00:47:42 +02:00
SJCoetz
f15fb5b49f
Add collection map date filter and unassign implementation plan
2026-07-10 00:47:11 +02:00
SJCoetz
72b2ec09e2
test(collection-pool): simplify operational sort test + correct spec reasoning
2026-07-10 00:38:31 +02:00
SJCoetz
363cdebe36
test(collection-pool): pin nearby-sort behaviour for missing coords
2026-07-10 00:36:28 +02:00
SJCoetz
7a7ad71ac0
Add collection pool nearby sort implementation plan
2026-07-10 00:34:50 +02:00
SJCoetz
8d742e5e87
Add collection pool nearby sort spec
2026-07-10 00:30:14 +02:00
SJCoetz
e5285e67df
chore(collection-pool): rename labels Ready/Pending instead of Ready/Awaiting
2026-07-10 00:24:43 +02:00
SJCoetz
32194e8bb3
feat(collection-pool): require note on Mark Ready
2026-07-10 00:15:24 +02:00
SJCoetz
1698e3d05b
test(collection-pool): cover MarkReadyDialog behaviour
2026-07-10 00:11:53 +02:00
SJCoetz
58d7c90e77
feat(collection-pool): add MarkReadyDialog component
2026-07-10 00:08:18 +02:00
SJCoetz
00fb9a38f0
test(collection-map): cover ready_notes required-on-ready
2026-07-10 00:05:54 +02:00
SJCoetz
13165bfb8c
feat(collection-map): require ready_notes when marking ready
2026-07-10 00:04:01 +02:00
SJCoetz
4e0d45198b
Add collection pool mark-ready notes implementation plan
2026-07-10 00:02:43 +02:00
SJCoetz
dbbb3e2b2c
Add collection pool mark-ready notes spec
2026-07-10 00:00:40 +02:00
SJCoetz
0eef0abd92
feat(orders): make Send PO modal wider and two-column, scrollable body
2026-07-09 23:48:26 +02:00
SJCoetz
f44f090351
test(po-attachments): use node env so the 25 MB cap assertion works
2026-07-09 23:39:12 +02:00
SJCoetz
0e59d83107
feat(mcp): add purchase_orders.add_attachment tool
2026-07-09 23:37:42 +02:00
SJCoetz
a6139b7c8a
chore(orders): drop unused attachmentsLoading state from Send PO panel
2026-07-09 23:34:51 +02:00
SJCoetz
14e1a12cfe
feat(orders): add additional attachments panel to Send PO modal
2026-07-09 23:33:56 +02:00
SJCoetz
2b3b50596c
feat(po): include additional_attachments in send-email webhook
2026-07-09 23:25:05 +02:00
SJCoetz
3c32c01bb9
feat(po-attachments): add migration for additional_attachments field
2026-07-09 23:22:23 +02:00
SJCoetz
9bc9d389ce
test(po-attachments): use NextRequest instead of any cast
2026-07-09 23:20:10 +02:00
SJCoetz
1477265db9
feat(po-attachments): add delete route for PO additional attachments
2026-07-09 23:18:51 +02:00
SJCoetz
fff095caae
test(po-attachments): cover delete route behaviour
2026-07-09 23:16:53 +02:00
SJCoetz
b362d92256
feat(po-attachments): add upload route for PO additional attachments
2026-07-09 23:15:08 +02:00
SJCoetz
a16b8fcdcb
test(po-attachments): cover upload route behaviour
2026-07-09 23:01:55 +02:00
SJCoetz
d204a4715b
feat(po): add additional_attachments to PurchaseOrder type
2026-07-09 23:01:07 +02:00
SJCoetz
3a1467fc91
Add PO additional attachments implementation plan
2026-07-09 23:00:18 +02:00
SJCoetz
e19bb7dbf7
Add PO additional attachments spec
2026-07-09 22:55:16 +02:00
SJCoetz
dfe52a62d9
fix(orders): seed Send PO body with this PO's line count, not the order's
2026-07-09 22:43:52 +02:00
SJCoetz
44db71e6d7
feat(orders): add n8n shortcut icon to Supplier POs card
2026-07-09 22:34:04 +02:00
SJCoetz
5d222ff281
feat(po-pdf): add token backfill migration script
2026-07-09 22:28:50 +02:00
SJCoetz
f146e42ed0
test(po-pdf): cover token capture + proxy routing
2026-07-09 22:23:49 +02:00
SJCoetz
6a7dcc0af2
fix(po-pdf): capture PB token on upload and route GET through proxy
2026-07-09 22:18:53 +02:00
SJCoetz
1e99d23e8b
feat(po-pdf): add token field to PurchaseOrderDocumentEntry
2026-07-09 22:17:21 +02:00
SJCoetz
169c1d82c5
Add PO PDF token-vs-filename implementation plan
2026-07-09 22:15:22 +02:00
SJCoetz
538986d7db
Add PO PDF token-vs-filename spec
2026-07-09 22:13:53 +02:00
SJCoetz
2bee7aa4be
feat(quotes/process): load customers with company expanded for picker
2026-07-09 21:45:00 +02:00
SJCoetz
87a59fc579
Add customer-search disambiguation implementation plan
2026-07-09 21:33:07 +02:00
SJCoetz
1a3ce560c6
Add customer search company-disambiguation spec
2026-07-09 21:31:45 +02:00
SJCoetz
1992b0f4af
Add new quote form redesign spec
2026-07-09 17:53:44 +02:00
SJCoetz
18334721cb
feat(invoicing): add QuickBooks invoicing flow and print functionality
...
Add complete end-to-end QuickBooks invoicing workflow for the invoicing page:
- Add `jspdf` dependency for client-side PDF generation
- Implement updated item status handling with fallback for new invoice statuses
- Add server-side proxy API for secure QuickBooks customer lookup
- Build utilities to combine QuickBooks invoices and picking slips into a single PDF
- Add invoicing view models for row grouping, payload construction, and status checks
- Add full test coverage for all new components, APIs, and utilities
- Include feature design documentation and sample n8n workflow config
2026-07-09 09:44:55 +02:00
SJCoetz
9378685164
feat(collection-confirm): add full collection confirm workflow
...
Implement the complete collection confirm feature set:
- Add new `/collection-confirm` operational page for reviewing and confirming collected order items
- Add sidebar navigation entries for Collection Confirm and Invoicing
- Add `order_items` to the file proxy API whitelist for attachment access
- Install required testing dependencies and configure Vitest test setup
- Add full design documentation, test suite, and page overview screenshot
- Update package.json and build configuration files
2026-07-08 01:35:00 +02:00
SJCoetz
5f1838051f
feat(collection-pool): add nearby supplier cluster sort mode
...
Add optional nearby-supplier cluster sort mode to the collection pool table, keeping operational sort as the default. Also includes:
- Update UserSearch component to support fallback selected label for pre-selected values
- Refactor AssignDriverDialog into a separate inner component with intent and pre-filled driver label support
- Add assignment badge helper types and functions
- Add full test coverage for new sort logic and component behaviors
- Update implementation plans and documentation files
- Fix minor code consistency and lint issues across touched files
2026-07-07 21:56:29 +02:00