This repository has been archived on 2026-03-21. You can view files and clone it, but cannot push or open issues or pull requests.
payfrit-biz/api/admin/updateBeaconMapping.cfm
John Mizerek c62895e464 Fix prefixed column names in admin, beacon, task, assignment, chat, rating APIs
Updated all remaining SQL queries to use correct prefixed column names for
ServicePoints, Users, Businesses, Addresses, tt_States, tt_Days, and Hours
tables across 23 admin/infrastructure API files.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 17:55:16 -08:00

67 lines
2.1 KiB
Text

<cfsetting showdebugoutput="false">
<cfsetting enablecfoutputonly="true">
<cfcontent type="application/json; charset=utf-8" reset="true">
<cfscript>
// Update beacon mapping via join table. Owner (Beacons.BusinessID) is NOT changed.
beaconId = 2;
oldBusinessId = 37; // previous mapping
newBusinessId = 17;
// Remove old mapping
queryExecute("
DELETE FROM lt_BeaconsID_BusinessesID
WHERE BeaconID = :beaconId AND BusinessID = :oldBizId
", { beaconId: beaconId, oldBizId: oldBusinessId }, { datasource: "payfrit" });
// Add new mapping
queryExecute("
INSERT INTO lt_BeaconsID_BusinessesID (BeaconID, BusinessID)
VALUES (:beaconId, :newBizId)
ON DUPLICATE KEY UPDATE ID = ID
", { beaconId: beaconId, newBizId: newBusinessId }, { datasource: "payfrit" });
// Clear ServicePoints.BeaconID for old business where this beacon was assigned
queryExecute("
UPDATE ServicePoints
SET BeaconID = NULL, AssignedByUserID = NULL
WHERE BeaconID = :beaconId AND ServicePointBusinessID = :oldBizId
", { beaconId: beaconId, oldBizId: oldBusinessId }, { datasource: "payfrit" });
// Get current state
q = queryExecute("
SELECT
b.ID AS BeaconID,
b.UUID,
b.Name AS BeaconName,
b.BusinessID AS BeaconBusinessID,
sp.ServicePointID AS ServicePointID,
sp.ServicePointName AS ServicePointName,
sp.ServicePointBusinessID AS ServicePointBusinessID,
biz.BusinessName AS BusinessName
FROM Beacons b
LEFT JOIN ServicePoints sp ON sp.BeaconID = b.ID
LEFT JOIN Businesses biz ON biz.BusinessID = b.BusinessID
WHERE b.IsActive = 1
ORDER BY b.ID
", {}, { datasource: "payfrit" });
rows = [];
for (row in q) {
arrayAppend(rows, {
"BeaconID": row.BeaconID,
"UUID": row.UUID,
"BeaconName": row.BeaconName,
"BeaconBusinessID": row.BeaconBusinessID,
"BusinessName": row.BusinessName,
"ServicePointID": row.ServicePointID ?: 0,
"ServicePointName": row.ServicePointName ?: ""
});
}
writeOutput(serializeJSON({
"OK": true,
"MESSAGE": "Updated beacon #beaconId# to BusinessID #newBusinessId#",
"BEACONS": rows
}));
</cfscript>