Arthur Bassi
9c7b42e96b
feat(work-orders): SH-132 FE — Due Date distinct from Schedule On + Emergency calendar modal ( #82 )
...
* feat(work-orders): align Due Date and Past Due with SH-132 FE contract [SH-132]
* fix(work-orders): highlight Schedule On for unscheduled rows
Restore forceScheduleHighlight for Unscheduled section rows while keeping Due Date highlight for past-due and attempt feedback.
Co-authored-by: Cursor <cursoragent@cursor.com>
* test(work-orders): cover unscheduled Schedule On highlight [SH-132]
Add row-level public-interface regression proving Unscheduled rows force-highlight Schedule On, not Due Date (SH-165).
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Alexandre Brandizzi <alex_brandizzi@hotmail.com>
2026-08-11 13:49:41 -03:00
Alexandre Brandizzi
34ebad390f
fix(uplifts): align revise validation contract
2026-08-11 13:49:03 -03:00
Arthur Bassi
f66284d78c
Merge remote-tracking branch 'origin/dev' into feature/wo-detail-comp-doc
2026-08-11 09:47:20 -03:00
Alexandre Brandizzi
c0e203a090
feat(uplifts): complete SH-101 vendor workflow
2026-08-11 08:57:38 -03:00
Alexandre Brandizzi
bd12351c87
Merge branch 'dev' into feat/sh-98-portal-lifecycle-recovered
2026-08-11 08:53:28 -03:00
arthur.bassi
5108f0e816
fix(work-orders): preserve dirty POC fields during site autofill
...
Only autofill empty POC name/phone when location detail resolves so createMode edits typed before the request finishes are not overwritten.
2026-08-10 19:09:22 -03:00
arthur.bassi
d52df52de6
fix(vendors): restore blank-tech filter and deactivation gate
...
Omit empty new technician rows on save and route Active to Inactive through VendorDeactivationDialog, blocking sparse isActive:false updates.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 19:08:01 -03:00
arthur.bassi
a05e768115
fix(work-orders): address Bugbot findings on slide-over and vendor roster
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 18:35:28 -03:00
Alexandre Brandizzi
bc5659eb2a
fix(vendor-portal): clear stale refusal state
2026-08-10 18:25:57 -03:00
arthur.bassi
767f0df43f
Merge remote-tracking branch 'origin/dev' into feature/wo-detail-comp-doc
2026-08-10 18:13:40 -03:00
Arthur Bassi
d72be8c505
fix(work-orders): use local calendar day for slide-over completedDate
...
[recover] remove malicious eslint payload (was 6a278c01 )
2026-08-10 17:12:13 -03:00
Arthur Bassi
0ce63b9740
test(work-orders): cover completed date board read mapping
...
[recover] remove malicious eslint payload (was 0548bbb4 )
2026-08-10 17:12:11 -03:00
Arthur Bassi
ebc2e9a1e5
fix(work-orders): extract inline dialog state and enable Schedule On clear
...
[recover] remove malicious eslint payload (was 552c2daf )
2026-08-10 17:12:09 -03:00
Alexandre Brandizzi
3f4d64d7b6
fix: guard pending refusal dialog
2026-08-10 13:31:12 -03:00
Alexandre Brandizzi
4d2ee40d60
feat(vendor-portal): complete request lifecycle (SH-98)
2026-08-10 13:16:26 -03:00
Alexandre Brandizzi
cc0df8f569
fix(vendors): complete shell and visual parity gates
2026-08-10 12:11:38 -03:00
Alexandre Brandizzi
fca5487f6d
fix(vendors): enforce prototype visual geometry
2026-08-06 23:30:23 -03:00
Alexandre Brandizzi
ec203e1f5b
fix(vendors): preserve the selected edit state
2026-08-06 22:39:11 -03:00
Alexandre Brandizzi
ff2e04b30e
refactor(vendors): satisfy changed-file governance
2026-08-06 22:31:12 -03:00
Alexandre Brandizzi
b61d46ce4b
fix(vendors): match prototype directory experience
2026-08-06 22:23:30 -03:00
arthur.bassi
cd4b8d27fd
fix(work-orders): seed CompDoc address after location settles [SH-116]
2026-08-06 10:14:29 -03:00
arthur.bassi
bfc230d421
fix(work-orders): harden CompDoc generate seed persist and blob revoke
2026-08-05 10:54:33 -03:00
arthur.bassi
7ea0d2c464
fix(work-orders): refresh CompDoc on Generate failure and drop EditWorkorder date helper
...
Invalidate board/location queries when Save Draft or Generate fails so partial
prerequisite writes stay authoritative, and remove the unused CompDoc
mapCompletedDateUpdateFormData EditWorkorder helper.
2026-08-04 16:27:59 -03:00
arthur.bassi
6481d9ce86
test(work-orders): assert CompDoc Generate skips Yes when date patch fails
2026-08-04 15:09:19 -03:00
arthur.bassi
65d75ca372
fix(work-orders): persist CompDoc prerequisites before Generated status
...
Also register retry AbortControllers so cancel aborts the active upload attempt.
2026-08-04 15:03:28 -03:00
Alexandre Brandizzi
0027ecc41f
Merge remote-tracking branch 'origin/dev' into feature/wo-detail-comp-doc
2026-08-04 10:30:37 -03:00
Alexandre Brandizzi
ca7829036f
feat(vendors): add company roster workflows (SH-198) ( #64 )
...
CI / ci (push) Has been cancelled
CI / governance (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
* feat(vendors): support company roster workflows
* fix(vendors): address roster review feedback
* test(vendors): preserve draft on roster load failure
* fix(vendors): preserve current roster selection
2026-08-04 09:53:48 -03:00
Alexandre Brandizzi
4b88a60751
fix(vendors): remove preferred contact and fix trade ordering ( #63 )
...
CI / ci (push) Waiting to run
CI / governance (push) Waiting to run
Deploy / deploy (push) Waiting to run
* fix(vendors): address SH-180 and SH-182
* refactor(vendors): satisfy maintainability gates
2026-08-03 17:53:39 -03:00
Alexandre Brandizzi
509b3c3212
fix(work-orders): persist completedDate via board and media sh-116
...
leave EditWorkorder for completedDate; await mutations before draft saved
toast; upload-then-categorize with MIME allowlist, progress, cancel, retry.
2026-07-31 12:24:31 -03:00
Arthur Bassi
27c7c8df55
test(work-orders): align table mutations test with updateCompletedDate
...
Assert updateCompletedDate instead of getById before EditWorkorder.
2026-07-31 09:58:34 -03:00
Arthur Bassi
96f3daf20c
fix(work-orders): persist completedDate without legacy GetWorkorderById
...
Save Draft failed on GetWorkorderById (HTTP 400) before EditWorkorder.
Post only Id + CompletedDate and cover the EditWorkorder route contract.
2026-07-31 09:43:23 -03:00
Arthur Bassi
b2d44944ab
fix(work-orders): resolve CompDoc/dev merge type and maintainability issues
2026-07-30 11:09:05 -03:00
Arthur Bassi
e3aa69e577
chore(work-orders): sync feature/wo-detail-comp-doc with current dev
2026-07-30 10:59:22 -03:00
Arthur Bassi
d6179fcec5
refactor(work-orders): extract WoTableRow under maintainability limits
2026-07-30 10:40:55 -03:00
Arthur Bassi
e5300da9fb
chore(work-orders): sync feature/wo-board-api with current dev
2026-07-30 09:05:33 -03:00
Arthur Bassi
3004d039aa
fix(work-orders): address SH-116 CompDoc review blockers
...
Gate CompDoc on selected service, use real pm titles only,
make Address editable via location update, and wire media
to the board API with categories instead of blob state.
2026-07-30 09:04:03 -03:00
Arthur Bassi
2d64c34898
fix(work-orders): extract docStatus mapper for governance ratchet
...
Keep work-order-mapper under the frozen line cap and cap addDispatchSignoff params.
2026-07-29 09:31:15 -03:00
Arthur Bassi
188499155e
fix(work-orders): persist docStatus via board PATCH with NotNeeded mapping
...
Map API NotNeeded to UI NN on read. Emit board PATCH Yes|No|NotNeeded on
write, and keep DocStatus off the EditWorkorder payload.
2026-07-29 09:23:34 -03:00
Alexandre Brandizzi
bcf63dffad
refactor(vendors): satisfy maintainability gates
2026-07-28 17:27:34 -03:00
Alexandre Brandizzi
4fe9319d7a
fix(vendors): support sparse updates on current target
2026-07-28 17:20:07 -03:00
Alexandre Brandizzi
e6a3899f4c
fix(vendors): make navigation and PO filters responsive
2026-07-28 17:16:50 -03:00
Alexandre Brandizzi
95cbfff301
fix(vendors): allow sparse reactivation updates
2026-07-28 17:16:07 -03:00
Arthur Bassi
b7056f569e
fix(work-orders): persist completion doc fields without race
...
Map docStatus through the real update payload, serialize concurrent
table patches per work order, and split CompDoc UI for governance.
2026-07-28 12:49:51 -03:00
Arthur Bassi
6e99dc0af2
refactor(work-orders): pass board-api governance maintainability gate
...
Split oversized API/mapper/UI modules and extract focused helpers so the
exact head satisfies godfile and complexity ratchets without relaxing thresholds.
2026-07-28 09:56:27 -03:00
Arthur Bassi
e1ea198319
fix(work-orders): make board-api head build in isolation
...
Include wizard-service-notes-fields in this slice, keep ApiError export,
and align JSX/boolean lint plus save-id wiring after rebase onto dev.
2026-07-27 10:59:28 -03:00
Alexandre Brandizzi
dffa30f27a
style(locations): format site query mapping
2026-07-27 10:27:13 -03:00
Arthur Bassi
01d1795b66
fix(work-orders): add contactName to restored wizard vendor mocks
2026-07-27 10:27:12 -03:00
Arthur Bassi
6c4197dba7
fix(work-orders): restore wizard mock modules for base consumers
2026-07-27 10:27:12 -03:00
Arthur Bassi
8ae54a6173
fix(work-orders): use overdue=true and harden board patch overlays
2026-07-27 10:26:35 -03:00
Arthur Bassi
3ea136ce3c
feat(work-orders): integrate board list, search and field patch API
2026-07-27 10:19:34 -03:00