Complete DB column normalization: strip redundant table-name prefixes from all SQL queries

Updated 70 files to match the payfrit_dev schema where columns like
BusinessName→Name, UserFirstName→FirstName, AddressCity→City, etc.
PKs renamed to ID, FKs keep referenced table name (e.g. BusinessID).
SQL aliases preserve original JSON response keys for API compatibility.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
John Mizerek 2026-01-31 20:03:15 -08:00
parent a09701556f
commit 8acf2f3249
70 changed files with 431 additions and 431 deletions

View file

@ -57,7 +57,7 @@ try {
if (setAsDefault) {
queryExecute("
UPDATE Addresses
SET AddressIsDefaultDelivery = 0
SET IsDefaultDelivery = 0
WHERE UserID = :userId
AND (BusinessID = 0 OR BusinessID IS NULL)
AND AddressTypeID = :typeId
@ -68,18 +68,18 @@ try {
}
// Get next AddressID
qNext = queryExecute("SELECT IFNULL(MAX(AddressID), 0) + 1 AS NextID FROM Addresses", {}, { datasource: "payfrit" });
qNext = queryExecute("SELECT IFNULL(MAX(ID), 0) + 1 AS NextID FROM Addresses", {}, { datasource: "payfrit" });
newAddressId = qNext.NextID;
// Insert new address
queryExecute("
INSERT INTO Addresses (
AddressID,
ID,
UserID,
BusinessID,
AddressTypeID,
AddressLabel,
AddressIsDefaultDelivery,
Label,
IsDefaultDelivery,
Line1,
Line2,
City,
@ -117,7 +117,7 @@ try {
}, { datasource: "payfrit" });
// Get state info for response
qState = queryExecute("SELECT tt_StateAbbreviation as StateAbbreviation, tt_StateName as StateName FROM tt_States WHERE tt_StateID = :stateId", {
qState = queryExecute("SELECT Abbreviation as StateAbbreviation, Name as StateName FROM tt_States WHERE ID = :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.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
a.ID,
a.IsDefaultDelivery,
a.Line1,
a.Line2,
a.City,
a.StateID,
s.Abbreviation as StateAbbreviation,
s.Name as StateName,
a.ZIPCode
FROM Addresses a
LEFT JOIN tt_States s ON a.AddressStateID = s.tt_StateID
WHERE a.AddressUserID = :userId
AND (a.AddressBusinessID = 0 OR a.AddressBusinessID IS NULL)
LEFT JOIN tt_States s ON a.StateID = s.ID
WHERE a.UserID = :userId
AND (a.BusinessID = 0 OR a.BusinessID IS NULL)
AND a.AddressTypeID = 2
AND a.AddressIsDeleted = 0
ORDER BY a.AddressIsDefaultDelivery DESC, a.AddressID DESC
AND a.IsDeleted = 0
ORDER BY a.IsDefaultDelivery DESC, a.ID DESC
", {
userId: { value = userId, cfsqltype = "cf_sql_integer" }
});

View file

@ -63,7 +63,7 @@ try {
// Clear all defaults for this user
queryExecute("
UPDATE Addresses
SET AddressIsDefaultDelivery = 0
SET IsDefaultDelivery = 0
WHERE UserID = :userId
AND (BusinessID = 0 OR BusinessID IS NULL)
AND AddressTypeID LIKE '%2%'
@ -74,7 +74,7 @@ try {
// Set this one as default
queryExecute("
UPDATE Addresses
SET AddressIsDefaultDelivery = 1
SET IsDefaultDelivery = 1
WHERE ID = :addressId
", {
addressId: { value: addressId, cfsqltype: "cf_sql_integer" }

View file

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

View file

@ -25,14 +25,14 @@ try {
abort;
}
fountainId = qFountain.ItemID;
fountainId = qFountain.ID;
response["FountainSodaID"] = fountainId;
// Update Fountain Soda to require child selection and be collapsible
queryExecute("
UPDATE Items
SET RequiresChildSelection = 1, IsCollapsible = 1
WHERE ItemID = :itemId
WHERE ID = :itemId
", { itemId: fountainId }, { datasource: "payfrit" });
// Check if modifiers already exist
@ -48,12 +48,12 @@ try {
}
// Add Size group
qMaxItem = queryExecute("SELECT COALESCE(MAX(ItemID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
qMaxItem = queryExecute("SELECT COALESCE(MAX(ID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
sizeGroupId = qMaxItem.nextId;
queryExecute("
INSERT INTO Items (
ItemID, BusinessID, CategoryID, ParentItemID,
ID, BusinessID, CategoryID, ParentItemID,
Name, Description, Price, IsActive,
SortOrder, IsCollapsible, RequiresChildSelection,
MaxNumSelectionReq, AddedOn
@ -77,7 +77,7 @@ try {
sizesAdded = 0;
for (size in sizes) {
qMaxItem = queryExecute("SELECT COALESCE(MAX(ItemID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
qMaxItem = queryExecute("SELECT COALESCE(MAX(ID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
queryExecute("
INSERT INTO Items (
ItemID, BusinessID, CategoryID, ParentItemID,
@ -103,12 +103,12 @@ try {
}
// Add Type/Flavor group
qMaxItem = queryExecute("SELECT COALESCE(MAX(ItemID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
qMaxItem = queryExecute("SELECT COALESCE(MAX(ID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
typeGroupId = qMaxItem.nextId;
queryExecute("
INSERT INTO Items (
ItemID, BusinessID, CategoryID, ParentItemID,
ID, BusinessID, CategoryID, ParentItemID,
Name, Description, Price, IsActive,
SortOrder, IsCollapsible, RequiresChildSelection,
MaxNumSelectionReq, AddedOn
@ -136,7 +136,7 @@ try {
typesAdded = 0;
for (type in types) {
qMaxItem = queryExecute("SELECT COALESCE(MAX(ItemID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
qMaxItem = queryExecute("SELECT COALESCE(MAX(ID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
queryExecute("
INSERT INTO Items (
ItemID, BusinessID, CategoryID, ParentItemID,

View file

@ -9,14 +9,14 @@ q = queryExecute("
b.ID,
b.UUID,
b.Name,
sp_link.ServicePointBusinessID AS BusinessID,
sp_link.ServicePointID,
biz.BusinessName,
sp.ServicePointName AS Name
sp_link.BusinessID AS BusinessID,
sp_link.ID AS ServicePointID,
biz.Name,
sp.Name AS Name
FROM Beacons b
LEFT JOIN ServicePoints sp_link ON sp_link.BeaconID = b.ID
LEFT JOIN Businesses biz ON biz.BusinessID = sp_link.ServicePointBusinessID
LEFT JOIN ServicePoints sp ON sp.ServicePointID = sp_link.ServicePointID
LEFT JOIN Businesses biz ON biz.ID = sp_link.BusinessID
LEFT JOIN ServicePoints sp ON sp.ID = sp_link.ID
WHERE b.IsActive = 1
ORDER BY b.ID
", {}, { datasource: "payfrit" });
@ -36,10 +36,10 @@ for (row in q) {
// Also get service points for reference
spQuery = queryExecute("
SELECT sp.ServicePointID AS ID, sp.ServicePointName AS Name, sp.ServicePointBusinessID AS BusinessID, b.BusinessName AS Name
SELECT sp.ID, sp.Name AS Name, sp.BusinessID AS BusinessID, b.Name AS Name
FROM ServicePoints sp
JOIN Businesses b ON b.BusinessID = sp.ServicePointBusinessID
ORDER BY sp.ServicePointBusinessID, sp.ServicePointID
JOIN Businesses b ON b.ID = sp.BusinessID
ORDER BY sp.BusinessID, sp.ID
", {}, { datasource: "payfrit" });
servicePoints = [];

View file

@ -5,9 +5,9 @@
<cfscript>
// Check Big Dean's owner
q = queryExecute("
SELECT b.BusinessID AS ID, b.BusinessName AS Name, b.BusinessUserID AS UserID
SELECT b.ID, b.Name, b.UserID
FROM Businesses b
WHERE b.BusinessID = 27
WHERE b.ID = 27
", {}, { datasource: "payfrit" });
// Get users

View file

@ -18,7 +18,7 @@ try {
queryExecute("
UPDATE ServicePoints
SET BeaconID = NULL, AssignedByUserID = NULL
WHERE BeaconID IN (7, 8, 9) AND ServicePointBusinessID = :bizId
WHERE BeaconID IN (7, 8, 9) AND BusinessID = :bizId
", { bizId: lazyDaisyID }, { datasource: "payfrit" });
response.steps.append("Unassigned beacons 7, 8, 9 from service points");
@ -50,13 +50,13 @@ try {
// Get final status
qFinal = queryExecute("
SELECT sp.ServicePointID AS ServicePointID, sp.BeaconID, sp.ServicePointBusinessID AS BusinessID,
b.Name AS BeaconName, b.UUID, sp.ServicePointName AS ServicePointName,
biz.BusinessName AS BusinessName
SELECT sp.ID AS ServicePointID, sp.BeaconID, sp.BusinessID AS BusinessID,
b.Name AS BeaconName, b.UUID, sp.Name AS ServicePointName,
biz.Name AS BusinessName
FROM ServicePoints sp
JOIN Beacons b ON b.ID = sp.BeaconID
JOIN Businesses biz ON biz.BusinessID = sp.ServicePointBusinessID
WHERE sp.ServicePointBusinessID = :bizId AND sp.BeaconID IS NOT NULL
JOIN Businesses biz ON biz.ID = sp.BusinessID
WHERE sp.BusinessID = :bizId AND sp.BeaconID IS NOT NULL
ORDER BY sp.BeaconID
", { bizId: lazyDaisyID }, { datasource: "payfrit" });

View file

@ -57,9 +57,9 @@ try {
// Get remaining employees
qRemaining = queryExecute("
SELECT e.ID, e.UserID, u.UserFirstName AS FirstName, u.UserLastName AS LastName
SELECT e.ID, e.UserID, u.FirstName, u.LastName
FROM Employees e
JOIN Users u ON e.UserID = u.UserID
JOIN Users u ON e.UserID = u.ID
WHERE e.BusinessID = ?
ORDER BY e.ID
", [{ value: businessId, cfsqltype: "cf_sql_integer" }], { datasource: "payfrit" });

View file

@ -19,7 +19,7 @@ try {
// Get list of businesses to delete
qBiz = queryExecute("
SELECT BusinessID AS ID, BusinessName AS Name FROM Businesses WHERE BusinessID != :keepID
SELECT ID, Name FROM Businesses WHERE ID != :keepID
", { keepID: keepBusinessID }, { datasource: "payfrit" });
deletedBusinesses = [];
@ -100,17 +100,17 @@ try {
// Finally delete the businesses themselves
queryExecute("
DELETE FROM Businesses WHERE BusinessID != :keepID
DELETE FROM Businesses WHERE ID != :keepID
", { keepID: keepBusinessID }, { datasource: "payfrit" });
response.steps.append("Deleted " & arrayLen(deletedBusinesses) & " businesses");
// Get beacon status
qBeacons = queryExecute("
SELECT sp.ServicePointID AS ServicePointID, sp.BeaconID, sp.ServicePointBusinessID AS BusinessID,
b.UUID, biz.BusinessName AS BusinessName, sp.ServicePointName AS ServicePointName
SELECT sp.ID AS ServicePointID, sp.BeaconID, sp.ServicePointBusinessID AS BusinessID,
b.UUID, biz.Name AS BusinessName, sp.ServicePointName AS ServicePointName
FROM ServicePoints sp
JOIN Beacons b ON b.ID = sp.BeaconID
JOIN Businesses biz ON biz.BusinessID = sp.ServicePointBusinessID
JOIN Businesses biz ON biz.ID = sp.ServicePointBusinessID
WHERE sp.BeaconID IS NOT NULL
", {}, { datasource: "payfrit" });

View file

@ -20,11 +20,11 @@ try {
", { bizId: bigDeansBusinessId }, { datasource: "payfrit" });
if (qExistingCat.recordCount > 0) {
drinksCategoryId = qExistingCat.CategoryID;
drinksCategoryId = qExistingCat.ID;
response["CategoryNote"] = "Using existing category: " & qExistingCat.Name;
} else {
// Create a new Beverages category for Big Dean's
qMaxCat = queryExecute("SELECT COALESCE(MAX(CategoryID), 0) + 1 as nextId FROM Categories", {}, { datasource: "payfrit" });
qMaxCat = queryExecute("SELECT COALESCE(MAX(ID), 0) + 1 as nextId FROM Categories", {}, { datasource: "payfrit" });
drinksCategoryId = qMaxCat.nextId;
qMaxSort = queryExecute("
@ -32,7 +32,7 @@ try {
", { bizId: bigDeansBusinessId }, { datasource: "payfrit" });
queryExecute("
INSERT INTO Categories (CategoryID, BusinessID, ParentCategoryID, Name, SortOrder, AddedOn)
INSERT INTO Categories (ID, BusinessID, ParentCategoryID, Name, SortOrder, AddedOn)
VALUES (:catId, :bizId, 0, 'Beverages', :sortOrder, NOW())
", {
catId: drinksCategoryId,
@ -67,12 +67,12 @@ try {
if (qExists.recordCount == 0) {
// Get next ItemID
qMaxItem = queryExecute("SELECT COALESCE(MAX(ItemID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
qMaxItem = queryExecute("SELECT COALESCE(MAX(ID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
newItemId = qMaxItem.nextId;
queryExecute("
INSERT INTO Items (
ItemID, BusinessID, CategoryID, ParentItemID,
ID, BusinessID, CategoryID, ParentItemID,
Name, Description, Price, IsActive,
SortOrder, IsCollapsible, RequiresChildSelection,
AddedOn
@ -100,10 +100,10 @@ try {
flavors = ["Chocolate", "Vanilla", "Strawberry"];
flavorSort = 0;
for (flavor in flavors) {
qMaxOpt = queryExecute("SELECT COALESCE(MAX(ItemID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
qMaxOpt = queryExecute("SELECT COALESCE(MAX(ID), 0) + 1 as nextId FROM Items", {}, { datasource: "payfrit" });
queryExecute("
INSERT INTO Items (
ItemID, BusinessID, CategoryID, ParentItemID,
ID, BusinessID, CategoryID, ParentItemID,
Name, Description, Price, IsActive,
SortOrder, IsCollapsible, IsCheckedByDefault,
AddedOn

View file

@ -35,13 +35,13 @@ try {
// Get service point Table 1
qSP = queryExecute("
SELECT ServicePointID AS ID FROM ServicePoints
WHERE ServicePointBusinessID = :bizID AND ServicePointName = 'Table 1'
SELECT ID FROM ServicePoints
WHERE BusinessID = :bizID AND Name = 'Table 1'
", { bizID: lazyDaisyID }, { datasource: "payfrit" });
if (qSP.recordCount == 0) {
queryExecute("
INSERT INTO ServicePoints (ServicePointBusinessID, ServicePointName)
INSERT INTO ServicePoints (BusinessID, Name)
VALUES (:bizID, 'Table 1')
", { bizID: lazyDaisyID }, { datasource: "payfrit" });
qSP = queryExecute("SELECT LAST_INSERT_ID() as id", {}, { datasource: "payfrit" });
@ -68,19 +68,19 @@ try {
// Assign beacon to Table 1 service point
queryExecute("
UPDATE ServicePoints SET BeaconID = :beaconID, AssignedByUserID = 1
WHERE ServicePointID = :spID AND ServicePointBusinessID = :bizID
WHERE ID = :spID AND BusinessID = :bizID
", { beaconID: beaconID, bizID: lazyDaisyID, spID: servicePointID }, { datasource: "payfrit" });
response.steps.append("Assigned beacon " & beaconID & " to Table 1");
}
// Get final status
qFinal = queryExecute("
SELECT sp.ServicePointID AS ServicePointID, sp.BeaconID, sp.ServicePointBusinessID AS BusinessID,
b.Name AS BeaconName, b.UUID, sp.ServicePointName AS ServicePointName,
biz.BusinessName AS BusinessName
SELECT sp.ID AS ServicePointID, sp.BeaconID, sp.BusinessID AS BusinessID,
b.Name AS BeaconName, b.UUID, sp.Name AS ServicePointName,
biz.Name AS BusinessName
FROM ServicePoints sp
JOIN Beacons b ON b.ID = sp.BeaconID
JOIN Businesses biz ON biz.BusinessID = sp.ServicePointBusinessID
JOIN Businesses biz ON biz.ID = sp.BusinessID
WHERE sp.BeaconID IS NOT NULL
", {}, { datasource: "payfrit" });

View file

@ -31,7 +31,7 @@ try {
// Create Menus table
queryExecute("
CREATE TABLE Menus (
MenuID INT AUTO_INCREMENT PRIMARY KEY,
ID INT AUTO_INCREMENT PRIMARY KEY,
BusinessID INT NOT NULL,
Name VARCHAR(100) NOT NULL,
Description VARCHAR(500) NULL,

View file

@ -26,11 +26,11 @@
<cftry>
<!--- Get raw employee records --- >
<cfset qEmployees = queryExecute("
SELECT e.*, b.BusinessName AS Name
SELECT e.*, b.Name
FROM Employees e
INNER JOIN Businesses b ON b.BusinessID = e.BusinessID
INNER JOIN Businesses b ON b.ID = e.BusinessID
WHERE e.UserID = ?
ORDER BY b.Name ASC
ORDER BY b.Name
", [ { value = UserID, cfsqltype = "cf_sql_integer" } ], { datasource = "payfrit" })>
<cfset employees = []>
@ -46,9 +46,9 @@
<!--- Check for duplicate businesses --- >
<cfset qDuplicates = queryExecute("
SELECT BusinessName AS Name, COUNT(*) AS cnt
SELECT Name, COUNT(*) AS cnt
FROM Businesses
GROUP BY BusinessName
GROUP BY Name
HAVING COUNT(*) > 1
", [], { datasource = "payfrit" })>

View file

@ -40,9 +40,9 @@ userId = qUser.ID;
qEmployees = queryExecute("
SELECT e.ID, e.BusinessID, e.StatusID,
CAST(e.IsActive AS UNSIGNED) AS IsActive,
b.BusinessName AS Name
b.Name
FROM Employees e
JOIN Businesses b ON e.BusinessID = b.BusinessID
JOIN Businesses b ON e.BusinessID = b.ID
WHERE e.UserID = ?
", [{ value: userId, cfsqltype: "cf_sql_integer" }], { datasource: "payfrit" });

View file

@ -75,17 +75,17 @@ function buildAddressString(line1, line2, city, zipCode) {
<cfif structKeyExists(url, "geocode") AND structKeyExists(url, "addressId")>
<cfset addressId = val(url.addressId)>
<cfquery name="addr" datasource="payfrit">
SELECT AddressLine1 AS Line1, AddressLine2 AS Line2, AddressCity AS City, AddressZIPCode AS ZIPCode
FROM Addresses WHERE AddressID = <cfqueryparam value="#addressId#" cfsqltype="cf_sql_integer">
SELECT Line1, Line2, City, ZIPCode
FROM Addresses WHERE ID = <cfqueryparam value="#addressId#" cfsqltype="cf_sql_integer">
</cfquery>
<cfif addr.recordCount GT 0>
<cfset fullAddress = buildAddressString(addr.Line1, addr.Line2, addr.City, addr.ZIPCode)>
<cfset geo = geocodeAddress(fullAddress)>
<cfif geo.success>
<cfquery datasource="payfrit">
UPDATE Addresses SET AddressLat = <cfqueryparam value="#geo.lat#" cfsqltype="cf_sql_decimal">,
AddressLng = <cfqueryparam value="#geo.lng#" cfsqltype="cf_sql_decimal">
WHERE AddressID = <cfqueryparam value="#addressId#" cfsqltype="cf_sql_integer">
UPDATE Addresses SET Lat = <cfqueryparam value="#geo.lat#" cfsqltype="cf_sql_decimal">,
Lng = <cfqueryparam value="#geo.lng#" cfsqltype="cf_sql_decimal">
WHERE ID = <cfqueryparam value="#addressId#" cfsqltype="cf_sql_integer">
</cfquery>
<cfoutput><div class="success">Geocoded Address ID #addressId#: #geo.lat#, #geo.lng#</div></cfoutput>
<cfelse>
@ -96,10 +96,10 @@ function buildAddressString(line1, line2, city, zipCode) {
<cfif structKeyExists(url, "geocodeAll")>
<cfquery name="missing" datasource="payfrit">
SELECT AddressID AS ID, AddressLine1 AS Line1, AddressLine2 AS Line2, AddressCity AS City, AddressZIPCode AS ZIPCode
SELECT ID, Line1, Line2, City, ZIPCode
FROM Addresses
WHERE (AddressLat IS NULL OR AddressLat = 0)
AND AddressLine1 IS NOT NULL AND AddressLine1 != ''
WHERE (Lat IS NULL OR Lat = 0)
AND Line1 IS NOT NULL AND Line1 != ''
</cfquery>
<cfset successCount = 0>
<cfset failCount = 0>
@ -108,9 +108,9 @@ function buildAddressString(line1, line2, city, zipCode) {
<cfset geo = geocodeAddress(fullAddress)>
<cfif geo.success>
<cfquery datasource="payfrit">
UPDATE Addresses SET AddressLat = <cfqueryparam value="#geo.lat#" cfsqltype="cf_sql_decimal">,
AddressLng = <cfqueryparam value="#geo.lng#" cfsqltype="cf_sql_decimal">
WHERE AddressID = <cfqueryparam value="#missing.ID#" cfsqltype="cf_sql_integer">
UPDATE Addresses SET Lat = <cfqueryparam value="#geo.lat#" cfsqltype="cf_sql_decimal">,
Lng = <cfqueryparam value="#geo.lng#" cfsqltype="cf_sql_decimal">
WHERE ID = <cfqueryparam value="#missing.ID#" cfsqltype="cf_sql_integer">
</cfquery>
<cfset successCount = successCount + 1>
<cfelse>
@ -123,18 +123,18 @@ function buildAddressString(line1, line2, city, zipCode) {
<cfquery name="addresses" datasource="payfrit">
SELECT
b.BusinessID,
b.BusinessName AS Name,
a.AddressID,
a.AddressLine1 AS Line1,
a.AddressLine2 AS Line2,
a.AddressCity AS City,
a.AddressZIPCode AS ZIPCode,
a.AddressLat AS Latitude,
a.AddressLng AS Longitude
b.ID AS BusinessID,
b.Name,
a.ID AS AddressID,
a.Line1,
a.Line2,
a.City,
a.ZIPCode,
a.Lat AS Latitude,
a.Lng AS Longitude
FROM Businesses b
LEFT JOIN Addresses a ON b.BusinessAddressID = a.AddressID
ORDER BY b.BusinessName
LEFT JOIN Addresses a ON b.AddressID = a.ID
ORDER BY b.Name
</cfquery>
<cfset missingCount = 0>

View file

@ -47,16 +47,16 @@ try {
// Find category-like Items (parent=0, not collapsible, has children, not in template links)
qCategoryItems = queryExecute("
SELECT DISTINCT
p.ItemID,
p.ID,
p.Name,
p.SortOrder
FROM Items p
INNER JOIN Items c ON c.ParentItemID = p.ItemID
INNER JOIN Items c ON c.ParentItemID = p.ID
WHERE p.BusinessID = :bizId
AND p.ParentItemID = 0
AND (p.IsCollapsible = 0 OR p.IsCollapsible IS NULL)
AND NOT EXISTS (
SELECT 1 FROM lt_ItemID_TemplateItemID tl WHERE tl.TemplateItemID = p.ItemID
SELECT 1 FROM lt_ItemID_TemplateItemID tl WHERE tl.TemplateItemID = p.ID
)
ORDER BY p.SortOrder, p.Name
", { bizId: bizId }, { datasource: "payfrit" });
@ -72,14 +72,14 @@ try {
if (qExisting.recordCount == 0) {
// Get next CategoryID
qMaxId = queryExecute("
SELECT COALESCE(MAX(CategoryID), 0) + 1 as nextId FROM Categories
SELECT COALESCE(MAX(ID), 0) + 1 as nextId FROM Categories
", {}, { datasource: "payfrit" });
newCatId = qMaxId.nextId;
// Create new category with explicit ID
queryExecute("
INSERT INTO Categories
(CategoryID, BusinessID, ParentCategoryID, Name, SortOrder, AddedOn)
(ID, BusinessID, ParentCategoryID, Name, SortOrder, AddedOn)
VALUES (:catId, :bizId, 0, :name, :sortOrder, NOW())
", {
catId: newCatId,
@ -90,7 +90,7 @@ try {
bizResult.CategoriesCreated++;
} else {
newCatId = qExisting.CategoryID;
newCatId = qExisting.ID;
}
// Update all children of this category Item to have the new CategoryID
@ -101,7 +101,7 @@ try {
AND BusinessID = :bizId
", {
catId: newCatId,
parentId: catItem.ItemID,
parentId: catItem.ID,
bizId: bizId
}, { datasource: "payfrit" });

View file

@ -49,7 +49,7 @@ try {
// Verify template exists and belongs to this business
qCheck = queryExecute("
SELECT QuickTaskTemplateID FROM QuickTaskTemplates
SELECT ID FROM QuickTaskTemplates
WHERE ID = :id AND BusinessID = :businessID
", {
id: { value: templateID, cfsqltype: "cf_sql_integer" },

View file

@ -69,7 +69,7 @@ try {
if (templateID > 0) {
// UPDATE existing template
qCheck = queryExecute("
SELECT QuickTaskTemplateID FROM QuickTaskTemplates
SELECT ID FROM QuickTaskTemplates
WHERE ID = :id AND BusinessID = :businessID
", {
id: { value: templateID, cfsqltype: "cf_sql_integer" },

View file

@ -49,7 +49,7 @@ try {
// Verify exists and belongs to business
qCheck = queryExecute("
SELECT ScheduledTaskID FROM ScheduledTaskDefinitions
SELECT ID FROM ScheduledTaskDefinitions
WHERE ID = :id AND BusinessID = :businessID
", {
id: { value: taskID, cfsqltype: "cf_sql_integer" },

View file

@ -67,7 +67,7 @@ try {
// Find all active scheduled tasks that are due
dueTasks = queryExecute("
SELECT
ScheduledTaskID,
ID AS ScheduledTaskID,
BusinessID as BusinessID,
TaskCategoryID as CategoryID,
Title as Title,

View file

@ -157,7 +157,7 @@ try {
if (taskID > 0) {
// UPDATE existing
qCheck = queryExecute("
SELECT ScheduledTaskID FROM ScheduledTaskDefinitions
SELECT ID FROM ScheduledTaskDefinitions
WHERE ID = :id AND BusinessID = :businessID
", {
id: { value: taskID, cfsqltype: "cf_sql_integer" },

View file

@ -99,7 +99,7 @@ try {
// Verify exists and get cron expression and schedule type
qCheck = queryExecute("
SELECT ScheduledTaskID, CronExpression as CronExpression,
SELECT ID, CronExpression as CronExpression,
COALESCE(ScheduleType, 'cron') as ScheduleType,
IntervalMinutes as IntervalMinutes
FROM ScheduledTaskDefinitions

View file

@ -34,10 +34,10 @@ try {
q = queryExecute("
SELECT e.ID, e.BusinessID, e.UserID, e.StatusID,
CAST(e.IsActive AS UNSIGNED) AS IsActive,
b.BusinessName AS Name, u.UserFirstName AS FirstName, u.UserLastName AS LastName
b.Name, u.FirstName, u.LastName
FROM Employees e
JOIN Businesses b ON e.BusinessID = b.BusinessID
JOIN Users u ON e.UserID = u.UserID
JOIN Businesses b ON e.BusinessID = b.ID
JOIN Users u ON e.UserID = u.ID
WHERE e.BusinessID = ? AND e.UserID = ?
", [
{ value: businessId, cfsqltype: "cf_sql_integer" },

View file

@ -14,10 +14,10 @@ try {
// Get all service points for Lazy Daisy
qServicePoints = queryExecute("
SELECT ServicePointID AS ID, ServicePointName AS Name
SELECT ID, Name AS Name
FROM ServicePoints
WHERE ServicePointBusinessID = :bizID AND IsActive = 1
ORDER BY SortOrder, ServicePointID
WHERE BusinessID = :bizID AND IsActive = 1
ORDER BY SortOrder, ID
", { bizID: lazyDaisyID }, { datasource: "payfrit" });
response.steps.append("Found " & qServicePoints.recordCount & " service points for Lazy Daisy");
@ -53,7 +53,7 @@ try {
queryExecute("
UPDATE ServicePoints
SET BeaconID = :beaconId, AssignedByUserID = 1
WHERE ServicePointID = :spId AND ServicePointBusinessID = :bizId
WHERE ID = :spId AND BusinessID = :bizId
", {
beaconId: newBeaconId,
bizId: lazyDaisyID,
@ -69,14 +69,14 @@ try {
// Get final status
qFinal = queryExecute("
SELECT sp.ServicePointID AS ServicePointID, sp.BeaconID, sp.ServicePointBusinessID AS BusinessID,
b.Name AS BeaconName, b.UUID, sp.ServicePointName AS ServicePointName,
biz.BusinessName AS BusinessName
SELECT sp.ID AS ServicePointID, sp.BeaconID, sp.BusinessID AS BusinessID,
b.Name AS BeaconName, b.UUID, sp.Name AS ServicePointName,
biz.Name AS BusinessName
FROM ServicePoints sp
JOIN Beacons b ON b.ID = sp.BeaconID
JOIN Businesses biz ON biz.BusinessID = sp.ServicePointBusinessID
WHERE sp.ServicePointBusinessID = :bizId AND sp.BeaconID IS NOT NULL
ORDER BY sp.ServicePointName
JOIN Businesses biz ON biz.ID = sp.BusinessID
WHERE sp.BusinessID = :bizId AND sp.BeaconID IS NOT NULL
ORDER BY sp.Name
", { bizId: lazyDaisyID }, { datasource: "payfrit" });
beacons = [];

View file

@ -13,19 +13,19 @@ try {
// Hours: Mon-Thu: 11am-10pm, Fri-Sat: 11am-11pm, Sun: 11am-10pm
// Get California StateID
qState = queryExecute("SELECT tt_StateID FROM tt_States WHERE tt_StateAbbreviation = 'CA' LIMIT 1");
stateId = qState.recordCount > 0 ? qState.tt_StateID : 5; // Default to 5 if not found
qState = queryExecute("SELECT ID FROM tt_States WHERE Abbreviation = 'CA' LIMIT 1");
stateId = qState.recordCount > 0 ? qState.ID : 5; // Default to 5 if not found
// Check if Big Dean's already has an address
existingAddr = queryExecute("
SELECT AddressID FROM Addresses
WHERE AddressBusinessID = :bizId AND AddressUserID = 0
SELECT ID FROM Addresses
WHERE BusinessID = :bizId AND UserID = 0
", { bizId: businessId });
if (existingAddr.recordCount == 0) {
// Insert new address
queryExecute("
INSERT INTO Addresses (AddressUserID, AddressBusinessID, AddressTypeID, AddressLine1, AddressCity, AddressStateID, AddressZIPCode, AddressIsDeleted, AddressAddedOn)
INSERT INTO Addresses (UserID, BusinessID, AddressTypeID, Line1, City, StateID, ZIPCode, IsDeleted, AddedOn)
VALUES (0, :bizId, '2', :line1, :city, :stateId, :zip, 0, NOW())
", {
bizId: businessId,
@ -39,8 +39,8 @@ try {
// Update existing address
queryExecute("
UPDATE Addresses
SET AddressLine1 = :line1, AddressCity = :city, AddressStateID = :stateId, AddressZIPCode = :zip
WHERE AddressBusinessID = :bizId AND AddressUserID = 0
SET Line1 = :line1, City = :city, StateID = :stateId, ZIPCode = :zip
WHERE BusinessID = :bizId AND UserID = 0
", {
bizId: businessId,
line1: "1615 Ocean Front Walk",
@ -96,7 +96,7 @@ try {
// Update phone on Businesses table (if column exists)
try {
queryExecute("UPDATE Businesses SET BusinessPhone = :phone WHERE BusinessID = :bizId", {
queryExecute("UPDATE Businesses SET Phone = :phone WHERE ID = :bizId", {
phone: "(310) 393-2666",
bizId: businessId
});
@ -107,10 +107,10 @@ try {
// Verify the data
address = queryExecute("
SELECT a.*, s.tt_StateAbbreviation AS Abbreviation
SELECT a.*, s.Abbreviation
FROM Addresses a
LEFT JOIN tt_States s ON s.tt_StateID = a.AddressStateID
WHERE a.AddressBusinessID = :bizId AND a.AddressUserID = 0
LEFT JOIN tt_States s ON s.ID = a.StateID
WHERE a.BusinessID = :bizId AND a.UserID = 0
", { bizId: businessId });
hours = queryExecute("
@ -124,10 +124,10 @@ try {
response["OK"] = true;
response["BUSINESS_ID"] = businessId;
response["ADDRESS"] = address.recordCount > 0 ? {
"line1": address.AddressLine1,
"city": address.AddressCity,
"line1": address.Line1,
"city": address.City,
"state": address.Abbreviation,
"zip": address.AddressZIPCode
"zip": address.ZIPCode
} : "not found";
hoursArr = [];

View file

@ -14,13 +14,13 @@ try {
// Create service point for Table 1 if it doesn't exist
qSP = queryExecute("
SELECT ServicePointID AS ID FROM ServicePoints
WHERE ServicePointBusinessID = :bizID AND ServicePointName = 'Table 1'
SELECT ID FROM ServicePoints
WHERE BusinessID = :bizID AND Name = 'Table 1'
", { bizID: lazyDaisyID }, { datasource: "payfrit" });
if (qSP.recordCount == 0) {
queryExecute("
INSERT INTO ServicePoints (ServicePointBusinessID, ServicePointName)
INSERT INTO ServicePoints (BusinessID, Name)
VALUES (:bizID, 'Table 1')
", { bizID: lazyDaisyID }, { datasource: "payfrit" });
qSP = queryExecute("SELECT LAST_INSERT_ID() as id", {}, { datasource: "payfrit" });
@ -44,19 +44,19 @@ try {
// Assign beacon to Table 1 service point
queryExecute("
UPDATE ServicePoints SET BeaconID = :beaconID, AssignedByUserID = 1
WHERE ServicePointID = :spID AND ServicePointBusinessID = :bizID
WHERE ID = :spID AND BusinessID = :bizID
", { beaconID: beaconID, bizID: lazyDaisyID, spID: servicePointID }, { datasource: "payfrit" });
response.steps.append("Assigned beacon " & beaconID & " to Table 1");
}
// Get final status
qFinal = queryExecute("
SELECT sp.ServicePointID AS ServicePointID, sp.BeaconID, sp.ServicePointBusinessID AS BusinessID,
b.Name AS BeaconName, b.UUID, sp.ServicePointName AS ServicePointName,
biz.BusinessName AS BusinessName
SELECT sp.ID AS ServicePointID, sp.BeaconID, sp.BusinessID AS BusinessID,
b.Name AS BeaconName, b.UUID, sp.Name AS ServicePointName,
biz.Name AS BusinessName
FROM ServicePoints sp
JOIN Beacons b ON b.ID = sp.BeaconID
JOIN Businesses biz ON biz.BusinessID = sp.ServicePointBusinessID
JOIN Businesses biz ON biz.ID = sp.BusinessID
WHERE sp.BeaconID IS NOT NULL
", {}, { datasource: "payfrit" });

View file

@ -12,14 +12,14 @@
<!--- Create Stations table if it doesn't exist --->
<cfset queryExecute("
CREATE TABLE IF NOT EXISTS Stations (
StationID INT AUTO_INCREMENT PRIMARY KEY,
ID INT AUTO_INCREMENT PRIMARY KEY,
BusinessID INT NOT NULL,
Name VARCHAR(100) NOT NULL,
Color VARCHAR(7) DEFAULT '##666666',
SortOrder INT DEFAULT 0,
IsActive TINYINT(1) DEFAULT 1,
AddedOn DATETIME DEFAULT NOW(),
FOREIGN KEY (BusinessID) REFERENCES Businesses(BusinessID)
FOREIGN KEY (BusinessID) REFERENCES Businesses(ID)
)
", [], { datasource = "payfrit" })>
@ -39,7 +39,7 @@
<cfif stationColumnAdded>
<cftry>
<cfset queryExecute("
ALTER TABLE Items ADD FOREIGN KEY (StationID) REFERENCES Stations(StationID)
ALTER TABLE Items ADD FOREIGN KEY (StationID) REFERENCES Stations(ID)
", [], { datasource = "payfrit" })>
<cfcatch></cfcatch>
</cftry>

View file

@ -30,12 +30,12 @@ queryExecute("
// Get current state
q = queryExecute("
SELECT sp.ServicePointID AS ServicePointID, sp.BeaconID, sp.ServicePointBusinessID AS BusinessID,
b.Name AS BeaconName, biz.BusinessName AS BusinessName,
SELECT sp.ID AS ServicePointID, sp.BeaconID, sp.ServicePointBusinessID AS BusinessID,
b.Name AS BeaconName, biz.Name AS BusinessName,
sp.ServicePointName AS ServicePointName
FROM ServicePoints sp
JOIN Beacons b ON b.ID = sp.BeaconID
JOIN Businesses biz ON biz.BusinessID = sp.ServicePointBusinessID
JOIN Businesses biz ON biz.ID = sp.ServicePointBusinessID
WHERE sp.BeaconID IS NOT NULL
", {}, { datasource: "payfrit" });

View file

@ -35,13 +35,13 @@ q = queryExecute("
b.UUID,
b.Name AS BeaconName,
b.BusinessID AS BeaconBusinessID,
sp.ServicePointID AS ServicePointID,
sp.ID AS ServicePointID,
sp.ServicePointName AS ServicePointName,
sp.ServicePointBusinessID AS ServicePointBusinessID,
biz.BusinessName AS BusinessName
biz.Name AS BusinessName
FROM Beacons b
LEFT JOIN ServicePoints sp ON sp.BeaconID = b.ID
LEFT JOIN Businesses biz ON biz.BusinessID = b.BusinessID
LEFT JOIN Businesses biz ON biz.ID = b.BusinessID
WHERE b.IsActive = 1
ORDER BY b.ID
", {}, { datasource: "payfrit" });

View file

@ -17,18 +17,18 @@ if (!structKeyExists(request, "BusinessID") || !isNumeric(request.BusinessID) ||
<cfquery name="q" datasource="payfrit">
SELECT
sp.ServicePointID AS ServicePointID,
sp.ID AS ServicePointID,
sp.BeaconID,
sp.ServicePointBusinessID AS BusinessID,
sp.BusinessID AS BusinessID,
sp.AssignedByUserID,
b.Name AS BeaconName,
b.UUID,
sp.ServicePointName AS ServicePointName
sp.Name AS ServicePointName
FROM ServicePoints sp
JOIN Beacons b ON b.ID = sp.BeaconID
WHERE sp.ServicePointBusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#request.BusinessID#">
WHERE sp.BusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#request.BusinessID#">
AND sp.BeaconID IS NOT NULL
ORDER BY b.Name, sp.ServicePointName
ORDER BY b.Name, sp.Name
</cfquery>
<cfset assignments = []>

View file

@ -48,9 +48,9 @@ ServicePointID = int(data.ServicePointID);
<!--- Validate Beacon is allowed for this Business:
Owner (Beacons.BusinessID) OR join table (lt_BeaconsID_BusinessesID) OR parent's owner --->
<cfquery name="qBiz" datasource="payfrit">
SELECT BusinessID, BusinessParentBusinessID AS ParentBusinessID
SELECT ID, BusinessParentBusinessID AS ParentBusinessID
FROM Businesses
WHERE BusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#request.BusinessID#">
WHERE ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#request.BusinessID#">
LIMIT 1
</cfquery>
@ -78,10 +78,10 @@ ServicePointID = int(data.ServicePointID);
<!--- Validate ServicePoint belongs to Business --->
<cfquery name="qS" datasource="payfrit">
SELECT ServicePointID
SELECT ID
FROM ServicePoints
WHERE ServicePointID = <cfqueryparam cfsqltype="cf_sql_integer" value="#ServicePointID#">
AND ServicePointBusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#request.BusinessID#">
WHERE ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#ServicePointID#">
AND BusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#request.BusinessID#">
LIMIT 1
</cfquery>
<cfif qS.recordCount EQ 0>
@ -91,9 +91,9 @@ ServicePointID = int(data.ServicePointID);
<!--- Check if this ServicePoint already has this beacon assigned --->
<cfquery name="qDuplicate" datasource="payfrit">
SELECT ServicePointID
SELECT ID
FROM ServicePoints
WHERE ServicePointID = <cfqueryparam cfsqltype="cf_sql_integer" value="#ServicePointID#">
WHERE ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#ServicePointID#">
AND BeaconID = <cfqueryparam cfsqltype="cf_sql_integer" value="#BeaconID#">
LIMIT 1
</cfquery>
@ -107,8 +107,8 @@ ServicePointID = int(data.ServicePointID);
UPDATE ServicePoints
SET BeaconID = <cfqueryparam cfsqltype="cf_sql_integer" value="#BeaconID#">,
AssignedByUserID = <cfqueryparam cfsqltype="cf_sql_integer" value="1">
WHERE ServicePointID = <cfqueryparam cfsqltype="cf_sql_integer" value="#ServicePointID#">
AND ServicePointBusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#request.BusinessID#">
WHERE ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#ServicePointID#">
AND BusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#request.BusinessID#">
</cfquery>
<cfoutput>#serializeJSON({

View file

@ -33,9 +33,9 @@ try {
// Look up the token
qToken = queryExecute("
SELECT ut.UserID, u.UserFirstName AS FirstName, u.UserLastName AS LastName
SELECT ut.UserID, u.FirstName, u.LastName
FROM UserTokens ut
JOIN Users u ON u.UserID = ut.UserID
JOIN Users u ON u.ID = ut.UserID
WHERE ut.Token = :token
LIMIT 1
", { token: { value: token, cfsqltype: "cf_sql_varchar" } }, { datasource: "payfrit" });

View file

@ -48,13 +48,13 @@ beaconId = int(data.BeaconID);
<!--- Get all businesses that have assignments to this beacon (via service points or join table) --->
<cfquery name="qAssignments" datasource="payfrit">
SELECT
sp.ServicePointBusinessID AS BusinessID,
sp.ServicePointID AS ServicePointID,
biz.BusinessName AS BusinessName,
biz.BusinessParentBusinessID,
sp.ServicePointName AS ServicePointName
sp.BusinessID AS BusinessID,
sp.ID AS ServicePointID,
biz.Name AS BusinessName,
biz.ParentBusinessID AS BusinessParentBusinessID,
sp.Name AS ServicePointName
FROM ServicePoints sp
INNER JOIN Businesses biz ON biz.BusinessID = sp.ServicePointBusinessID
INNER JOIN Businesses biz ON biz.ID = sp.BusinessID
WHERE sp.BeaconID = <cfqueryparam cfsqltype="cf_sql_integer" value="#beaconId#">
AND sp.IsActive = 1
@ -63,14 +63,14 @@ beaconId = int(data.BeaconID);
SELECT
lt.BusinessID,
0 AS ServicePointID,
biz.BusinessName AS BusinessName,
biz.BusinessParentBusinessID,
biz.Name AS BusinessName,
biz.ParentBusinessID AS BusinessParentBusinessID,
'' AS ServicePointName
FROM lt_BeaconsID_BusinessesID lt
INNER JOIN Businesses biz ON biz.BusinessID = lt.BusinessID
INNER JOIN Businesses biz ON biz.ID = lt.BusinessID
WHERE lt.BeaconID = <cfqueryparam cfsqltype="cf_sql_integer" value="#beaconId#">
AND lt.BusinessID NOT IN (
SELECT sp2.ServicePointBusinessID FROM ServicePoints sp2
SELECT sp2.BusinessID FROM ServicePoints sp2
WHERE sp2.BeaconID = <cfqueryparam cfsqltype="cf_sql_integer" value="#beaconId#"> AND sp2.IsActive = 1
)
@ -83,7 +83,7 @@ beaconId = int(data.BeaconID);
<!--- Check if this business has children --->
<cfquery name="qChildren" datasource="payfrit">
SELECT COUNT(*) as cnt FROM Businesses
WHERE BusinessParentBusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#qAssignments.BusinessID#">
WHERE ParentBusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#qAssignments.BusinessID#">
</cfquery>
<cfif qChildren.cnt GT 0>
<cfset parentBusinessID = qAssignments.BusinessID>
@ -98,23 +98,23 @@ beaconId = int(data.BeaconID);
<cfif parentBusinessID GT 0>
<!--- Get parent business info for header image --->
<cfquery name="qParent" datasource="payfrit">
SELECT BusinessName, BusinessHeaderImageExtension
SELECT Name AS BusinessName, HeaderImageExtension AS BusinessHeaderImageExtension
FROM Businesses
WHERE BusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#parentBusinessID#">
WHERE ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#parentBusinessID#">
</cfquery>
<cfquery name="qChildBusinesses" datasource="payfrit">
SELECT
BusinessID,
BusinessName,
BusinessParentBusinessID,
BusinessHeaderImageExtension
ID,
Name AS BusinessName,
ParentBusinessID AS BusinessParentBusinessID,
HeaderImageExtension AS BusinessHeaderImageExtension
FROM Businesses
WHERE BusinessParentBusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#parentBusinessID#">
ORDER BY BusinessName ASC
WHERE ParentBusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#parentBusinessID#">
ORDER BY Name ASC
</cfquery>
<cfloop query="qChildBusinesses">
<cfset arrayAppend(businesses, {
"BusinessID" = qChildBusinesses.BusinessID,
"BusinessID" = qChildBusinesses.ID,
"Name" = qChildBusinesses.BusinessName,
"ServicePointID" = qAssignments.ServicePointID,
"ServicePointName" = qAssignments.ServicePointName,

View file

@ -39,22 +39,22 @@
b.ID AS BeaconID,
b.Name AS BeaconName,
b.UUID,
COALESCE(sp.ServicePointID, 0) AS ServicePointID,
COALESCE(sp.ServicePointName, '') AS ServicePointName,
COALESCE(sp.ServicePointBusinessID, lt.BusinessID, b.BusinessID) AS BusinessID,
biz.BusinessName AS BusinessName,
biz.BusinessParentBusinessID AS ParentBusinessID,
COALESCE(parent.BusinessName, '') AS ParentBusinessName,
(SELECT COUNT(*) FROM Businesses WHERE BusinessParentBusinessID = biz.BusinessID) AS ChildCount
COALESCE(sp.ID, 0) AS ServicePointID,
COALESCE(sp.Name, '') AS ServicePointName,
COALESCE(sp.BusinessID, lt.BusinessID, b.BusinessID) AS BusinessID,
biz.Name AS BusinessName,
biz.ParentBusinessID AS ParentBusinessID,
COALESCE(parent.Name, '') AS ParentBusinessName,
(SELECT COUNT(*) FROM Businesses WHERE ParentBusinessID = biz.ID) AS ChildCount
FROM Beacons b
LEFT JOIN ServicePoints sp ON sp.BeaconID = b.ID
LEFT JOIN lt_BeaconsID_BusinessesID lt ON lt.BeaconID = b.ID
INNER JOIN Businesses biz ON COALESCE(sp.ServicePointBusinessID, lt.BusinessID, b.BusinessID) = biz.BusinessID
LEFT JOIN Businesses parent ON biz.BusinessParentBusinessID = parent.BusinessID
INNER JOIN Businesses biz ON COALESCE(sp.BusinessID, lt.BusinessID, b.BusinessID) = biz.ID
LEFT JOIN Businesses parent ON biz.ParentBusinessID = parent.ID
WHERE b.UUID IN (<cfqueryparam value="#arrayToList(cleanUUIDs)#" cfsqltype="cf_sql_varchar" list="true">)
AND b.IsActive = 1
AND biz.BusinessIsDemo = 0
AND biz.BusinessIsPrivate = 0
AND biz.IsDemo = 0
AND biz.IsPrivate = 0
</cfquery>
<cfset beacons = []>

View file

@ -35,17 +35,17 @@ try {
// Get business details
q = queryExecute("
SELECT
BusinessID,
BusinessName,
BusinessPhone,
BusinessStripeAccountID,
BusinessStripeOnboardingComplete,
BusinessIsHiring,
BusinessHeaderImageExtension,
BusinessTaxRate,
BusinessBrandColor
ID,
Name,
Phone,
StripeAccountID,
StripeOnboardingComplete,
IsHiring,
HeaderImageExtension,
TaxRate,
BrandColor
FROM Businesses
WHERE BusinessID = :businessID
WHERE ID = :businessID
", { businessID: businessID }, { datasource: "payfrit" });
if (q.recordCount == 0) {
@ -56,11 +56,11 @@ 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.tt_StateAbbreviation AS Abbreviation
SELECT a.Line1 AS AddressLine1, a.Line2 AS AddressLine2, a.City AS AddressCity, a.ZIPCode AS AddressZIPCode, s.Abbreviation
FROM Addresses a
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
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
LIMIT 1
", { businessID: businessID }, { datasource: "payfrit" });
@ -124,28 +124,28 @@ try {
}
// Build business object
taxRate = isNumeric(q.BusinessTaxRate) ? q.BusinessTaxRate : 0;
taxRate = isNumeric(q.TaxRate) ? q.TaxRate : 0;
business = {
"BusinessID": q.BusinessID,
"Name": q.BusinessName,
"BusinessID": q.ID,
"Name": q.Name,
"Address": addressStr,
"Line1": addressLine1,
"City": addressCity,
"AddressState": addressState,
"AddressZip": addressZip,
"Phone": q.BusinessPhone,
"Phone": q.Phone,
"Hours": hoursStr,
"HoursDetail": hoursArr,
"StripeConnected": (len(q.BusinessStripeAccountID) > 0 && q.BusinessStripeOnboardingComplete == 1),
"IsHiring": q.BusinessIsHiring == 1,
"StripeConnected": (len(q.StripeAccountID) > 0 && q.StripeOnboardingComplete == 1),
"IsHiring": q.IsHiring == 1,
"TaxRate": taxRate,
"TaxRatePercent": taxRate * 100,
"BrandColor": len(q.BusinessBrandColor) ? (left(q.BusinessBrandColor, 1) == chr(35) ? q.BusinessBrandColor : chr(35) & q.BusinessBrandColor) : ""
"BrandColor": len(q.BrandColor) ? (left(q.BrandColor, 1) == chr(35) ? q.BrandColor : chr(35) & q.BrandColor) : ""
};
// Add header image URL if extension exists
if (len(q.BusinessHeaderImageExtension)) {
business["HeaderImageURL"] = "https://biz.payfrit.com/uploads/headers/" & q.BusinessID & "." & q.BusinessHeaderImageExtension;
if (len(q.HeaderImageExtension)) {
business["HeaderImageURL"] = "https://biz.payfrit.com/uploads/headers/" & q.ID & "." & q.HeaderImageExtension;
}
response["OK"] = true;

View file

@ -36,10 +36,10 @@ try {
q = queryExecute(
"
SELECT
BusinessID,
BusinessName
ID,
Name
FROM Businesses
WHERE BusinessParentBusinessID = :parentId
WHERE ParentBusinessID = :parentId
ORDER BY Name
",
{ parentId = { value = parentBusinessId, cfsqltype = "cf_sql_integer" } },
@ -49,8 +49,8 @@ try {
rows = [];
for (i = 1; i <= q.recordCount; i++) {
arrayAppend(rows, {
"BusinessID": q.BusinessID[i],
"Name": q.BusinessName[i]
"BusinessID": q.ID[i],
"Name": q.Name[i]
});
}

View file

@ -43,17 +43,17 @@ try {
q = queryExecute(
"
SELECT
b.BusinessID,
b.BusinessName,
a.AddressLat,
a.AddressLng,
a.AddressCity,
a.AddressLine1
b.ID,
b.Name,
a.Latitude AS AddressLat,
a.Longitude AS AddressLng,
a.City AS AddressCity,
a.Line1 AS AddressLine1
FROM Businesses b
LEFT JOIN Addresses a ON b.BusinessAddressID = a.AddressID
WHERE (b.BusinessIsDemo = 0 OR b.BusinessIsDemo IS NULL)
AND (b.BusinessIsPrivate = 0 OR b.BusinessIsPrivate IS NULL)
ORDER BY b.BusinessName
LEFT JOIN Addresses a ON b.AddressID = a.ID
WHERE (b.IsDemo = 0 OR b.IsDemo IS NULL)
AND (b.IsPrivate = 0 OR b.IsPrivate IS NULL)
ORDER BY b.Name
",
[],
{ datasource = "payfrit" }
@ -63,8 +63,8 @@ try {
rows = [];
for (i = 1; i <= q.recordCount; i++) {
row = {
"BusinessID": q.BusinessID[i],
"Name": q.BusinessName[i],
"BusinessID": q.ID[i],
"Name": q.Name[i],
"City": isNull(q.AddressCity[i]) ? "" : q.AddressCity[i],
"Line1": isNull(q.AddressLine1[i]) ? "" : q.AddressLine1[i]
};

View file

@ -49,8 +49,8 @@ if (len(brandColor) GT 0) {
// Update the database
queryExecute("
UPDATE Businesses
SET BusinessBrandColor = :color
WHERE BusinessID = :bizId
SET BrandColor = :color
WHERE ID = :bizId
", {
color: { value: brandColor, cfsqltype: "cf_sql_varchar" },
bizId: { value: bizId, cfsqltype: "cf_sql_integer" }

View file

@ -45,8 +45,8 @@ if (isHiring == -1) {
try {
queryExecute("
UPDATE Businesses
SET BusinessIsHiring = ?
WHERE BusinessID = ?
SET IsHiring = ?
WHERE ID = ?
", [
{ value: isHiring, cfsqltype: "cf_sql_tinyint" },
{ value: businessId, cfsqltype: "cf_sql_integer" }

View file

@ -48,8 +48,8 @@ try {
if (len(bizName)) {
if (isNumeric(taxRate)) {
queryExecute("
UPDATE Businesses SET BusinessName = :name, BusinessPhone = :phone, BusinessTaxRate = :taxRate
WHERE BusinessID = :id
UPDATE Businesses SET Name = :name, Phone = :phone, TaxRate = :taxRate
WHERE ID = :id
", {
name: bizName,
phone: bizPhone,
@ -58,8 +58,8 @@ try {
}, { datasource: "payfrit" });
} else {
queryExecute("
UPDATE Businesses SET BusinessName = :name, BusinessPhone = :phone
WHERE BusinessID = :id
UPDATE Businesses SET Name = :name, Phone = :phone
WHERE ID = :id
", {
name: bizName,
phone: bizPhone,
@ -81,7 +81,7 @@ try {
stateID = 0;
if (len(state)) {
qState = queryExecute("
SELECT tt_StateID AS ID FROM tt_States WHERE tt_StateAbbreviation = :abbr
SELECT ID FROM tt_States WHERE Abbreviation = :abbr
", { abbr: uCase(state) }, { datasource: "payfrit" });
if (qState.recordCount > 0) {
stateID = qState.ID;
@ -90,8 +90,8 @@ try {
// Check if business has an address
qAddr = queryExecute("
SELECT AddressID FROM Addresses
WHERE AddressBusinessID = :bizID AND AddressUserID = 0 AND AddressIsDeleted = 0
SELECT ID FROM Addresses
WHERE BusinessID = :bizID AND UserID = 0 AND IsDeleted = 0
LIMIT 1
", { bizID: businessId }, { datasource: "payfrit" });
@ -99,22 +99,22 @@ try {
// Update existing address
queryExecute("
UPDATE Addresses SET
AddressLine1 = :line1,
AddressCity = :city,
AddressStateID = :stateID,
AddressZIPCode = :zip
WHERE AddressID = :addrID
Line1 = :line1,
City = :city,
StateID = :stateID,
ZIPCode = :zip
WHERE ID = :addrID
", {
line1: addressLine1,
city: city,
stateID: stateID,
zip: zip,
addrID: qAddr.AddressID
addrID: qAddr.ID
}, { datasource: "payfrit" });
} else {
// Create new address
queryExecute("
INSERT INTO Addresses (AddressLine1, AddressCity, AddressStateID, AddressZIPCode, AddressBusinessID, AddressUserID, AddressTypeID, AddressAddedOn)
INSERT INTO Addresses (Line1, City, StateID, ZIPCode, BusinessID, UserID, AddressTypeID, AddedOn)
VALUES (:line1, :city, :stateID, :zip, :bizID, 0, 2, NOW())
", {
line1: addressLine1,

View file

@ -43,9 +43,9 @@ try {
m.MessageBody,
m.IsRead,
m.CreatedOn,
u.UserFirstName as SenderName
u.FirstName as SenderName
FROM ChatMessages m
LEFT JOIN Users u ON u.UserID = m.SenderUserID
LEFT JOIN Users u ON u.ID = m.SenderUserID
WHERE m.TaskID = :taskID AND m.ID > :afterID
ORDER BY m.CreatedOn ASC
", {
@ -62,9 +62,9 @@ try {
m.MessageBody,
m.IsRead,
m.CreatedOn,
u.UserFirstName as SenderName
u.FirstName as SenderName
FROM ChatMessages m
LEFT JOIN Users u ON u.UserID = m.SenderUserID
LEFT JOIN Users u ON u.ID = m.SenderUserID
WHERE m.TaskID = :taskID
ORDER BY m.CreatedOn ASC
", {

View file

@ -442,7 +442,7 @@ try {
brandColor = "";
try {
qBrand = queryExecute("
SELECT BusinessBrandColor FROM Businesses WHERE BusinessID = :bizId
SELECT BrandColor AS BusinessBrandColor FROM Businesses WHERE ID = :bizId
", { bizId: businessID }, { datasource: "payfrit" });
if (qBrand.recordCount > 0 && len(trim(qBrand.BusinessBrandColor))) {
brandColor = left(qBrand.BusinessBrandColor, 1) == chr(35) ? qBrand.BusinessBrandColor : chr(35) & qBrand.BusinessBrandColor;

View file

@ -533,7 +533,7 @@
<cfset brandColor = "">
<cftry>
<cfset qBrand = queryExecute(
"SELECT BusinessBrandColor FROM Businesses WHERE BusinessID = ?",
"SELECT BrandColor AS BusinessBrandColor FROM Businesses WHERE ID = ?",
[ { value = BusinessID, cfsqltype = "cf_sql_integer" } ],
{ datasource = "payfrit" }
)>

View file

@ -49,7 +49,7 @@ if (bizId LTE 0) {
<!--- Delete old header if exists --->
<cfquery name="qOldHeader" datasource="payfrit">
SELECT BusinessHeaderImageExtension
SELECT HeaderImageExtension AS BusinessHeaderImageExtension
FROM Businesses
WHERE BusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#bizId#">
</cfquery>
@ -70,7 +70,7 @@ if (bizId LTE 0) {
<!--- Update database --->
<cfquery datasource="payfrit">
UPDATE Businesses
SET BusinessHeaderImageExtension = <cfqueryparam cfsqltype="cf_sql_varchar" value="#uploadResult.ClientFileExt#">
SET HeaderImageExtension = <cfqueryparam cfsqltype="cf_sql_varchar" value="#uploadResult.ClientFileExt#">
WHERE BusinessID = <cfqueryparam cfsqltype="cf_sql_integer" value="#bizId#">
</cfquery>

View file

@ -36,17 +36,17 @@ try {
o.StatusID,
o.ServicePointID,
o.AddedOn,
b.BusinessName,
b.BusinessOrderTypes,
sp.ServicePointName,
b.Name AS BusinessName,
b.OrderTypes AS BusinessOrderTypes,
sp.Name AS ServicePointName,
(SELECT COUNT(*)
FROM OrderLineItems oli
WHERE oli.OrderID = o.ID
AND oli.IsDeleted = 0
AND oli.ParentOrderLineItemID = 0) as ItemCount
FROM Orders o
LEFT JOIN Businesses b ON b.BusinessID = o.BusinessID
LEFT JOIN ServicePoints sp ON sp.ServicePointID = o.ServicePointID
LEFT JOIN Businesses b ON b.ID = o.BusinessID
LEFT JOIN ServicePoints sp ON sp.ID = o.ServicePointID
WHERE o.UserID = :userId
AND o.StatusID = 0
ORDER BY o.ID DESC
@ -71,7 +71,7 @@ try {
response["OK"] = true;
response["HAS_CART"] = true;
response["CART"] = {
"OrderID": val(qCart.OrderID),
"OrderID": val(qCart.ID),
"UUID": qCart.UUID ?: "",
"BusinessID": val(qCart.BusinessID),
"Name": len(trim(qCart.BusinessName)) ? qCart.BusinessName : "",

View file

@ -67,12 +67,12 @@
<!--- Get business info for display in cart --->
<cfset qBusiness = queryExecute(
"SELECT BusinessDeliveryFlatFee, BusinessOrderTypes FROM Businesses WHERE BusinessID = ? LIMIT 1",
"SELECT DeliveryFlatFee, OrderTypes FROM Businesses WHERE ID = ? LIMIT 1",
[ { value = qOrder.BusinessID, cfsqltype = "cf_sql_integer" } ],
{ datasource = "payfrit" }
)>
<cfset businessDeliveryFee = qBusiness.recordCount GT 0 ? qBusiness.BusinessDeliveryFlatFee : 0>
<cfset businessOrderTypes = qBusiness.recordCount GT 0 AND len(trim(qBusiness.BusinessOrderTypes)) ? qBusiness.BusinessOrderTypes : "1,2,3">
<cfset businessDeliveryFee = qBusiness.recordCount GT 0 ? qBusiness.DeliveryFlatFee : 0>
<cfset businessOrderTypes = qBusiness.recordCount GT 0 AND len(trim(qBusiness.OrderTypes)) ? qBusiness.OrderTypes : "1,2,3">
<cfset businessOrderTypesArray = listToArray(businessOrderTypes, ",")>
<cfset qLI = queryExecute(

View file

@ -55,18 +55,18 @@ try {
o.LastEditedOn,
o.SubmittedOn,
o.TipAmount,
u.UserFirstName AS FirstName,
u.UserLastName AS LastName,
u.UserContactNumber AS ContactNumber,
u.UserEmailAddress AS EmailAddress,
sp.ServicePointName AS Name,
sp.ServicePointTypeID AS TypeID,
b.BusinessName AS BizName,
b.BusinessTaxRate AS TaxRate
u.FirstName,
u.LastName,
u.ContactNumber,
u.EmailAddress,
sp.Name AS Name,
sp.TypeID AS TypeID,
b.Name AS BizName,
b.TaxRate
FROM Orders o
LEFT JOIN Users u ON u.UserID = o.UserID
LEFT JOIN ServicePoints sp ON sp.ServicePointID = o.ServicePointID
LEFT JOIN Businesses b ON b.BusinessID = o.BusinessID
LEFT JOIN Users u ON u.ID = o.UserID
LEFT JOIN ServicePoints sp ON sp.ID = o.ServicePointID
LEFT JOIN Businesses b ON b.ID = o.BusinessID
WHERE o.ID = :orderID
", { orderID: orderID });
@ -152,18 +152,18 @@ try {
// Get staff who worked on this order (from Tasks table) with pending rating tokens
qStaff = queryExecute("
SELECT DISTINCT u.UserID AS ID, u.UserFirstName AS FirstName,
SELECT DISTINCT u.ID, u.FirstName,
(SELECT r.AccessToken
FROM TaskRatings r
INNER JOIN Tasks t2 ON t2.ID = r.TaskID
WHERE t2.OrderID = :orderID
AND r.ForUserID = u.UserID
AND r.ForUserID = u.ID
AND r.Direction = 'customer_rates_worker'
AND r.CompletedOn IS NULL
AND r.ExpiresOn > NOW()
LIMIT 1) AS RatingToken
FROM Tasks t
INNER JOIN Users u ON u.UserID = t.ClaimedByUserID
INNER JOIN Users u ON u.ID = t.ClaimedByUserID
WHERE t.OrderID = :orderID
AND t.ClaimedByUserID > 0
", { orderID: orderID });

View file

@ -62,11 +62,11 @@
<!--- Get business delivery fee for display in cart --->
<cfset var qBusiness = queryExecute(
"SELECT BusinessDeliveryFlatFee FROM Businesses WHERE BusinessID = ? LIMIT 1",
"SELECT DeliveryFlatFee FROM Businesses WHERE ID = ? LIMIT 1",
[ { value = qOrder.BusinessID, cfsqltype = "cf_sql_integer" } ],
{ datasource = "payfrit" }
)>
<cfset var businessDeliveryFee = qBusiness.recordCount GT 0 ? qBusiness.BusinessDeliveryFlatFee : 0>
<cfset var businessDeliveryFee = qBusiness.recordCount GT 0 ? qBusiness.DeliveryFlatFee : 0>
<cfset out.Order = {
"OrderID": val(qOrder.ID),
@ -229,9 +229,9 @@
<!--- Create new cart order --->
<cfset qBiz = queryExecute(
"
SELECT BusinessDeliveryMultiplier, BusinessDeliveryFlatFee
SELECT DeliveryMultiplier, DeliveryFlatFee
FROM Businesses
WHERE BusinessID = ?
WHERE ID = ?
LIMIT 1
",
[ { value = BusinessID, cfsqltype = "cf_sql_integer" } ],
@ -249,7 +249,7 @@
OrderTypeID: 0=undecided, 1=dine-in, 2=takeaway, 3=delivery
Only delivery (3) should have delivery fee.
Note: For undecided orders (0), fee is set later via setOrderType.cfm --->
<cfset deliveryFee = (OrderTypeID EQ 3) ? qBiz.BusinessDeliveryFlatFee : 0>
<cfset deliveryFee = (OrderTypeID EQ 3) ? qBiz.DeliveryFlatFee : 0>
<!--- Generate new OrderID (table is not auto-inc in SSOT) --->
<cfset qNext = queryExecute(
@ -300,7 +300,7 @@
{ value = newUUID, cfsqltype = "cf_sql_varchar" },
{ value = UserID, cfsqltype = "cf_sql_integer" },
{ value = BusinessID, cfsqltype = "cf_sql_integer" },
{ value = qBiz.BusinessDeliveryMultiplier, cfsqltype = "cf_sql_decimal" },
{ value = qBiz.DeliveryMultiplier, cfsqltype = "cf_sql_decimal" },
{ value = OrderTypeID, cfsqltype = "cf_sql_integer" },
{ value = deliveryFee, cfsqltype = "cf_sql_decimal" },
{ value = nowDt, cfsqltype = "cf_sql_timestamp" },

View file

@ -45,16 +45,16 @@ try {
o.StatusID,
o.SubmittedOn,
o.ServicePointID,
sp.ServicePointName AS Name,
b.BusinessName AS BizName,
sp.Name AS Name,
b.Name AS BizName,
(SELECT COALESCE(SUM(oli.Price * oli.Quantity), 0)
FROM OrderLineItems oli
WHERE oli.OrderID = o.ID
AND oli.IsDeleted = 0
AND oli.ParentOrderLineItemID = 0) as Subtotal
FROM Orders o
LEFT JOIN ServicePoints sp ON sp.ServicePointID = o.ServicePointID
LEFT JOIN Businesses b ON b.BusinessID = o.BusinessID
LEFT JOIN ServicePoints sp ON sp.ID = o.ServicePointID
LEFT JOIN Businesses b ON b.ID = o.BusinessID
WHERE o.UserID = :userId
AND o.BusinessID = :businessId
AND o.StatusID IN (1, 2, 3)

View file

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

View file

@ -70,12 +70,12 @@
o.Remarks,
o.SubmittedOn,
o.LastEditedOn,
sp.ServicePointName AS Name,
u.UserFirstName AS FirstName,
u.UserLastName AS LastName
sp.Name AS Name,
u.FirstName,
u.LastName
FROM Orders o
LEFT JOIN ServicePoints sp ON sp.ServicePointID = o.ServicePointID
LEFT JOIN Users u ON u.UserID = o.UserID
LEFT JOIN ServicePoints sp ON sp.ID = o.ServicePointID
LEFT JOIN Users u ON u.ID = 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.ServicePointName AS Name,
u.UserFirstName AS FirstName,
u.UserLastName AS LastName
sp.Name AS Name,
u.FirstName,
u.LastName
FROM Orders o
LEFT JOIN ServicePoints sp ON sp.ServicePointID = o.ServicePointID
LEFT JOIN Users u ON u.UserID = o.UserID
LEFT JOIN ServicePoints sp ON sp.ID = o.ServicePointID
LEFT JOIN Users u ON u.ID = o.UserID
WHERE #whereSQL#
ORDER BY o.SubmittedOn ASC, o.ID ASC
", params, { datasource = "payfrit" })>

View file

@ -191,9 +191,9 @@
o.LastEditedOn,
o.SubmittedOn,
o.ServicePointID,
COALESCE(b.BusinessDeliveryFlatFee, 0) AS BusinessDeliveryFee
COALESCE(b.DeliveryFlatFee, 0) AS BusinessDeliveryFee
FROM Orders o
LEFT JOIN Businesses b ON b.BusinessID = o.BusinessID
LEFT JOIN Businesses b ON b.ID = o.BusinessID
WHERE o.ID = ?
LIMIT 1
",

View file

@ -62,11 +62,11 @@
<!--- Get business delivery fee for display in cart --->
<cfset var qBusiness = queryExecute(
"SELECT BusinessDeliveryFlatFee FROM Businesses WHERE BusinessID = ? LIMIT 1",
"SELECT DeliveryFlatFee FROM Businesses WHERE ID = ? LIMIT 1",
[ { value = qOrder.BusinessID, cfsqltype = "cf_sql_integer" } ],
{ datasource = "payfrit" }
)>
<cfset var businessDeliveryFee = qBusiness.recordCount GT 0 ? qBusiness.BusinessDeliveryFlatFee : 0>
<cfset var businessDeliveryFee = qBusiness.recordCount GT 0 ? qBusiness.DeliveryFlatFee : 0>
<cfset out.Order = {
"OrderID": val(qOrder.ID),
@ -201,12 +201,12 @@
<cfset deliveryFee = 0>
<cfif OrderTypeID EQ 3>
<cfset qBiz = queryExecute(
"SELECT BusinessDeliveryFlatFee FROM Businesses WHERE BusinessID = ? LIMIT 1",
"SELECT DeliveryFlatFee FROM Businesses WHERE ID = ? LIMIT 1",
[ { value = qOrder.BusinessID, cfsqltype = "cf_sql_integer" } ],
{ datasource = "payfrit" }
)>
<cfif qBiz.recordCount GT 0>
<cfset deliveryFee = qBiz.BusinessDeliveryFlatFee>
<cfset deliveryFee = qBiz.DeliveryFlatFee>
</cfif>
</cfif>

View file

@ -24,12 +24,12 @@ if (!structKeyExists(request, "BusinessID") || !isNumeric(request.BusinessID) ||
try {
q = queryExecute("
SELECT
b.BusinessID AS ID,
b.BusinessName AS Name,
b.BusinessTaxRate AS TaxRate,
b.BusinessPhone AS Phone
b.ID,
b.Name,
b.TaxRate,
b.Phone
FROM Businesses b
WHERE b.BusinessID = :businessId
WHERE b.ID = :businessId
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });
@ -39,11 +39,11 @@ try {
// Get address from Addresses table
qAddr = queryExecute("
SELECT a.AddressLine1 AS Line1, a.AddressLine2 AS Line2, a.AddressCity AS City, a.AddressZIPCode AS ZIPCode, s.tt_StateAbbreviation AS State
SELECT a.Line1, a.Line2, a.City, a.ZIPCode, s.Abbreviation AS State
FROM Addresses a
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
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
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });
@ -62,7 +62,7 @@ try {
qUser = queryExecute("
SELECT UserContactNumber AS ContactNumber, UserEmailAddress AS EmailAddress
FROM Users
WHERE UserID = (SELECT BusinessUserID FROM Businesses WHERE BusinessID = :businessId)
WHERE ID = (SELECT UserID FROM Businesses WHERE ID = :businessId)
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });

View file

@ -45,17 +45,17 @@ try {
// Get businesses for this user (owner only)
q = queryExecute("
SELECT b.BusinessID, b.BusinessName
SELECT b.ID, b.Name
FROM Businesses b
WHERE b.BusinessUserID = :userID
ORDER BY b.BusinessName
WHERE b.UserID = :userID
ORDER BY b.Name
", { userID: userID }, { datasource: "payfrit" });
businesses = [];
for (row in q) {
arrayAppend(businesses, {
"BusinessID": row.BusinessID,
"Name": row.BusinessName
"BusinessID": row.ID,
"Name": row.Name
});
}

View file

@ -46,10 +46,10 @@ try {
e.UserID,
e.StatusID,
CAST(e.IsActive AS UNSIGNED) AS IsActive,
u.UserFirstName AS FirstName,
u.UserLastName AS LastName,
u.UserEmailAddress AS EmailAddress,
u.UserContactNumber AS ContactNumber,
u.FirstName,
u.LastName,
u.EmailAddress,
u.ContactNumber,
CASE e.StatusID
WHEN 0 THEN 'Pending'
WHEN 1 THEN 'Invited'
@ -58,9 +58,9 @@ try {
ELSE 'Unknown'
END AS StatusName
FROM Employees e
JOIN Users u ON e.UserID = u.UserID
JOIN Users u ON e.UserID = u.ID
WHERE e.BusinessID = ?
ORDER BY e.IsActive DESC, u.UserFirstName ASC
ORDER BY e.IsActive DESC, u.FirstName ASC
", [
{ value: businessId, cfsqltype: "cf_sql_integer" }
], { 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, "BusinessTaxRate = :taxRate");
arrayAppend(updates, "TaxRate = :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, "BusinessTaxRate = :taxRate");
arrayAppend(updates, "TaxRate = :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, "BusinessName = :businessName");
arrayAppend(updates, "Name = :businessName");
params.businessName = { value: left(trim(data.Name), 100), cfsqltype: "cf_sql_varchar" };
}
if (structKeyExists(data, "Phone")) {
arrayAppend(updates, "BusinessPhone = :phone");
arrayAppend(updates, "Phone = :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 BusinessID = :businessId";
sql = "UPDATE Businesses SET " & arrayToList(updates, ", ") & " WHERE ID = :businessId";
queryExecute(sql, params, { datasource: "payfrit" });
}
// Update address in Addresses table if needed
if (hasAddressUpdate) {
qExistingAddr = queryExecute("
SELECT AddressID AS ID FROM Addresses
WHERE (AddressBusinessID = :businessId OR AddressID = (SELECT BusinessAddressID FROM Businesses WHERE BusinessID = :businessId))
AND AddressIsDeleted = 0
SELECT ID FROM Addresses
WHERE (BusinessID = :businessId OR ID = (SELECT AddressID FROM Businesses WHERE ID = :businessId))
AND IsDeleted = 0
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });
@ -115,19 +115,19 @@ try {
addrUpdates = [];
addrParams = { addrId: qExistingAddr.ID };
if (structKeyExists(addrFields, "Line1")) {
arrayAppend(addrUpdates, "AddressLine1 = :line1");
arrayAppend(addrUpdates, "Line1 = :line1");
addrParams.line1 = { value: addrFields.Line1, cfsqltype: "cf_sql_varchar" };
}
if (structKeyExists(addrFields, "City")) {
arrayAppend(addrUpdates, "AddressCity = :city");
arrayAppend(addrUpdates, "City = :city");
addrParams.city = { value: addrFields.City, cfsqltype: "cf_sql_varchar" };
}
if (structKeyExists(addrFields, "ZIPCode")) {
arrayAppend(addrUpdates, "AddressZIPCode = :zip");
arrayAppend(addrUpdates, "ZIPCode = :zip");
addrParams.zip = { value: addrFields.ZIPCode, cfsqltype: "cf_sql_varchar" };
}
if (arrayLen(addrUpdates) > 0) {
queryExecute("UPDATE Addresses SET " & arrayToList(addrUpdates, ", ") & " WHERE AddressID = :addrId",
queryExecute("UPDATE Addresses SET " & arrayToList(addrUpdates, ", ") & " WHERE ID = :addrId",
addrParams, { datasource: "payfrit" });
}
}
@ -135,18 +135,18 @@ try {
// Return updated settings
q = queryExecute("
SELECT b.BusinessID AS ID, b.BusinessName AS Name, b.BusinessTaxRate AS TaxRate, b.BusinessPhone AS Phone
SELECT b.ID, b.Name, b.TaxRate, b.Phone
FROM Businesses b
WHERE b.BusinessID = :businessId
WHERE b.ID = :businessId
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });
qAddr = queryExecute("
SELECT a.AddressLine1 AS Line1, a.AddressCity AS City, a.AddressZIPCode AS ZIPCode, s.tt_StateAbbreviation AS State
SELECT a.Line1, a.City, a.ZIPCode, s.Abbreviation AS State
FROM Addresses a
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
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
LIMIT 1
", { businessId: request.BusinessID }, { datasource: "payfrit" });

View file

@ -69,7 +69,7 @@ try {
// Check if admin rating already exists for this task
qExisting = queryExecute("
SELECT TaskRatingID FROM TaskRatings
SELECT ID FROM TaskRatings
WHERE TaskID = :taskID
AND Direction = 'admin_rates_worker'
LIMIT 1

View file

@ -32,18 +32,18 @@ try {
// and no admin rating exists yet
qTasks = queryExecute("
SELECT t.ID, t.Title, t.CompletedOn, t.ClaimedByUserID, t.OrderID,
u.UserFirstName AS WorkerFirstName, u.UserLastName AS WorkerLastName,
u.FirstName AS WorkerFirstName, u.LastName AS WorkerLastName,
o.ID, o.UserID,
cu.UserFirstName AS CustomerFirstName, cu.UserLastName AS CustomerLastName,
sp.ServicePointName AS Name,
cu.FirstName AS CustomerFirstName, cu.LastName AS CustomerLastName,
sp.Name AS Name,
(SELECT COUNT(*) FROM TaskRatings r
WHERE r.TaskID = t.ID
AND r.Direction = 'admin_rates_worker') AS HasAdminRating
FROM Tasks t
INNER JOIN Users u ON u.UserID = t.ClaimedByUserID
INNER JOIN Users u ON u.ID = t.ClaimedByUserID
LEFT JOIN Orders o ON o.ID = t.OrderID
LEFT JOIN Users cu ON cu.UserID = o.UserID
LEFT JOIN ServicePoints sp ON sp.ServicePointID = o.ServicePointID
LEFT JOIN Users cu ON cu.ID = o.UserID
LEFT JOIN ServicePoints sp ON sp.ID = o.ServicePointID
WHERE t.BusinessID = :businessID
AND t.CompletedOn IS NOT NULL
AND t.CompletedOn > DATE_SUB(NOW(), INTERVAL 7 DAY)

View file

@ -45,24 +45,24 @@ try {
// Match by name (case-insensitive) OR by address components
qDuplicates = queryExecute("
SELECT DISTINCT
b.BusinessID,
b.BusinessName AS Name,
a.AddressLine1 AS Line1,
a.AddressCity AS City,
s.tt_StateAbbreviation as AddressState,
a.AddressZIPCode AS ZIPCode
b.ID AS BusinessID,
b.Name AS Name,
a.Line1,
a.City,
s.Abbreviation as AddressState,
a.ZIPCode
FROM Businesses b
LEFT JOIN Addresses a ON a.AddressBusinessID = b.BusinessID
LEFT JOIN tt_States s ON s.tt_StateID = a.AddressStateID
LEFT JOIN Addresses a ON a.BusinessID = b.ID
LEFT JOIN tt_States s ON s.ID = a.StateID
WHERE
LOWER(b.BusinessName) = LOWER(:bizName)
LOWER(b.Name) = LOWER(:bizName)
OR (
LOWER(a.AddressLine1) = LOWER(:addressLine1)
AND LOWER(a.AddressCity) = LOWER(:city)
AND a.AddressLine1 != ''
AND a.AddressCity != ''
LOWER(a.Line1) = LOWER(:addressLine1)
AND LOWER(a.City) = LOWER(:city)
AND a.Line1 != ''
AND a.City != ''
)
ORDER BY b.BusinessName
ORDER BY b.Name
", {
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 tt_StateID AS ID FROM tt_States WHERE tt_StateAbbreviation = :abbr
SELECT ID FROM tt_States WHERE Abbreviation = :abbr
", { abbr: uCase(state) }, { datasource: "payfrit" });
response.steps.append("State lookup for '" & uCase(state) & "' found " & qState.recordCount & " records");
@ -82,7 +82,7 @@ try {
}
queryExecute("
INSERT INTO Addresses (AddressLine1, AddressCity, AddressStateID, AddressZIPCode, AddressUserID, AddressTypeID, AddressAddedOn)
INSERT INTO Addresses (Line1, City, StateID, ZIPCode, UserID, AddressTypeID, AddedOn)
VALUES (:line1, :city, :stateID, :zip, :userID, :typeID, NOW())
", {
line1: len(addressLine1) ? addressLine1 : "Address pending",
@ -103,7 +103,7 @@ try {
// Create new business with address link and phone
queryExecute("
INSERT INTO Businesses (BusinessName, BusinessPhone, BusinessUserID, BusinessAddressID, BusinessDeliveryZipCodes, BusinessCommunityMealType, BusinessTaxRate, BusinessAddedOn)
INSERT INTO Businesses (Name, Phone, UserID, AddressID, DeliveryZIPCodes, BusinessCommunityMealType, TaxRate, BusinessAddedOn)
VALUES (:name, :phone, :userId, :addressId, :deliveryZips, :communityMealType, :taxRate, NOW())
", {
name: bizName,
@ -121,7 +121,7 @@ try {
// Update address with business ID link
queryExecute("
UPDATE Addresses SET AddressBusinessID = :businessID WHERE AddressID = :addressID
UPDATE Addresses SET BusinessID = :businessID WHERE ID = :addressID
", {
businessID: businessId,
addressID: addressId
@ -188,7 +188,7 @@ try {
} else {
// Verify existing business exists
qBiz = queryExecute("
SELECT BusinessID, BusinessName FROM Businesses WHERE BusinessID = :id
SELECT ID, Name AS BusinessName FROM Businesses WHERE ID = :id
", { id: businessId }, { datasource: "payfrit" });
if (qBiz.recordCount == 0) {
@ -228,7 +228,7 @@ try {
", { bizID: businessId, name: tmplName }, { datasource: "payfrit" });
if (qTmpl.recordCount > 0) {
templateItemID = qTmpl.ItemID;
templateItemID = qTmpl.ID;
response.steps.append("Template exists: " & tmplName & " (ID: " & templateItemID & ")");
} else {
// Create template as Item with CategoryID=0 to mark as template
@ -399,7 +399,7 @@ try {
", { bizID: businessId, name: catName, menuID: menuID }, { datasource: "payfrit" });
if (qCat.recordCount > 0) {
categoryID = qCat.CategoryID;
categoryID = qCat.ID;
response.steps.append("Category exists: " & catName & " (ID: " & categoryID & ")");
} else {
// Create category in Categories table with MenuID
@ -497,7 +497,7 @@ try {
Description = :desc,
Price = :price,
SortOrder = :sortOrder
WHERE ItemID = :id
WHERE ID = :id
", {
desc: itemDesc,
price: itemPrice,

View file

@ -62,7 +62,7 @@ try {
// Get business Stripe account
qBusiness = queryExecute("
SELECT BusinessStripeAccountID, BusinessStripeOnboardingComplete, BusinessName
SELECT StripeAccountID AS BusinessStripeAccountID, StripeOnboardingComplete AS BusinessStripeOnboardingComplete, Name AS BusinessName
FROM Businesses
WHERE BusinessID = :businessID
", { businessID: businessID }, { datasource: "payfrit" });

View file

@ -32,7 +32,7 @@ try {
// Check if business already has a Stripe account
qBusiness = queryExecute("
SELECT BusinessStripeAccountID, BusinessName
SELECT StripeAccountID AS BusinessStripeAccountID, Name AS BusinessName
FROM Businesses
WHERE BusinessID = :businessID
", { businessID: businessID });
@ -73,7 +73,7 @@ try {
// Save to database
queryExecute("
UPDATE Businesses
SET BusinessStripeAccountID = :stripeAccountID,
SET StripeAccountID = :stripeAccountID,
BusinessStripeOnboardingStarted = NOW()
WHERE BusinessID = :businessID
", {

View file

@ -23,9 +23,9 @@ try {
// Get business Stripe info
qBusiness = queryExecute("
SELECT BusinessStripeAccountID, BusinessStripeOnboardingComplete
SELECT StripeAccountID AS BusinessStripeAccountID, StripeOnboardingComplete AS BusinessStripeOnboardingComplete
FROM Businesses
WHERE BusinessID = :businessID
WHERE ID = :businessID
", { businessID: businessID });
if (qBusiness.recordCount == 0) {
@ -76,8 +76,8 @@ try {
if (!qBusiness.BusinessStripeOnboardingComplete) {
queryExecute("
UPDATE Businesses
SET BusinessStripeOnboardingComplete = 1
WHERE BusinessID = :businessID
SET StripeOnboardingComplete = 1
WHERE ID = :businessID
", { businessID: businessID });
}
} else if (detailsSubmitted) {

View file

@ -54,17 +54,17 @@
o.ServicePointID,
o.Remarks,
o.SubmittedOn,
sp.ServicePointName AS ServicePointName,
sp.ServicePointTypeID AS ServicePointTypeID,
u.UserID AS CustomerUserID,
u.UserFirstName AS FirstName,
u.UserLastName AS LastName,
u.UserContactNumber AS ContactNumber
sp.Name AS ServicePointName,
sp.TypeID AS ServicePointTypeID,
u.ID AS CustomerUserID,
u.FirstName,
u.LastName,
u.ContactNumber
FROM Tasks t
LEFT JOIN TaskCategories tc ON tc.ID = t.CategoryID
LEFT JOIN Orders o ON o.ID = t.OrderID
LEFT JOIN ServicePoints sp ON sp.ServicePointID = o.ServicePointID
LEFT JOIN Users u ON u.UserID = o.UserID
LEFT JOIN ServicePoints sp ON sp.ID = o.ServicePointID
LEFT JOIN Users u ON u.ID = o.UserID
WHERE t.ID = ?
", [ { value = TaskID, cfsqltype = "cf_sql_integer" } ], { datasource = "payfrit" })>
@ -129,7 +129,7 @@
SELECT b.UUID
FROM ServicePoints sp_link
INNER JOIN Beacons b ON b.ID = sp_link.BeaconID
WHERE sp_link.ServicePointID = ?
WHERE sp_link.ID = ?
AND b.IsActive = 1
LIMIT 1
", [ { value = qTask.ServicePointID, cfsqltype = "cf_sql_integer" } ], { datasource = "payfrit" })>

View file

@ -82,11 +82,11 @@
tt.Name AS TaskTypeName,
tt.Icon AS TaskTypeIcon,
tt.Color AS TaskTypeColor,
b.BusinessName AS BusinessName
b.Name AS BusinessName
FROM Tasks t
LEFT JOIN TaskCategories tc ON tc.ID = t.CategoryID
LEFT JOIN tt_TaskTypes tt ON tt.ID = t.TaskTypeID
LEFT JOIN Businesses b ON b.BusinessID = t.BusinessID
LEFT JOIN Businesses b ON b.ID = t.BusinessID
WHERE #whereSQL#
ORDER BY t.ClaimedOn DESC
", params, { datasource = "payfrit" })>

View file

@ -38,22 +38,22 @@ try {
qUsers = queryExecute("
SELECT
u.UserID AS ID,
u.UserFirstName AS FirstName,
u.UserLastName AS LastName,
u.UserEmailAddress AS EmailAddress,
u.UserContactNumber AS ContactNumber,
u.UserAvatarPath
u.ID,
u.FirstName,
u.LastName,
u.EmailAddress,
u.ContactNumber,
u.ImageExtension
FROM Users u
WHERE u.UserID != :currentUserId
WHERE u.ID != :currentUserId
AND (
u.UserContactNumber LIKE :searchTerm
OR u.UserEmailAddress LIKE :searchTerm
OR u.UserFirstName LIKE :searchTerm
OR u.UserLastName LIKE :searchTerm
OR CONCAT(u.UserFirstName, ' ', u.UserLastName) LIKE :searchTerm
u.ContactNumber LIKE :searchTerm
OR u.EmailAddress LIKE :searchTerm
OR u.FirstName LIKE :searchTerm
OR u.LastName LIKE :searchTerm
OR CONCAT(u.FirstName, ' ', u.LastName) LIKE :searchTerm
)
ORDER BY u.UserFirstName, u.UserLastName
ORDER BY u.FirstName, u.LastName
LIMIT 10
", {
currentUserId: { value: currentUserId, cfsqltype: "cf_sql_integer" },
@ -69,11 +69,11 @@ try {
}
arrayAppend(users, {
"UserID": user.UserID,
"UserID": user.ID,
"Name": trim(user.FirstName & " " & user.LastName),
"Email": user.EmailAddress,
"Phone": maskedPhone,
"AvatarUrl": len(trim(user.UserAvatarPath)) ? "https://biz.payfrit.com/uploads/" & user.UserAvatarPath : ""
"AvatarUrl": len(trim(user.ImageExtension)) ? "https://biz.payfrit.com/uploads/users/" & user.ID & "." & user.ImageExtension : ""
});
}

View file

@ -40,13 +40,13 @@
e.BusinessID,
MIN(e.StatusID) AS StatusID,
MAX(e.IsActive) AS IsActive,
b.BusinessName AS Name,
b.Name AS Name,
(SELECT COUNT(*) FROM Tasks t WHERE t.BusinessID = e.BusinessID AND t.ClaimedByUserID = 0) AS PendingTaskCount
FROM Employees e
INNER JOIN Businesses b ON b.BusinessID = e.BusinessID
INNER JOIN Businesses b ON b.ID = e.BusinessID
WHERE e.UserID = ? AND e.IsActive = b'1'
GROUP BY e.BusinessID, b.BusinessName
ORDER BY b.BusinessName ASC
GROUP BY e.BusinessID, b.Name
ORDER BY b.Name ASC
", [ { value = UserID, cfsqltype = "cf_sql_integer" } ], { datasource = "payfrit" })>
<cfset businesses = []>

View file

@ -6,7 +6,7 @@
<cfset request.Userid = 0>
<cfquery name="get_user" datasource="#application.datasource#">
SELECT ID AS UserID, EmailAddress
SELECT ID, EmailAddress
FROM Users
WHERE UUID = '#url.UUID#'
AND
@ -49,7 +49,7 @@
<cfelse>
<cfquery name="get_confirmed_customer" datasource="#application.datasource#">
SELECT ID AS UserID, ContactNumber
SELECT ID, ContactNumber
FROM Users
WHERE UUID = '#url.UUID#'
AND
@ -63,7 +63,7 @@
<cfquery name="update_User" datasource="#application.datasource#">
UPDATE Users
SET IsEmailVerified = 1
WHERE ID = '#get_confirmed_customer.UserID#'
WHERE ID = '#get_confirmed_customer.ID#'
</cfquery>
your email was confirmed but we still need to verify your mobile number!<br><br>
@ -73,7 +73,7 @@
<cfquery name="update_OPT_confirm" datasource="#application.datasource#">
UPDATE Users
SET MobileVerifyCode = '#customer_OPT_confirm#'
WHERE ID = #get_confirmed_customer.UserID#
WHERE ID = #get_confirmed_customer.ID#
</cfquery>
we sent a six-digit code to <cfoutput>#get_confirmed_customer.ContactNumber#</cfoutput>, please input that code here:<br><br>