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" });
|
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("
|
qCatCheck = queryExecute("
|
||||||
SELECT COUNT(*) as cnt FROM Categories
|
SELECT COUNT(*) as cnt FROM Categories
|
||||||
WHERE CategoryMenuID = :menuID
|
WHERE CategoryMenuID = :menuID AND CategoryBusinessID = :businessID
|
||||||
", { menuID: menuID }, { datasource: "payfrit" });
|
", { menuID: menuID, businessID: businessID }, { datasource: "payfrit" });
|
||||||
|
|
||||||
|
// Unassign categories from this menu
|
||||||
if (qCatCheck.cnt > 0) {
|
if (qCatCheck.cnt > 0) {
|
||||||
apiAbort({
|
queryExecute("
|
||||||
"OK": false,
|
UPDATE Categories SET CategoryMenuID = 0
|
||||||
"ERROR": "menu_has_categories",
|
WHERE CategoryMenuID = :menuID AND CategoryBusinessID = :businessID
|
||||||
"MESSAGE": "Cannot delete menu with categories. Move or delete categories first.",
|
", { menuID: menuID, businessID: businessID }, { datasource: "payfrit" });
|
||||||
"CATEGORY_COUNT": qCatCheck.cnt
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Soft-delete the menu
|
||||||
queryExecute("
|
queryExecute("
|
||||||
UPDATE Menus SET MenuIsActive = 0
|
UPDATE Menus SET MenuIsActive = 0
|
||||||
WHERE MenuID = :menuID AND MenuBusinessID = :businessID
|
WHERE MenuID = :menuID AND MenuBusinessID = :businessID
|
||||||
", { menuID: menuID, businessID: businessID }, { datasource: "payfrit" });
|
", { menuID: menuID, businessID: businessID }, { datasource: "payfrit" });
|
||||||
|
|
||||||
response = { "OK": true, "MenuID": menuID, "ACTION": "deleted" };
|
response = {
|
||||||
|
"OK": true,
|
||||||
|
"MenuID": menuID,
|
||||||
|
"ACTION": "deleted",
|
||||||
|
"CategoriesUnassigned": qCatCheck.cnt
|
||||||
|
};
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "reorder":
|
case "reorder":
|
||||||
|
|
|
||||||
Reference in a new issue