Commit graph

105 commits

Author SHA1 Message Date
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