Commit graph

13 commits

Author SHA1 Message Date
1c427a0902 feat: add reusable ErrorView and LoadingView components
Extract duplicated inline error/loading patterns from TaskListScreen,
MyTasksScreen, BusinessSelectionScreen, AccountScreen, and TaskDetailScreen
into shared components under Views/Components/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 22:15:03 +00:00
873cbba2aa fix: use backend-authoritative change amount for cash transactions
Instead of calculating change client-side (which doesn't account for
balance applied, fees, etc.), the app now uses the Change value returned
by the /tasks/complete.php endpoint after processing.

Changes:
- APIService.completeTask now returns CashCompletionResult with backend values
- Added CashCompletionResult struct (cashReceived, orderTotal, change, fees, routing)
- CashCollectionSheet shows confirmed backend change after completion
- Added ratingRequired error case to APIError enum
- Client-side estimate still shown as preview before confirmation
2026-03-24 00:41:10 +00:00
ece36cb484 feat: add customer rating dialog on task completion
When a worker completes a service point task and the API requires a
rating, a dialog now appears with 4 yes/no questions matching Android:
- Was the customer prepared?
- Was the scope clear?
- Was the customer respectful?
- Would you serve them again?

The rating is submitted with the task completion request via the
workerRating payload. Also handles rating_required during beacon
auto-complete by dismissing the countdown and showing the dialog.

Files changed:
- RatingDialog.swift (new) — rating dialog UI with toggle chips
- APIService.swift — added workerRating param + ratingRequired error
- TaskDetailScreen.swift — rating flow in completeTask + auto-complete
- project.pbxproj — added RatingDialog.swift to Xcode project
2026-03-22 12:30:18 +00:00
John Pinkyfloyd
8d9fa1caa6 Migrate API endpoints from CFML to PHP
- Replace all .cfm endpoints with .php (PHP backend migration)
- Update debug strings and test walkthrough documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-14 17:16:36 -07:00
John Pinkyfloyd
bbdc5a91c2 Add role-aware cash collection for staff vs admin
Parse RoleID from myBusinesses API. CashCollectionSheet now shows
role-appropriate messaging: staff keeps cash, admin deposits to business.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 20:01:24 -08:00
John Pinkyfloyd
445ec768b4 Fix order items and table members sections to expand full width 2026-02-17 11:32:44 -08:00
John Pinkyfloyd
25bfb9f4df Add chat icon button in customer section for chat tasks 2026-02-17 11:28:36 -08:00
John Pinkyfloyd
4712f40c8b Fix chat task accept - don't set taskAccepted flag to avoid unwanted navigation 2026-02-17 11:26:52 -08:00
John Pinkyfloyd
c020fca1d6 Fix orderTotal conversion - server returns dollars not cents 2026-02-17 09:39:49 -08:00
John Pinkyfloyd
40b1ee5d60 Add debug logging for orderTotal 2026-02-17 09:35:19 -08:00
John Pinkyfloyd
4a2f984c94 Add Cancel Order feature for cash tasks
- Add cancelOrder parameter to completeTask API method
- Add Cancel Order button below Collect Cash in task detail
- Show confirmation alert before canceling
- On confirm, call complete endpoint with CancelOrder: true

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-17 09:29:56 -08:00
John Pinkyfloyd
c71b9f7dea Add ios-marketing idiom for App Store icon display
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 19:37:59 -08:00
John Pinkyfloyd
3d057b481d Initial commit: Payfrit Works iOS native app 2026-02-01 23:38:34 -08:00