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:
parent
6b66d2cef8
commit
e92362f773
11 changed files with 81 additions and 81 deletions
|
|
@ -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" });
|
||||
|
||||
|
|
|
|||
|
|
@ -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" }
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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 = [];
|
||||
|
|
|
|||
|
|
@ -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" });
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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" })>
|
||||
|
|
|
|||
|
|
@ -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" });
|
||||
|
||||
|
|
|
|||
|
|
@ -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" });
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
Reference in a new issue