Only quickTasks/ and scheduledTasks/ subdirectories remain tracked since those are actively used by the portal. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
67 lines
2.1 KiB
Text
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 BusinessID = :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.ID AS ServicePointID,
|
|
sp.Name AS ServicePointName,
|
|
sp.BusinessID AS ServicePointBusinessID,
|
|
biz.Name AS BusinessName
|
|
FROM Beacons b
|
|
LEFT JOIN ServicePoints sp ON sp.BeaconID = b.ID
|
|
LEFT JOIN Businesses biz ON biz.ID = 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>
|