Codex Review Integration
3b1da21abb
fix(workorders): preserve partial POC edits
2026-09-18 15:00:01 -03:00
Codex Review Integration
5b0c758a9f
fix(workorders): persist manual POC edits via dedicated POC endpoint (SH-379)
...
The UI dropped manual POC edits before they reached the API: the patch
mapper listed pocName/pocPhone/pocNotes as local-only keys and the
slide-over draft excluded them from Save, so the optimistic edit vanished
on refetch and the completion freeze captured the Site contact instead.
- Emit one composite POC op from table patches and route it through a new
workOrdersApi.updatePoc (PATCH workorders/{id}/poc), reusing the board
patch row/error contract (409 conflict with currentState, 422 validation).
- Include POC scalars in slide-over edit keys so dirty state and Save carry
them; site dialog and slide-over now both persist POC edits.
2026-09-18 14:44:06 -03:00
Alexandre Brandizzi
09c2447094
Merge branch 'dev' into fix/ab/sh-339-wizard-complete-image
2026-09-17 14:26:43 -03:00
Codex Review Integration
a9d8416f0f
fix(work-orders): prefer stored media over a zero detail media count
...
The detail endpoint's info inherits MediaCount from the board row DTO but
the service never sets it, so it serializes as 0. The previous guard trusted
any numeric value and returned that 0, leaving the slide-over completion gate
reporting "At least 1 photo" even after an upload. Take the larger of the
reported count and the stored (non-legacy) attachments so a positive API
count still wins while a spurious or omitted 0 no longer masks present media.
Dropping the unused mapped-row argument also removes a flat-payload path that
would have counted legacy items.
2026-09-16 18:05:50 -03:00
Codex Review Integration
62825d2c70
chore(workorders): remove ticket keys from column comments
2026-09-16 15:05:25 -03:00
Codex Review Integration
4649fd00da
fix(work-orders): place Completed Date before Comp Doc on the board
2026-09-16 13:21:48 -03:00
Codex Review Integration
e7f8772802
fix(work-orders): count detail media for slide-over completion gate
...
Detail info omits MediaCount, so the slide-over closability gate always
reported a missing photo on Reactive/Emergency work orders. Refs SH-339.
2026-09-16 10:56:17 -03:00
Arthur Bassi
15ea87df4f
test(work-orders): expect frozen POC contact notes in mapper
2026-09-14 10:19:12 -03:00
Arthur Bassi
116f65ca48
feat(work-orders): consume completion freeze snapshot on the board
...
Prefer FrozenSite, FrozenCompany, and FrozenPoc on Completed rows.
2026-09-10 15:41:01 -03:00
Arthur Bassi
15de3fca0a
Merge remote-tracking branch 'origin/dev' into feat/SH-186-schedule-clear
2026-09-09 17:47:37 -03:00
Arthur Bassi
c71d9482ec
feat(work-orders): align Schedule On clear with shared demotion path
...
Board Clear uses empty-week patch; slide-over Save derives Pending via mergeAutoSchedulePatch.
2026-09-09 15:44:49 -03:00
Arthur Bassi
74e5c58e5d
fix(work-orders): restore completion media uploads over HTTP/1.1
...
Use XHR for media progress so Ky does not stream the body on HTTP/1.1
(Vite proxy), and keep completion vs extra tiles from mixing after upload.
2026-09-07 15:19:39 -03:00
Arthur Bassi
418eb3749d
fix(work-orders): restore Range tab on Schedule On for inline and slide-over
...
Share Week/Date/Range on inline, board, and slide-over DateCell.
A selected range lands on the start day, matching the wizard.
2026-09-04 15:59:53 -03:00
Arthur Bassi
08e00c213d
Merge branch 'dev' into feat/sh-167-wo-board-carry-over
2026-09-02 09:32:58 -03:00
Arthur Bassi
426889427c
feat(work-orders): show carry-over pill and map day-tab for prior-week WOs
...
Keep source week visible and map weekday tabs without rewriting schedule.
2026-09-01 14:16:52 -03:00
Arthur Bassi
85ea33b0ad
Merge branch 'dev' into fix/sh-296-vendor-invalid-dispatch
2026-08-31 16:36:50 -03:00
Arthur Bassi
72417bbb77
fix(work-orders): omit non-positive primaryDispatchId on board patches
...
A GET echo of 0 on primaryDispatchId made vendor PATCH fail InvalidDispatch.
2026-08-31 15:48:31 -03:00
Arthur Bassi
07c03e99b9
test(work-orders): assert empty apptTime board PATCH and refetch
...
EOF
2026-08-31 10:54:28 -03:00
Arthur Bassi
8bb126b1a3
feat(work-orders): make appointment time optional in create flows
...
Allow empty Appt Time in wizard, table, and slide-over without blocking
create or complete. Omit appointment fields without vendorId so create
does not hit DispatchRequired.
2026-08-28 11:05:43 -03:00
Arthur Bassi
50764b707d
fix(work-orders): restore blank alphanumeric WO number on create
...
Allow blank SH-provisional WO numbers and refresh the wizard visual baseline.
2026-08-26 08:20:18 -03:00
Arthur Bassi
3a85c8c9e3
fix(work-orders): require type and 11-digit WO number on create
...
Wizard step 1 cannot continue without type and a numeric WO number.
Remove the Mark as Add-On checkbox from the create wizard.
2026-08-25 22:51:29 -03:00
Arthur Bassi
61fbad7e1b
fix(work-orders): stop sending customer on create
...
AccountId is resolved from Location on the server.
Create UI matches AAP: required Site, optional Service, no Account picker.
2026-08-25 22:26:01 -03:00
Arthur Bassi
b240cc8c79
fix(work-orders): gate account picker to org-wide scope
...
Hide GetAccountList and skip client customer on create unless
org_scope is all, so scoped users cannot read another tenant name.
2026-08-25 21:10:12 -03:00
Arthur Bassi
800671030f
fix(work-orders): address review and CI for account on create
...
Search accounts on the server and show the missing-account wizard hint.
Split site-dialog state so the maintainability line cap passes.
2026-08-25 18:46:10 -03:00
Arthur Bassi
1714da6e37
fix: send customer on board work-order create
...
Org-wide Admin create needs exact Accounts.Name so SH-221 can stamp AccountId.
2026-08-25 18:19:06 -03:00
Arthur Bassi
0a2544fae4
fix(work-orders): persist Extra Docs Aveta category round-trip
...
Keep Extra uploads uncategorized until the dispatcher picks Aveta.
Drive the shield from hasAvetaDocument after reopen.
2026-08-25 15:11:25 -03:00
Arthur Bassi
7a30335ab8
feat(work-orders): add per-WO Aveta indicators and advanced filter
...
Dispatchers can flag Aveta on Service and Notes and filter those rows
without a site-level attribute.
2026-08-24 15:16:51 -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
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
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
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
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
afdf667364
Merge branch 'dev' into feature/wo-multi-poc-contacts
2026-08-19 10:29:18 -03:00
Arthur Bassi
a75b094564
Merge branch 'dev' into feature/wo-multi-poc-contacts
2026-08-19 09:32:29 -03:00
arthur.bassi
1485903898
merge(dev): resolve SH-114 closability conflicts with uplifts overlays
2026-08-19 09:28:05 -03:00
arthur.bassi
081d9b67c6
Merge remote-tracking branch 'origin/dev' into feature/wo-multi-poc-contacts
...
# Conflicts:
# src/test/domain/work-orders/mappers/work-order-mapper.test.ts
2026-08-18 21:52:04 -03:00
arthur.bassi
fe86d46bec
Merge remote-tracking branch 'origin/dev' into feature/wo-uplifts-column-and-tab
...
# Conflicts:
# src/domain/work-orders/mappers/work-order-table-row-mapper.ts
# src/domain/work-orders/types/work-order-table-row.ts
2026-08-18 21:42:53 -03:00
arthur.bassi
ce6e19ebaa
Merge remote-tracking branch 'origin/dev' into feature/sh-114-wo-closability-gate
...
# Conflicts:
# src/app/(protected)/workorders/_components/list/table/cells/status-cell.tsx
# src/domain/work-orders/utils/wo-closability.ts
# src/test/domain/work-orders/utils/wo-closability.test.ts
2026-08-18 21:18:49 -03:00
Alexandre Brandizzi
5ad13d38ca
Merge branch 'dev' into feature/sh-114-wo-closability-gate
2026-08-18 17:46:59 -03:00
arthur.bassi
a109a68f40
fix(work-orders): keep SH-188 tooltip when mixed with other gaps
...
Stop copying WO lifecycle status into uplift primaryStatus on flat board rows.
2026-08-18 17:28:14 -03:00
arthur.bassi
090130a2c0
chore(work-orders): merge origin/dev into uplifts PR
...
Keep upliftSummary fixtures and add isAddOn after the Add-On indicator landed on dev.
2026-08-18 13:24:21 -03:00
arthur.bassi
0c2ef6ac5e
merge origin/dev into feature/wo-multi-poc-contacts
...
Use the extracted inline Schedule On cell from dev and keep additional-contacts fixtures complete.
2026-08-18 13:19:45 -03:00
arthur.bassi
bf1def809b
chore(work-orders): merge origin/dev into SH-188 closability gate
...
Keep PastDueStatusCell extraction and SH-185 Schedule On copy from merged #102 .
2026-08-18 12:01:23 -03:00
arthur.bassi
d93ae683c7
fix(work-orders): restore additionalContacts contract and name+phone extras (SH-218)
...
Document the backend #66 producer, drop incomplete extras from persist, and show the same required-field errors on POC 2+.
2026-08-18 10:03:14 -03:00
arthur.bassi
0d609124d1
fix(work-orders): omit extraServices on create and persist slide-over POCs (SH-218)
2026-08-17 14:12:25 -03:00
arthur.bassi
1e88c3d039
chore(work-orders): merge origin/dev and keep SH-218 additional POCs
2026-08-17 14:05:49 -03:00
arthur.bassi
aaba7ca2ea
Merge remote-tracking branch 'origin/dev' into feature/wo-uplift-pending-close-gate
2026-08-17 13:50:22 -03:00
arthur.bassi
0941a1aa3f
chore(work-orders): merge origin/dev and keep SH-196 uplift column
2026-08-17 13:28:52 -03:00
Arthur Bassi
4a95da32d2
chore(work-orders): merge origin/dev and keep SH-184 Add-On with severity gates
2026-08-17 09:36:07 -03:00
arthur.bassi
bc97f517f9
chore(work-orders): merge origin/dev and keep SH-114 closability gate
2026-08-17 09:09:43 -03:00