Fix FK references on OrderLineItems incorrectly changed to ID

- setLineItem.cfm: WHERE ID→WHERE OrderID on 3 OrderLineItems queries
  that filter by order (FK), not by line item PK
- setLineItem.cfm: qKids.ItemID→qKids.ID, qTemplateKids.ItemID→
  qTemplateKids.ID (query only selects ID column from Items)
- abandonOrder.cfm: DELETE FROM OrderLineItems WHERE ID→WHERE OrderID
  (was deleting one line item by PK instead of all items for the order)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
John Mizerek 2026-01-30 23:30:10 -08:00
parent 8dff081407
commit 94ee89d1f3
2 changed files with 6 additions and 6 deletions

View file

@ -52,7 +52,7 @@
<!--- Delete line items --->
<cfset queryExecute(
"DELETE FROM OrderLineItems WHERE ID = ?",
"DELETE FROM OrderLineItems WHERE OrderID = ?",
[{ value = OrderID, cfsqltype = "cf_sql_integer" }],
{ datasource = "payfrit" }
)>

View file

@ -82,13 +82,13 @@
<!--- Process direct children --->
<cfloop query="qKids">
<cfset arrayAppend(request.attachDebug, " -> direct child: ItemID=#qKids.ID#")>
<cfset processDefaultChild(arguments.OrderID, arguments.ParentLineItemID, qKids.ItemID, qKids.Price)>
<cfset processDefaultChild(arguments.OrderID, arguments.ParentLineItemID, qKids.ID, qKids.Price)>
</cfloop>
<!--- Process template children --->
<cfloop query="qTemplateKids">
<cfset arrayAppend(request.attachDebug, " -> template child: ItemID=#qTemplateKids.ID#")>
<cfset processDefaultChild(arguments.OrderID, arguments.ParentLineItemID, qTemplateKids.ItemID, qTemplateKids.Price)>
<cfset processDefaultChild(arguments.OrderID, arguments.ParentLineItemID, qTemplateKids.ID, qTemplateKids.Price)>
</cfloop>
</cffunction>
@ -103,7 +103,7 @@
"
SELECT ID
FROM OrderLineItems
WHERE ID = ?
WHERE OrderID = ?
AND ParentOrderLineItemID = ?
AND ItemID = ?
LIMIT 1
@ -375,7 +375,7 @@
"
UPDATE OrderLineItems
SET IsDeleted = b'1'
WHERE ID = ?
WHERE OrderID = ?
AND ParentOrderLineItemID = ?
AND ItemID != ?
AND IsDeleted = b'0'
@ -401,7 +401,7 @@
"
SELECT ID
FROM OrderLineItems
WHERE ID = ?
WHERE OrderID = ?
AND ParentOrderLineItemID = ?
AND ItemID = ?
LIMIT 1