Remove time-based filtering from customer menu API

Always return all active menus in the response so chip selector
always appears. Show all items from all menus by default instead
of filtering by current time, which caused empty results outside
menu hours.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
John Mizerek 2026-01-28 22:18:10 -08:00
parent 3b48c3331d
commit 6b31b1abcf

View file

@ -87,26 +87,19 @@
<cfif hasCategoriesData>
<!--- Use Categories table with ItemCategoryID --->
<!--- First, find which menus are currently active based on day/time --->
<!--- Get all active menus for this business (for chip selector) --->
<cfset activeMenuIds = "">
<cfset menuList = []>
<cftry>
<cfset qActiveMenus = queryExecute(
<cfset qAllMenus = queryExecute(
"
SELECT MenuID, MenuName FROM Menus
WHERE MenuBusinessID = :bizId
AND MenuIsActive = 1
AND (MenuDaysActive & :dayBit) > 0
AND (
(MenuStartTime IS NULL OR MenuEndTime IS NULL)
OR (TIME(:currentTime) >= MenuStartTime AND TIME(:currentTime) <= MenuEndTime)
)
ORDER BY MenuSortOrder, MenuName
",
{
bizId: { value = BusinessID, cfsqltype = "cf_sql_integer" },
dayBit: { value = 2 ^ (currentDayID - 1), cfsqltype = "cf_sql_integer" },
currentTime: { value = currentTime, cfsqltype = "cf_sql_varchar" }
bizId: { value = BusinessID, cfsqltype = "cf_sql_integer" }
},
{ datasource = "payfrit" }
)>
@ -114,13 +107,14 @@
<!--- User selected a specific menu --->
<cfset activeMenuIds = requestedMenuID>
<cfelse>
<cfset activeMenuIds = valueList(qActiveMenus.MenuID)>
<!--- No specific menu selected — show all items from all menus --->
<cfset activeMenuIds = valueList(qAllMenus.MenuID)>
</cfif>
<!--- Build menu list for the response --->
<cfloop query="qActiveMenus">
<!--- Build menu list for the response (all active menus, always) --->
<cfloop query="qAllMenus">
<cfset arrayAppend(menuList, {
"MenuID": qActiveMenus.MenuID,
"MenuName": qActiveMenus.MenuName
"MenuID": qAllMenus.MenuID,
"MenuName": qAllMenus.MenuName
})>
</cfloop>
<cfcatch>