Portal: - New business portal UI (portal/index.html, portal.css, portal.js) - Dashboard with real-time stats (orders today, revenue, pending, menu items) - Business info endpoint (api/businesses/get.cfm) - Portal stats endpoint (api/portal/stats.cfm) - Menu page links to existing full-featured menu editor Stripe Connect: - Onboarding endpoint (api/stripe/onboard.cfm) - Status check endpoint (api/stripe/status.cfm) - Payment intent creation (api/stripe/createPaymentIntent.cfm) - Webhook handler (api/stripe/webhook.cfm) Beacon APIs: - List all beacons (api/beacons/list_all.cfm) - Get business from beacon (api/beacons/getBusinessFromBeacon.cfm) Task System: - List pending tasks (api/tasks/listPending.cfm) - Accept task (api/tasks/accept.cfm) Other: - HUD interface for quick order status display - KDS debug/test pages - Updated Application.cfm with public endpoint allowlist - Order status check improvements 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
63 lines
2 KiB
Text
63 lines
2 KiB
Text
<cfsetting showdebugoutput="false">
|
|
<cfsetting enablecfoutputonly="true">
|
|
|
|
<cfparam name="url.orderid" default="0">
|
|
|
|
<cfset orderId = val(url.orderid)>
|
|
|
|
<cfif orderId LTE 0>
|
|
<cfcontent type="application/json; charset=utf-8">
|
|
<cfoutput>{"OK": false, "ERROR": "Please provide orderid in URL: ?orderid=300"}</cfoutput>
|
|
<cfabort>
|
|
</cfif>
|
|
|
|
<cftry>
|
|
<cfset qLineItems = queryExecute("
|
|
SELECT
|
|
oli.OrderLineItemID,
|
|
oli.OrderLineItemParentOrderLineItemID,
|
|
oli.OrderLineItemItemID,
|
|
oli.OrderLineItemPrice,
|
|
oli.OrderLineItemQuantity,
|
|
oli.OrderLineItemRemark,
|
|
oli.OrderLineItemIsDeleted,
|
|
i.ItemName,
|
|
i.ItemParentItemID
|
|
FROM OrderLineItems oli
|
|
INNER JOIN Items i ON i.ItemID = oli.OrderLineItemItemID
|
|
WHERE oli.OrderLineItemOrderID = ?
|
|
ORDER BY oli.OrderLineItemID
|
|
", [ { value = orderId, cfsqltype = "cf_sql_integer" } ], { datasource = "payfrit" })>
|
|
|
|
<cfset lineItems = []>
|
|
<cfloop query="qLineItems">
|
|
<cfset arrayAppend(lineItems, {
|
|
"OrderLineItemID": qLineItems.OrderLineItemID,
|
|
"OrderLineItemParentOrderLineItemID": qLineItems.OrderLineItemParentOrderLineItemID,
|
|
"OrderLineItemItemID": qLineItems.OrderLineItemItemID,
|
|
"OrderLineItemPrice": qLineItems.OrderLineItemPrice,
|
|
"OrderLineItemQuantity": qLineItems.OrderLineItemQuantity,
|
|
"OrderLineItemRemark": qLineItems.OrderLineItemRemark,
|
|
"OrderLineItemIsDeleted": qLineItems.OrderLineItemIsDeleted,
|
|
"ItemName": qLineItems.ItemName,
|
|
"ItemParentItemID": qLineItems.ItemParentItemID
|
|
})>
|
|
</cfloop>
|
|
|
|
<cfcontent type="application/json; charset=utf-8">
|
|
<cfoutput>#serializeJSON({
|
|
"OK": true,
|
|
"OrderID": orderId,
|
|
"TotalLineItems": arrayLen(lineItems),
|
|
"LineItems": lineItems
|
|
})#</cfoutput>
|
|
|
|
<cfcatch>
|
|
<cfcontent type="application/json; charset=utf-8">
|
|
<cfoutput>#serializeJSON({
|
|
"OK": false,
|
|
"ERROR": "db_error",
|
|
"MESSAGE": cfcatch.message
|
|
})#</cfoutput>
|
|
</cfcatch>
|
|
</cftry>
|