// Quick admin script to deactivate orphan item 11543 (stale "Extras" on Cheeseburger) // This item has no children and no template link - it's leftover from before the template system param name="url.itemId" default="11543"; param name="url.action" default="check"; // "check" or "deactivate" // Check the item first qItem = queryExecute(" SELECT ItemID, ItemName, ItemParentItemID, ItemIsActive, ItemIsCollapsible FROM Items WHERE ItemID = :itemId ", { itemId: url.itemId }); if (qItem.recordCount == 0) { writeOutput(serializeJSON({ OK: false, ERROR: "Item not found" })); abort; } // Check if item has children qChildren = queryExecute(" SELECT COUNT(*) as cnt FROM Items WHERE ItemParentItemID = :itemId ", { itemId: url.itemId }); result = { "OK": true, "ACTION": url.action, "ITEM": { "ItemID": qItem.ItemID, "ItemName": qItem.ItemName, "ItemParentItemID": qItem.ItemParentItemID, "ItemIsActive": qItem.ItemIsActive, "ItemIsCollapsible": qItem.ItemIsCollapsible }, "HAS_CHILDREN": qChildren.cnt > 0, "CHILD_COUNT": qChildren.cnt }; if (url.action == "deactivate" && qChildren.cnt == 0) { queryExecute(" UPDATE Items SET ItemIsActive = 0 WHERE ItemID = :itemId ", { itemId: url.itemId }); result["DEACTIVATED"] = true; result["MESSAGE"] = "Item deactivated successfully"; } else if (url.action == "deactivate" && qChildren.cnt > 0) { result["DEACTIVATED"] = false; result["MESSAGE"] = "Cannot deactivate - item has children"; } writeOutput(serializeJSON(result));