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:
parent
3b48c3331d
commit
6b31b1abcf
1 changed files with 9 additions and 15 deletions
|
|
@ -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>
|
||||
|
|
|
|||
Reference in a new issue