Fix prefixed column names for tt_States, tt_Days, tt_OrderTypes, ServicePoints, Users, Addresses, Hours tables

All lookup/reference tables use prefixed column names (tt_StateID, tt_StateAbbreviation,
tt_DayID, tt_DayAbbrev, tt_OrderTypeID, tt_OrderTypeName, ServicePointID, ServicePointName,
UserID, UserFirstName, UserLastName, AddressID, AddressLine1, etc). Updated all affected
queries to use correct column names with aliases to maintain API compatibility.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
John Mizerek 2026-01-31 17:38:33 -08:00
parent 6b66d2cef8
commit e92362f773
11 changed files with 81 additions and 81 deletions

View file

@ -117,7 +117,7 @@ try {
}, { datasource: "payfrit" }); }, { datasource: "payfrit" });
// Get state info for response // Get state info for response
qState = queryExecute("SELECT Abbreviation as StateAbbreviation, Name as StateName FROM tt_States WHERE ID = :stateId", { qState = queryExecute("SELECT tt_StateAbbreviation as StateAbbreviation, tt_StateName as StateName FROM tt_States WHERE tt_StateID = :stateId", {
stateId: { value: stateId, cfsqltype: "cf_sql_integer" } stateId: { value: stateId, cfsqltype: "cf_sql_integer" }
}, { datasource: "payfrit" }); }, { datasource: "payfrit" });

View file

@ -49,22 +49,22 @@ try {
// Get user's delivery addresses // Get user's delivery addresses
qAddresses = queryExecute(" qAddresses = queryExecute("
SELECT SELECT
a.ID, a.AddressID AS ID,
a.IsDefaultDelivery, a.AddressIsDefaultDelivery AS IsDefaultDelivery,
a.Line1, a.AddressLine1 AS Line1,
a.Line2, a.AddressLine2 AS Line2,
a.City, a.AddressCity AS City,
a.StateID, a.AddressStateID AS StateID,
s.Abbreviation as StateAbbreviation, s.tt_StateAbbreviation as StateAbbreviation,
s.Name as StateName, s.tt_StateName as StateName,
a.ZIPCode a.AddressZIPCode AS ZIPCode
FROM Addresses a FROM Addresses a
LEFT JOIN tt_States s ON a.StateID = s.ID LEFT JOIN tt_States s ON a.AddressStateID = s.tt_StateID
WHERE a.UserID = :userId WHERE a.AddressUserID = :userId
AND (a.BusinessID = 0 OR a.BusinessID IS NULL) AND (a.AddressBusinessID = 0 OR a.AddressBusinessID IS NULL)
AND a.AddressTypeID = 2 AND a.AddressTypeID = 2
AND a.IsDeleted = 0 AND a.AddressIsDeleted = 0
ORDER BY a.IsDefaultDelivery DESC, a.ID DESC ORDER BY a.AddressIsDefaultDelivery DESC, a.AddressID DESC
", { ", {
userId: { value = userId, cfsqltype = "cf_sql_integer" } userId: { value = userId, cfsqltype = "cf_sql_integer" }
}); });

View file

