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" });
// 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" }
}, { datasource: "payfrit" });

View file

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

View file

@ -6,9 +6,9 @@
<cfscript>
try {
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
ORDER BY Name
ORDER BY tt_StateName
", {}, { datasource: "payfrit" });
states = [];

View file

@ -56,9 +56,9 @@ try {
// Get address from Addresses table (either linked via AddressBusinessID or via Businesses.BusinessAddressID)
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
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))
AND a.AddressIsDeleted = 0
LIMIT 1
@ -88,9 +88,9 @@ try {
// Get hours from Hours table
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
JOIN tt_Days d ON d.ID = h.HoursDayID
JOIN tt_Days d ON d.tt_DayID = h.HoursDayID
WHERE h.HoursBusinessID = :businessID
ORDER BY h.HoursDayID
", { businessID: businessID }, { datasource: "payfrit" });

View file

@ -81,7 +81,7 @@ try {
stateID = 0;
if (len(state)) {
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" });
if (qState.recordCount > 0) {
stateID = qState.ID;

View file

@ -73,10 +73,10 @@ try {
o.AddedOn,
o.LastEditedOn,
b.BusinessName,
COALESCE(ot.Name, 'Unknown') as OrderTypeName
COALESCE(ot.tt_OrderTypeName, 'Unknown') as OrderTypeName
FROM Orders o
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
AND o.StatusID > 0
ORDER BY o.AddedOn DESC

View file

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

View file

@ -24,12 +24,12 @@ if (!structKeyExists(request, "BusinessID") || !isNumeric(request.BusinessID) ||
try {
q = queryExecute("
SELECT
b.ID,
b.Name,
b.TaxRate,
b.Phone
b.BusinessID AS ID,
b.BusinessName AS Name,
b.BusinessTaxRate AS TaxRate,
b.BusinessPhone AS Phone
FROM Businesses b
WHERE b.ID = :businessId
WHERE b.BusinessID = :businessId
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });
@ -39,11 +39,11 @@ try {
// Get address from Addresses table
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
LEFT JOIN tt_States s ON s.ID = a.StateID
WHERE (a.BusinessID = :businessId OR a.ID = (SELECT AddressID FROM Businesses WHERE ID = :businessId))
AND a.IsDeleted = 0
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))
AND a.AddressIsDeleted = 0
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });
@ -60,9 +60,9 @@ try {
// Get owner email from Users table
qUser = queryExecute("
SELECT ContactNumber, EmailAddress
SELECT UserContactNumber AS ContactNumber, UserEmailAddress AS EmailAddress
FROM Users
WHERE ID = (SELECT UserID FROM Businesses WHERE ID = :businessId)
WHERE UserID = (SELECT BusinessUserID FROM Businesses WHERE BusinessID = :businessId)
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });

View file

@ -54,25 +54,25 @@ try {
if (taxRate < 0 || taxRate > 0.5) {
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" };
} else if (structKeyExists(data, "TaxRate") && isNumeric(data.TaxRate)) {
taxRate = data.TaxRate;
if (taxRate < 0 || taxRate > 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" };
}
// Add more updatable fields as needed
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" };
}
if (structKeyExists(data, "Phone")) {
arrayAppend(updates, "Phone = :phone");
arrayAppend(updates, "BusinessPhone = :phone");
params.phone = { value: left(trim(data.Phone), 20), cfsqltype: "cf_sql_varchar" };
}
@ -98,16 +98,16 @@ try {
// Build and execute Businesses update
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" });
}
// Update address in Addresses table if needed
if (hasAddressUpdate) {
qExistingAddr = queryExecute("
SELECT ID FROM Addresses
WHERE (BusinessID = :businessId OR ID = (SELECT AddressID FROM Businesses WHERE ID = :businessId))
AND IsDeleted = 0
SELECT AddressID AS ID FROM Addresses
WHERE (AddressBusinessID = :businessId OR AddressID = (SELECT BusinessAddressID FROM Businesses WHERE BusinessID = :businessId))
AND AddressIsDeleted = 0
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });
@ -115,19 +115,19 @@ try {
addrUpdates = [];
addrParams = { addrId: qExistingAddr.ID };
if (structKeyExists(addrFields, "Line1")) {
arrayAppend(addrUpdates, "Line1 = :line1");
arrayAppend(addrUpdates, "AddressLine1 = :line1");
addrParams.line1 = { value: addrFields.Line1, cfsqltype: "cf_sql_varchar" };
}
if (structKeyExists(addrFields, "City")) {
arrayAppend(addrUpdates, "City = :city");
arrayAppend(addrUpdates, "AddressCity = :city");
addrParams.city = { value: addrFields.City, cfsqltype: "cf_sql_varchar" };
}
if (structKeyExists(addrFields, "ZIPCode")) {
arrayAppend(addrUpdates, "ZIPCode = :zip");
arrayAppend(addrUpdates, "AddressZIPCode = :zip");
addrParams.zip = { value: addrFields.ZIPCode, cfsqltype: "cf_sql_varchar" };
}
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" });
}
}
@ -135,18 +135,18 @@ try {
// Return updated settings
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
WHERE b.ID = :businessId
WHERE b.BusinessID = :businessId
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });
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
LEFT JOIN tt_States s ON s.ID = a.StateID
WHERE (a.BusinessID = :businessId OR a.ID = (SELECT AddressID FROM Businesses WHERE ID = :businessId))
AND a.IsDeleted = 0
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))
AND a.AddressIsDeleted = 0
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });

View file

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

View file

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