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> <cfif hasCategoriesData>
<!--- Use Categories table with ItemCategoryID ---> <!--- 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 activeMenuIds = "">
<cfset menuList = []> <cfset menuList = []>
<cftry> <cftry>
<cfset qActiveMenus = queryExecute( <cfset qAllMenus = queryExecute(
" "
SELECT MenuID, MenuName FROM Menus SELECT MenuID, MenuName FROM Menus
WHERE MenuBusinessID = :bizId WHERE MenuBusinessID = :bizId
AND MenuIsActive = 1 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 ORDER BY MenuSortOrder, MenuName
", ",
{ {
bizId: { value = BusinessID, cfsqltype = "cf_sql_integer" }, bizId: { value = BusinessID, cfsqltype = "cf_sql_integer" }
dayBit: { value = 2 ^ (currentDayID - 1), cfsqltype = "cf_sql_integer" },
currentTime: { value = currentTime, cfsqltype = "cf_sql_varchar" }
}, },
{ datasource = "payfrit" } { datasource = "payfrit" }
)> )>
@ -114,13 +107,14 @@
<!--- User selected a specific menu ---> <!--- User selected a specific menu --->
<cfset activeMenuIds = requestedMenuID> <cfset activeMenuIds = requestedMenuID>
<cfelse> <cfelse>
<cfset activeMenuIds = valueList(qActiveMenus.MenuID)> <!--- No specific menu selected — show all items from all menus --->
<cfset activeMenuIds = valueList(qAllMenus.MenuID)>
</cfif> </cfif>
<!--- Build menu list for the response ---> <!--- Build menu list for the response (all active menus, always) --->
<cfloop query="qActiveMenus"> <cfloop query="qAllMenus">
<cfset arrayAppend(menuList, { <cfset arrayAppend(menuList, {
"MenuID": qActiveMenus.MenuID, "MenuID": qAllMenus.MenuID,
"MenuName": qActiveMenus.MenuName "MenuName": qAllMenus.MenuName
})> })>
</cfloop> </cfloop>
<cfcatch> <cfcatch>