@ -6,9 +6,9 @@
<cfscript> <cfscript>
try { try {
qStates = queryExecute(" qStates = queryExecute("
SELECT ID as StateID, Abbreviation as StateAbbreviation, Name as StateName SELECT tt_StateID as StateID, tt_StateAbbreviation as StateAbbreviation, tt_StateName as StateName
FROM tt_States FROM tt_States
ORDER BY Name ORDER BY tt_StateName
", {}, { datasource: "payfrit" }); ", {}, { datasource: "payfrit" });
states = []; states = [];

View file

@ -56,9 +56,9 @@ try {
// Get address from Addresses table (either linked via AddressBusinessID or via Businesses.BusinessAddressID) // Get address from Addresses table (either linked via AddressBusinessID or via Businesses.BusinessAddressID)
qAddr = queryExecute(" qAddr = queryExecute("
SELECT a.AddressLine1, a.AddressLine2, a.AddressCity, a.AddressZIPCode, s.Abbreviation SELECT a.AddressLine1, a.AddressLine2, a.AddressCity, a.AddressZIPCode, s.tt_StateAbbreviation AS Abbreviation
FROM Addresses a FROM Addresses a
LEFT JOIN tt_States s ON s.ID = a.AddressStateID LEFT JOIN tt_States s ON s.tt_StateID = a.AddressStateID
WHERE (a.AddressBusinessID = :businessID OR a.AddressID = (SELECT BusinessAddressID FROM Businesses WHERE BusinessID = :businessID)) WHERE (a.AddressBusinessID = :businessID OR a.AddressID = (SELECT BusinessAddressID FROM Businesses WHERE BusinessID = :businessID))
AND a.AddressIsDeleted = 0 AND a.AddressIsDeleted = 0
LIMIT 1 LIMIT 1
@ -88,9 +88,9 @@ try {
// Get hours from Hours table // Get hours from Hours table
qHours = queryExecute(" qHours = queryExecute("
SELECT h.HoursDayID, h.HoursOpenTime, h.HoursClosingTime, d.Abbrev SELECT h.HoursDayID, h.HoursOpenTime, h.HoursClosingTime, d.tt_DayAbbrev AS Abbrev
FROM Hours h FROM Hours h
JOIN tt_Days d ON d.ID = h.HoursDayID JOIN tt_Days d ON d.tt_DayID = h.HoursDayID
WHERE h.HoursBusinessID = :businessID WHERE h.HoursBusinessID = :businessID
ORDER BY h.HoursDayID ORDER BY h.HoursDayID
", { businessID: businessID }, { datasource: "payfrit" }); ", { businessID: businessID }, { datasource: "payfrit" });

View file

@ -81,7 +81,7 @@ try {
stateID = 0; stateID = 0;
if (len(state)) { if (len(state)) {
qState = queryExecute(" qState = queryExecute("
SELECT ID FROM tt_States WHERE Abbreviation = :abbr SELECT tt_StateID AS ID FROM tt_States WHERE tt_StateAbbreviation = :abbr
", { abbr: uCase(state) }, { datasource: "payfrit" }); ", { abbr: uCase(state) }, { datasource: "payfrit" });
if (qState.recordCount > 0) { if (qState.recordCount > 0) {
stateID = qState.ID; stateID = qState.ID;

View file

@ -73,10 +73,10 @@ try {
o.AddedOn, o.AddedOn,
o.LastEditedOn, o.LastEditedOn,
b.BusinessName, b.BusinessName,
COALESCE(ot.Name, 'Unknown') as OrderTypeName COALESCE(ot.tt_OrderTypeName, 'Unknown') as OrderTypeName
FROM Orders o FROM Orders o
LEFT JOIN Businesses b ON b.BusinessID = o.BusinessID LEFT JOIN Businesses b ON b.BusinessID = o.BusinessID
LEFT JOIN tt_OrderTypes ot ON ot.ID = o.OrderTypeID LEFT JOIN tt_OrderTypes ot ON ot.tt_OrderTypeID = o.OrderTypeID
WHERE o.UserID = :userId WHERE o.UserID = :userId
AND o.StatusID > 0 AND o.StatusID > 0
ORDER BY o.AddedOn DESC ORDER BY o.AddedOn DESC

View file

@ -70,12 +70,12 @@
o.Remarks, o.Remarks,
o.SubmittedOn, o.SubmittedOn,
o.LastEditedOn, o.LastEditedOn,
sp.Name, sp.ServicePointName AS Name,
u.FirstName, u.UserFirstName AS FirstName,
u.LastName u.UserLastName AS LastName
FROM Orders o FROM Orders o
LEFT JOIN ServicePoints sp ON sp.ID = o.ServicePointID LEFT JOIN ServicePoints sp ON sp.ServicePointID = o.ServicePointID
LEFT JOIN Users u ON u.ID = o.UserID LEFT JOIN Users u ON u.UserID = o.UserID
INNER JOIN OrderLineItems oli ON oli.OrderID = o.ID INNER JOIN OrderLineItems oli ON oli.OrderID = o.ID
INNER JOIN Items i ON i.ID = oli.ItemID INNER JOIN Items i ON i.ID = oli.ItemID
WHERE #whereSQL# WHERE #whereSQL#
@ -96,12 +96,12 @@
o.Remarks, o.Remarks,
o.SubmittedOn, o.SubmittedOn,
o.LastEditedOn, o.LastEditedOn,
sp.Name, sp.ServicePointName AS Name,
u.FirstName, u.UserFirstName AS FirstName,
u.LastName u.UserLastName AS LastName
FROM Orders o FROM Orders o
LEFT JOIN ServicePoints sp ON sp.ID = o.ServicePointID LEFT JOIN ServicePoints sp ON sp.ServicePointID = o.ServicePointID
LEFT JOIN Users u ON u.ID = o.UserID LEFT JOIN Users u ON u.UserID = o.UserID
WHERE #whereSQL# WHERE #whereSQL#
ORDER BY o.SubmittedOn ASC, o.ID ASC ORDER BY o.SubmittedOn ASC, o.ID ASC
", params, { datasource = "payfrit" })> ", params, { datasource = "payfrit" })>

View file

@ -24,12 +24,12 @@ if (!structKeyExists(request, "BusinessID") || !isNumeric(request.BusinessID) ||
try { try {
q = queryExecute(" q = queryExecute("
SELECT SELECT
b.ID, b.BusinessID AS ID,
b.Name, b.BusinessName AS Name,
b.TaxRate, b.BusinessTaxRate AS TaxRate,
b.Phone b.BusinessPhone AS Phone
FROM Businesses b FROM Businesses b
WHERE b.ID = :businessId WHERE b.BusinessID = :businessId
LIMIT 1 LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" }); ", { businessId: request.BusinessID }, { datasource: "payfrit" });
@ -39,11 +39,11 @@ try {
// Get address from Addresses table // Get address from Addresses table
qAddr = queryExecute(" qAddr = queryExecute("
SELECT a.Line1, a.Line2, a.City, a.ZIPCode, s.Abbreviation AS State SELECT a.AddressLine1 AS Line1, a.AddressLine2 AS Line2, a.AddressCity AS City, a.AddressZIPCode AS ZIPCode, s.tt_StateAbbreviation AS State
FROM Addresses a FROM Addresses a
LEFT JOIN tt_States s ON s.ID = a.StateID LEFT JOIN tt_States s ON s.tt_StateID = a.AddressStateID
WHERE (a.BusinessID = :businessId OR a.ID = (SELECT AddressID FROM Businesses WHERE ID = :businessId)) WHERE (a.AddressBusinessID = :businessId OR a.AddressID = (SELECT BusinessAddressID FROM Businesses WHERE BusinessID = :businessId))
AND a.IsDeleted = 0 AND a.AddressIsDeleted = 0
LIMIT 1 LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" }); ", { businessId: request.BusinessID }, { datasource: "payfrit" });
@ -60,9 +60,9 @@ try {
// Get owner email from Users table // Get owner email from Users table
qUser = queryExecute(" qUser = queryExecute("
SELECT ContactNumber, EmailAddress SELECT UserContactNumber AS ContactNumber, UserEmailAddress AS EmailAddress
FROM Users FROM Users
WHERE ID = (SELECT UserID FROM Businesses WHERE ID = :businessId) WHERE UserID = (SELECT BusinessUserID FROM Businesses WHERE BusinessID = :businessId)
LIMIT 1 LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" }); ", { businessId: request.BusinessID }, { datasource: "payfrit" });

View file

@ -54,25 +54,25 @@ try {
if (taxRate < 0 || taxRate > 0.5) { if (taxRate < 0 || taxRate > 0.5) {
apiAbort({ OK: false, ERROR: "invalid_tax_rate", MESSAGE: "Tax rate must be between 0% and 50%" }); apiAbort({ OK: false, ERROR: "invalid_tax_rate", MESSAGE: "Tax rate must be between 0% and 50%" });
} }
arrayAppend(updates, "TaxRate = :taxRate"); arrayAppend(updates, "BusinessTaxRate = :taxRate");
params.taxRate = { value: taxRate, cfsqltype: "cf_sql_decimal" }; params.taxRate = { value: taxRate, cfsqltype: "cf_sql_decimal" };
} else if (structKeyExists(data, "TaxRate") && isNumeric(data.TaxRate)) { } else if (structKeyExists(data, "TaxRate") && isNumeric(data.TaxRate)) {
taxRate = data.TaxRate; taxRate = data.TaxRate;
if (taxRate < 0 || taxRate > 0.5) { if (taxRate < 0 || taxRate > 0.5) {
apiAbort({ OK: false, ERROR: "invalid_tax_rate", MESSAGE: "Tax rate must be between 0 and 0.5" }); apiAbort({ OK: false, ERROR: "invalid_tax_rate", MESSAGE: "Tax rate must be between 0 and 0.5" });
} }
arrayAppend(updates, "TaxRate = :taxRate"); arrayAppend(updates, "BusinessTaxRate = :taxRate");
params.taxRate = { value: taxRate, cfsqltype: "cf_sql_decimal" }; params.taxRate = { value: taxRate, cfsqltype: "cf_sql_decimal" };
} }
// Add more updatable fields as needed // Add more updatable fields as needed
if (structKeyExists(data, "Name") && len(trim(data.Name))) { if (structKeyExists(data, "Name") && len(trim(data.Name))) {
arrayAppend(updates, "Name = :businessName"); arrayAppend(updates, "BusinessName = :businessName");
params.businessName = { value: left(trim(data.Name), 100), cfsqltype: "cf_sql_varchar" }; params.businessName = { value: left(trim(data.Name), 100), cfsqltype: "cf_sql_varchar" };
} }
if (structKeyExists(data, "Phone")) { if (structKeyExists(data, "Phone")) {
arrayAppend(updates, "Phone = :phone"); arrayAppend(updates, "BusinessPhone = :phone");
params.phone = { value: left(trim(data.Phone), 20), cfsqltype: "cf_sql_varchar" }; params.phone = { value: left(trim(data.Phone), 20), cfsqltype: "cf_sql_varchar" };
} }
@ -98,16 +98,16 @@ try {
// Build and execute Businesses update // Build and execute Businesses update
if (arrayLen(updates) > 0) { if (arrayLen(updates) > 0) {
sql = "UPDATE Businesses SET " & arrayToList(updates, ", ") & " WHERE ID = :businessId"; sql = "UPDATE Businesses SET " & arrayToList(updates, ", ") & " WHERE BusinessID = :businessId";
queryExecute(sql, params, { datasource: "payfrit" }); queryExecute(sql, params, { datasource: "payfrit" });
} }
// Update address in Addresses table if needed // Update address in Addresses table if needed
if (hasAddressUpdate) { if (hasAddressUpdate) {
qExistingAddr = queryExecute(" qExistingAddr = queryExecute("
SELECT ID FROM Addresses SELECT AddressID AS ID FROM Addresses
WHERE (BusinessID = :businessId OR ID = (SELECT AddressID FROM Businesses WHERE ID = :businessId)) WHERE (AddressBusinessID = :businessId OR AddressID = (SELECT BusinessAddressID FROM Businesses WHERE BusinessID = :businessId))
AND IsDeleted = 0 AND AddressIsDeleted = 0
LIMIT 1 LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" }); ", { businessId: request.BusinessID }, { datasource: "payfrit" });
@ -115,19 +115,19 @@ try {
addrUpdates = []; addrUpdates = [];
addrParams = { addrId: qExistingAddr.ID }; addrParams = { addrId: qExistingAddr.ID };
if (structKeyExists(addrFields, "Line1")) { if (structKeyExists(addrFields, "Line1")) {
arrayAppend(addrUpdates, "Line1 = :line1"); arrayAppend(addrUpdates, "AddressLine1 = :line1");
addrParams.line1 = { value: addrFields.Line1, cfsqltype: "cf_sql_varchar" }; addrParams.line1 = { value: addrFields.Line1, cfsqltype: "cf_sql_varchar" };
} }
if (structKeyExists(addrFields, "City")) { if (structKeyExists(addrFields, "City")) {
arrayAppend(addrUpdates, "City = :city"); arrayAppend(addrUpdates, "AddressCity = :city");
addrParams.city = { value: addrFields.City, cfsqltype: "cf_sql_varchar" }; addrParams.city = { value: addrFields.City, cfsqltype: "cf_sql_varchar" };
} }
if (structKeyExists(addrFields, "ZIPCode")) { if (structKeyExists(addrFields, "ZIPCode")) {
arrayAppend(addrUpdates, "ZIPCode = :zip"); arrayAppend(addrUpdates, "AddressZIPCode = :zip");
addrParams.zip = { value: addrFields.ZIPCode, cfsqltype: "cf_sql_varchar" }; addrParams.zip = { value: addrFields.ZIPCode, cfsqltype: "cf_sql_varchar" };
} }
if (arrayLen(addrUpdates) > 0) { if (arrayLen(addrUpdates) > 0) {
queryExecute("UPDATE Addresses SET " & arrayToList(addrUpdates, ", ") & " WHERE ID = :addrId", queryExecute("UPDATE Addresses SET " & arrayToList(addrUpdates, ", ") & " WHERE AddressID = :addrId",
addrParams, { datasource: "payfrit" }); addrParams, { datasource: "payfrit" });
} }
} }
@ -135,18 +135,18 @@ try {
// Return updated settings // Return updated settings
q = queryExecute(" q = queryExecute("
SELECT b.ID, b.Name, b.TaxRate, b.Phone SELECT b.BusinessID AS ID, b.BusinessName AS Name, b.BusinessTaxRate AS TaxRate, b.BusinessPhone AS Phone
FROM Businesses b FROM Businesses b
WHERE b.ID = :businessId WHERE b.BusinessID = :businessId
LIMIT 1 LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" }); ", { businessId: request.BusinessID }, { datasource: "payfrit" });
qAddr = queryExecute(" qAddr = queryExecute("
SELECT a.Line1, a.City, a.ZIPCode, s.Abbreviation AS State SELECT a.AddressLine1 AS Line1, a.AddressCity AS City, a.AddressZIPCode AS ZIPCode, s.tt_StateAbbreviation AS State
FROM Addresses a FROM Addresses a
LEFT JOIN tt_States s ON s.ID = a.StateID LEFT JOIN tt_States s ON s.tt_StateID = a.AddressStateID
WHERE (a.BusinessID = :businessId OR a.ID = (SELECT AddressID FROM Businesses WHERE ID = :businessId)) WHERE (a.AddressBusinessID = :businessId OR a.AddressID = (SELECT BusinessAddressID FROM Businesses WHERE BusinessID = :businessId))
AND a.IsDeleted = 0 AND a.AddressIsDeleted = 0
LIMIT 1 LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" }); ", { businessId: request.BusinessID }, { datasource: "payfrit" });

View file

@ -45,24 +45,24 @@ try {
// Match by name (case-insensitive) OR by address components // Match by name (case-insensitive) OR by address components
qDuplicates = queryExecute(" qDuplicates = queryExecute("
SELECT DISTINCT SELECT DISTINCT
b.ID, b.BusinessID,
b.Name, b.BusinessName AS Name,
a.Line1, a.AddressLine1 AS Line1,
a.City, a.AddressCity AS City,
s.Abbreviation as AddressState, s.tt_StateAbbreviation as AddressState,
a.ZIPCode a.AddressZIPCode AS ZIPCode
FROM Businesses b FROM Businesses b
LEFT JOIN Addresses a ON a.BusinessID = b.ID LEFT JOIN Addresses a ON a.AddressBusinessID = b.BusinessID
LEFT JOIN tt_States s ON s.ID = a.StateID LEFT JOIN tt_States s ON s.tt_StateID = a.AddressStateID
WHERE WHERE
LOWER(b.Name) = LOWER(:bizName) LOWER(b.BusinessName) = LOWER(:bizName)
OR ( OR (
LOWER(a.Line1) = LOWER(:addressLine1) LOWER(a.AddressLine1) = LOWER(:addressLine1)
AND LOWER(a.City) = LOWER(:city) AND LOWER(a.AddressCity) = LOWER(:city)
AND a.Line1 != '' AND a.AddressLine1 != ''
AND a.City != '' AND a.AddressCity != ''
) )
ORDER BY b.Name ORDER BY b.BusinessName
", { ", {
bizName: bizName, bizName: bizName,
addressLine1: addressLine1, addressLine1: addressLine1,

View file

@ -71,7 +71,7 @@ try {
response.steps.append("State value received: '" & state & "' (len: " & len(state) & ")"); response.steps.append("State value received: '" & state & "' (len: " & len(state) & ")");
if (len(state)) { if (len(state)) {
qState = queryExecute(" qState = queryExecute("
SELECT ID FROM tt_States WHERE Abbreviation = :abbr SELECT tt_StateID AS ID FROM tt_States WHERE tt_StateAbbreviation = :abbr
", { abbr: uCase(state) }, { datasource: "payfrit" }); ", { abbr: uCase(state) }, { datasource: "payfrit" });
response.steps.append("State lookup for '" & uCase(state) & "' found " & qState.recordCount & " records"); response.steps.append("State lookup for '" & uCase(state) & "' found " & qState.recordCount & " records");
@ -173,7 +173,7 @@ try {
// Insert hours record for this day // Insert hours record for this day
queryExecute(" queryExecute("
INSERT INTO Hours (BusinessID, DayID, OpenTime, ClosingTime) INSERT INTO Hours (HoursBusinessID, HoursDayID, HoursOpenTime, HoursClosingTime)
VALUES (:bizID, :dayID, :openTime, :closeTime) VALUES (:bizID, :dayID, :openTime, :closeTime)
", { ", {
bizID: businessId, bizID: businessId,
@ -319,9 +319,9 @@ try {
// Validate menu hours fall within business operating hours // Validate menu hours fall within business operating hours
if (len(menuStartTime) && len(menuEndTime)) { if (len(menuStartTime) && len(menuEndTime)) {
qHours = queryExecute(" qHours = queryExecute("
SELECT MIN(OpenTime) as earliestOpen, MAX(ClosingTime) as latestClose SELECT MIN(HoursOpenTime) as earliestOpen, MAX(HoursClosingTime) as latestClose
FROM Hours FROM Hours
WHERE BusinessID = :bizID WHERE HoursBusinessID = :bizID
", { bizID: businessId }, { datasource: "payfrit" }); ", { bizID: businessId }, { datasource: "payfrit" });
if (qHours.recordCount > 0 && !isNull(qHours.earliestOpen) && !isNull(qHours.latestClose)) { if (qHours.recordCount > 0 && !isNull(qHours.earliestOpen) && !isNull(qHours.latestClose)) {