Allow menu deletion when categories exist - unassign instead of block
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
3613776ff3
commit
41ef1631ef
1 changed files with 15 additions and 10 deletions
|
|
@ -190,27 +190,32 @@ try {
|
|||
apiAbort({ "OK": false, "ERROR": "missing_menu_id", "MESSAGE": "MenuID is required" });
|
||||
}
|
||||
|
||||
// Check if menu has categories
|
||||
// Check if menu has categories/items for warning
|
||||
qCatCheck = queryExecute("
|
||||
SELECT COUNT(*) as cnt FROM Categories
|
||||
WHERE CategoryMenuID = :menuID
|
||||
", { menuID: menuID }, { datasource: "payfrit" });
|
||||
WHERE CategoryMenuID = :menuID AND CategoryBusinessID = :businessID
|
||||
", { menuID: menuID, businessID: businessID }, { datasource: "payfrit" });
|
||||
|
||||
// Unassign categories from this menu
|
||||
if (qCatCheck.cnt > 0) {
|
||||
apiAbort({
|
||||
"OK": false,
|
||||
"ERROR": "menu_has_categories",
|
||||
"MESSAGE": "Cannot delete menu with categories. Move or delete categories first.",
|
||||
"CATEGORY_COUNT": qCatCheck.cnt
|
||||
});
|
||||
queryExecute("
|
||||
UPDATE Categories SET CategoryMenuID = 0
|
||||
WHERE CategoryMenuID = :menuID AND CategoryBusinessID = :businessID
|
||||
", { menuID: menuID, businessID: businessID }, { datasource: "payfrit" });
|
||||
}
|
||||
|
||||
// Soft-delete the menu
|
||||
queryExecute("
|
||||
UPDATE Menus SET MenuIsActive = 0
|
||||
WHERE MenuID = :menuID AND MenuBusinessID = :businessID
|
||||
", { menuID: menuID, businessID: businessID }, { datasource: "payfrit" });
|
||||
|
||||
response = { "OK": true, "MenuID": menuID, "ACTION": "deleted" };
|
||||
response = {
|
||||
"OK": true,
|
||||
"MenuID": menuID,
|
||||
"ACTION": "deleted",
|
||||
"CategoriesUnassigned": qCatCheck.cnt
|
||||
};
|
||||
break;
|
||||
|
||||
case "reorder":
|
||||
|
|
|
|||
Reference in a new issue