payfrit-works/api/tasks/setup.cfm
John Mizerek 1f4d06edba Add Payfrit Works (WDS) support and task completion flow
Task System:
- Tasks auto-created when KDS marks order Ready (status 3)
- Duplicate task prevention via TaskOrderID check
- Task completion now marks associated order as Completed (status 4)
- Fixed isNull() check for TaskCompletedOn (use len() instead)
- Added TaskOrderID to task queries for order linking

Worker APIs:
- api/workers/myBusinesses.cfm with GROUP BY to prevent duplicates
- api/tasks/listMine.cfm for worker's claimed tasks with filters
- api/tasks/complete.cfm updates both task and order status
- api/tasks/accept.cfm for claiming tasks

KDS/Portal:
- KDS only shows orders with status < 4
- Portal dashboard improvements

Admin/Debug:
- Debug endpoints for tasks and businesses
- Test data reset endpoint

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 14:52:04 -08:00

46 lines
1.8 KiB
Text

<cfsetting showdebugoutput="false">
<cfcontent type="application/json; charset=utf-8">
<cftry>
<cfset queryExecute("
CREATE TABLE IF NOT EXISTS TaskCategories (
TaskCategoryID INT AUTO_INCREMENT PRIMARY KEY,
TaskCategoryBusinessID INT NOT NULL,
TaskCategoryName VARCHAR(100) NOT NULL,
TaskCategoryColor VARCHAR(20) DEFAULT '#888888',
TaskCategoryIsActive BIT(1) DEFAULT b'1',
TaskCategoryAddedOn DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX idx_business (TaskCategoryBusinessID)
)
", [], { datasource = "payfrit" })>
<!--- Check if categories exist --->
<cfset qCheck = queryExecute("SELECT COUNT(*) AS cnt FROM TaskCategories WHERE TaskCategoryBusinessID = 17", [], { datasource = "payfrit" })>
<cfif qCheck.cnt EQ 0>
<cfset queryExecute("
INSERT INTO TaskCategories (TaskCategoryBusinessID, TaskCategoryName, TaskCategoryColor) VALUES
(17, 'Delivery', '##FF5722'),
(17, 'Pickup', '##4CAF50'),
(17, 'Kitchen', '##2196F3')
", [], { datasource = "payfrit" })>
</cfif>
<!--- Add test tasks if none exist --->
<cfset qTasks = queryExecute("SELECT COUNT(*) AS cnt FROM Tasks WHERE TaskBusinessID = 17 AND TaskStatusID = 0", [], { datasource = "payfrit" })>
<cfif qTasks.cnt EQ 0>
<cfset queryExecute("
INSERT INTO Tasks (TaskBusinessID, TaskCategoryID, TaskTitle, TaskDetails, TaskStatusID) VALUES
(17, 1, 'Deliver Order ##1042', 'Customer: John Smith, Address: 123 Main St', 0),
(17, 2, 'Pickup Ready - Table 5', 'Order ready for customer pickup', 0),
(17, 1, 'Deliver Order ##1043', 'Customer: Jane Doe, Address: 456 Oak Ave', 0)
", [], { datasource = "payfrit" })>
</cfif>
<cfoutput>{"OK": true, "MESSAGE": "Setup complete"}</cfoutput>
<cfcatch>
<cfoutput>{"OK": false, "ERROR": "#cfcatch.message#"}</cfoutput>
</cfcatch>
</cftry>