This repository has been archived on 2026-03-21. You can view files and clone it, but cannot push or open issues or pull requests.
payfrit-biz/api/admin/debugBigDeansTemplates2.cfm
John Mizerek 1210249f54 Normalize database column and table names across entire codebase
Update all SQL queries, query result references, and ColdFusion code to match
the renamed database schema. Tables use plural CamelCase, PKs are all `ID`,
column prefixes stripped (e.g. BusinessName→Name, UserFirstName→FirstName).

Key changes:
- Strip table-name prefixes from all column references (Businesses, Users,
  Addresses, Hours, Menus, Categories, Items, Stations, Orders,
  OrderLineItems, Tasks, TaskCategories, TaskRatings, QuickTaskTemplates,
  ScheduledTaskDefinitions, ChatMessages, Beacons, ServicePoints, Employees,
  VisitorTrackings, ApiPerfLogs, tt_States, tt_Days, tt_AddressTypes,
  tt_OrderTypes, tt_TaskTypes)
- Rename PK references from {TableName}ID to ID in all queries
- Rewrite 7 admin beacon files to use ServicePoints.BeaconID instead of
  dropped lt_Beacon_Businesses_ServicePoints link table
- Rewrite beacon assignment files (list, save, delete) for new schema
- Fix FK references incorrectly changed to ID (OrderLineItems.OrderID,
  Categories.MenuID, Tasks.CategoryID, ServicePoints.BeaconID)
- Update Addresses: AddressLat→Latitude, AddressLng→Longitude
- Update Users: UserPassword→Password, UserIsEmailVerified→IsEmailVerified,
  UserIsActive→IsActive, UserBalance→Balance, etc.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:39:12 -08:00

79 lines
2.3 KiB
Text

<cfsetting showdebugoutput="false">
<cfsetting enablecfoutputonly="true">
<cfcontent type="application/json; charset=utf-8" reset="true">
<cfscript>
bizId = 27;
// Check the template items themselves (IDs from lt_ItemID_TemplateItemID)
templateIds = "11267, 11251, 11246, 11224, 11233, 11230, 11240, 11243, 11237, 11227";
qTemplates = queryExecute("
SELECT ID, Name, IsCollapsible, IsActive, ParentItemID, BusinessID
FROM Items
WHERE ID IN (#templateIds#)
ORDER BY Name
", {}, { datasource: "payfrit" });
templates = [];
for (row in qTemplates) {
arrayAppend(templates, {
"ItemID": row.ID,
"Name": row.Name,
"IsCollapsible": row.IsCollapsible,
"IsActive": row.IsActive,
"ParentID": row.ParentItemID,
"BusinessID": row.BusinessID
});
}
// Also check what other templates might exist for burgers
// Look for items that are in lt_ItemID_TemplateItemID but NOT linked to burgers
qMissingTemplates = queryExecute("
SELECT DISTINCT t.ItemID, t.Name, t.IsCollapsible, t.IsActive
FROM Items t
WHERE t.BusinessID = :bizId
AND t.ParentItemID = 0
AND t.ItemID NOT IN (
SELECT i.ID FROM Items i WHERE i.BusinessID = :bizId AND i.CategoryID > 0
)
AND EXISTS (SELECT 1 FROM Items child WHERE child.ParentItemID = t.ItemID)
ORDER BY t.Name
", { bizId: bizId }, { datasource: "payfrit" });
potentialTemplates = [];
for (row in qMissingTemplates) {
arrayAppend(potentialTemplates, {
"ItemID": row.ID,
"Name": row.Name,
"IsCollapsible": row.IsCollapsible,
"IsActive": row.IsActive
});
}
// What templates SHOULD burgers have? Let's see all templates used by ANY item
qAllTemplateUsage = queryExecute("
SELECT t.ItemID, t.Name, COUNT(tl.ItemID) as UsageCount
FROM lt_ItemID_TemplateItemID tl
JOIN Items t ON t.ItemID = tl.TemplateItemID
JOIN Items mi ON mi.ID = tl.ItemID AND mi.BusinessID = :bizId
GROUP BY t.ItemID, t.Name
ORDER BY t.Name
", { bizId: bizId }, { datasource: "payfrit" });
allTemplates = [];
for (row in qAllTemplateUsage) {
arrayAppend(allTemplates, {
"TemplateID": row.ID,
"TemplateName": row.Name,
"UsageCount": row.UsageCount
});
}
writeOutput(serializeJSON({
"OK": true,
"TemplatesInLinks": templates,
"PotentialTemplates": potentialTemplates,
"AllTemplateUsage": allTemplates
}));
</cfscript>