Arthur Bassi
776d3ebd9c
Merge branch 'dev' into feat/sh-244-advanced-filter-fields
2026-08-20 22:07:10 -03:00
Arthur Bassi
1d9f3c3637
test(work-orders): drop Jira keys from advanced filter test names
...
Keep ticket identity on the branch and PR, not in Playwright or Vitest titles.
2026-08-20 22:02:59 -03:00
Codex Review Integration
f0f3485bee
fix(vendors): preserve status during roster edits
2026-08-20 20:59:27 -03:00
Codex Review Integration
146491fafb
fix(vendors): persist technician removal
2026-08-20 20:43:52 -03:00
Arthur Bassi
93ab14abf3
feat(work-orders): add SH-244 advanced filter fields and AAP indicator styles
2026-08-20 18:34:29 -03:00
Alexandre Brandizzi
35bfb9b7c8
fix(vendors): correct roster validation and editing
2026-08-20 18:25:34 -03:00
Arthur Bassi
8614f9415c
feat(work-orders): relocate dispatcher filter under the title (SH-242)
...
Place dispatcher scoping under the Work Orders heading as a plain
trigger so the week/day bar stays boxed, without changing board params.
2026-08-20 15:53:03 -03:00
Arthur Bassi
9a347a67fb
test(work-orders): pin vendor PATCH producer row onto closability
2026-08-20 15:39:39 -03:00
Arthur Bassi
d8da3a5048
test(work-orders): pin vendor PATCH response as live company assignment
...
Round-trip: board PATCH emits vendorId only; a Pending response keeps Completed
unblocked, while a leftover Refused response still raises Missing: Company.
2026-08-20 15:09:35 -03:00
Arthur Bassi
972e5913f3
fix(work-orders): treat vendor status overlay as local-only on board patch
...
Board PATCH persists vendorId only. primaryDispatchStatus is optimistic until
the producer returns a live dispatch after vendor save.
2026-08-20 14:47:04 -03:00
Arthur Bassi
493104c56d
fix(work-orders): narrow vendor patch type for inline drafts
...
Vendor assignment patch must not carry table-row status, which blocked tsc
because Canceled is not a draft status.
2026-08-20 14:29:57 -03:00
Arthur Bassi
4c9f8b7d81
fix(work-orders): treat vendor save as a live company assignment
...
Clear leftover primary dispatch status on vendor patch so Completed is not
blocked after a new company is chosen. Keep Jira keys out of source comments.
2026-08-20 14:17:20 -03:00
Arthur Bassi
72de2ea78d
Merge branch 'dev' into fix/sh-183-closability-company-not-tech
2026-08-20 13:40:53 -03:00
Alexandre Brandizzi
ef04008fa2
Merge branch 'dev' into feat/sh-249-fe-trades
2026-08-20 13:25:09 -03:00
Arthur Bassi
a156db70bc
Merge branch 'dev' into fix/sh-183-closability-company-not-tech
2026-08-20 13:24:51 -03:00
Arthur Bassi
f77428ab19
fix(work-orders): map only official primaryDispatchStatus (SH-183)
...
Drop undocumented board aliases so the Completed gate matches the backend DTO field.
2026-08-20 13:22:12 -03:00
Alexandre Brandizzi
4d8e86b264
Merge branch 'dev' into feat/sh-249-fe-trades
2026-08-20 11:48:07 -03:00
Arthur Bassi
75c82e90a5
Merge branch 'dev' into feat/sh-241-wo-day-pagination
2026-08-20 11:37:01 -03:00
Arthur Bassi
5195749623
Merge branch 'dev' into fix/sh-183-closability-company-not-tech
2026-08-20 11:32:09 -03:00
Arthur Bassi
e6567c2c0a
Merge branch 'dev' into feat/sh-241-wo-day-pagination
2026-08-20 11:26:47 -03:00
Alexandre Brandizzi
3141adba13
Merge branch 'dev' into feat/sh-254-fe-deactivate-confirm
2026-08-20 11:24:12 -03:00
Arthur Bassi
91f30304a2
Merge branch 'dev' into feat/sh-241-wo-day-pagination
2026-08-20 11:16:17 -03:00
Alexandre Brandizzi
326ac18eb0
Merge branch 'dev' into feat/sh-254-fe-deactivate-confirm
2026-08-20 11:15:10 -03:00
Codex Review Integration
aebb2c6b1a
Merge remote-tracking branch 'origin/dev' into feat/sh-253-vendor-detail-parity
...
# Conflicts:
# src/test/app/(protected)/vendors/vendor-detail-drawer.test.tsx
2026-08-20 11:14:51 -03:00
Arthur Bassi
23a80a7a14
Merge branch 'dev' into fix/sh-183-closability-company-not-tech
2026-08-20 11:08:36 -03:00
Alexandre Brandizzi
98daf9832d
Merge branch 'dev' into feat/sh-255-deactivate-toggle-gate
2026-08-20 11:06:54 -03:00
Arthur Bassi
ee5eae8927
fix(work-orders): page-aware flash and Unassigned search empty (SH-241)
...
Empty search waits until the Unassigned queue has settled.
Reschedule selects the destination day's page before flashing the row.
2026-08-20 11:00:25 -03:00
Alexandre Brandizzi
fc63948d4e
Merge branch 'dev' into feat/sh-254-fe-deactivate-confirm
2026-08-20 10:58:38 -03:00
Alexandre Brandizzi
4e36396868
Merge branch 'dev' into feat/sh-253-vendor-detail-parity
2026-08-20 10:58:34 -03:00
Alexandre Brandizzi
8684cb6c8b
Merge branch 'dev' into feat/sh-255-deactivate-toggle-gate
2026-08-20 10:58:31 -03:00
Alexandre Brandizzi
22bd392794
Merge branch 'dev' into feat/sh-249-fe-trades
2026-08-20 10:58:29 -03:00
Alexandre Brandizzi
8edcb6659d
Merge branch 'dev' into feat/sh-250-fe-additive-add
2026-08-20 10:58:26 -03:00
Arthur Bassi
e9b00bab57
fix(work-orders): ignore inactive primary dispatch on board closability (SH-183)
...
Board Completed must not treat Cancelled/Canceled/Refused leftover vendorId as a live company assignment.
2026-08-20 10:52:43 -03:00
Arthur Bassi
be975c792c
fix(work-orders): wait for Unassigned queue before empty search (SH-240)
...
Keep SH-165 loading and error visible instead of a premature empty-search shell.
2026-08-20 10:28:04 -03:00
Arthur Bassi
0c514c9bad
feat(work-orders): add per-day board pagination (SH-241)
...
Paginate the selected day's WOs client-side with AAP footer controls.
2026-08-20 10:08:34 -03:00
Arthur Bassi
1a54cbd2af
Merge branch 'dev' into feat/sh-240-week-day-nav
2026-08-20 09:44:33 -03:00
Arthur Bassi
959dda08fe
fix(work-orders): stack week selector with day tabs in the filter bar
...
Keep SH-240 nav grouped under the type row and coerce the Live badge for JSX &&.
2026-08-20 09:40:02 -03:00
Arthur Bassi
0c75bd42f4
fix(work-orders): keep search and reschedule on the selected day (SH-240)
...
Empty search and Schedule On must follow the day-tab board, not the whole week or Unscheduled.
2026-08-20 09:21:45 -03:00
Arthur Bassi
854267e213
test(work-orders): keep Verified and Completed as live company assignment (SH-183)
...
Cancelled/Canceled/Refused stay inactive; verified or completed dispatches still
gate Complete on the vendor that did the work.
2026-08-19 15:16:23 -03:00
Arthur Bassi
b3899d2a51
Merge branch 'dev' into fix/sh-183-closability-company-not-tech
2026-08-19 15:14:45 -03:00
Arthur Bassi
e3b8360a68
fix(work-orders): treat Canceled and Refused dispatches as inactive (SH-183)
...
Backend returns Cancelled, Canceled, and Refused; only Cancelled was skipped,
so Complete stayed enabled with no live vendor.
2026-08-19 15:04:50 -03:00
Arthur Bassi
8ab56d9782
refactor(work-orders): extract WoTable loading and empty shells
...
Keep the list table under the changed-file function length gate.
2026-08-19 14:48:04 -03:00
Arthur Bassi
2c14b08945
feat(work-orders): day-scoped week navigation (SH-240)
...
Let dispatchers pick one week and one weekday so the board
replaces rows instead of stacking the full week.
2026-08-19 14:45:59 -03:00
Codex Review Integration
22b03b8ac0
fix(vendors): deactivation dialog follows the approved design (SH-254)
...
The dialog's wording, its actions and its behaviour all diverged from the
design prototype. It refused deactivation outright when the vendor had
open work orders, which SH-44 and SH-82 left as an open question rather
than a decided requirement.
Deactivation with open work orders now proceeds on explicit confirmation:
the design's title and body copy, the affected work orders listed as
links, and "Deactivate anyway" in place of a disabled button. The API
call carries confirmOpenWorkOrders so the server-side guard is cleared
deliberately rather than removed.
2026-08-19 13:36:37 -03:00
Codex Review Integration
038ce263da
fix(vendors): vendor detail parity with the design prototype (SH-253)
...
Three divergences in the vendor detail drawer:
- The header rendered the company as a subtitle under a title that had
already fallen back to the company, printing the same name twice when
the row carried no technician. The subtitle is now dropped when it
would repeat the title.
- The Google Maps link appeared only when a URL was stored, unlabelled,
so an empty value left no trace of the field. It is now a labelled
field below Address that reads em-dash when unset, as every other
field in the panel does.
- The status sat immediately beside Total Jobs. It now sits opposite it
at the right edge, and reuses the vendors table's dot-plus-text badge
so the state never reads by colour alone.
2026-08-19 13:22:11 -03:00
Codex Review Integration
90a5256dee
fix(vendors): gate deactivation prompt on saved status (SH-255)
...
The drawer's Active toggle asked to deactivate whenever the switch moved
from on to off, reading the unsaved form value. An inactive vendor toggled
on and back off without saving therefore raised "Deactivate this vendor"
for a vendor that was already inactive.
Gate on the persisted technician status from the loaded roster instead,
falling back to the clicked row. Deactivation is a property of the saved
vendor, not of the toggle.
2026-08-19 13:18:17 -03:00
Adam Moussa
d5a04d318a
Merge branch 'dev' into feat/sh-245-login-parity
2026-08-19 11:03:37 -04:00
Arthur Bassi
a43de20ed4
fix(work-orders): ignore cancelled dispatches in detail closability (SH-183)
2026-08-19 12:02:17 -03:00
Arthur Bassi
1554cf30d0
fix(work-orders): require vendor company not technician to complete (SH-183)
2026-08-19 11:49:19 -03:00
Arthur Bassi
afdf667364
Merge branch 'dev' into feature/wo-multi-poc-contacts
2026-08-19 10:29:18 -03:00