Add IsInvertedGroup + RemovedDefaults to task detail API
Works app can now display inverted modifier groups with "NO" prefix for removed defaults, matching KDS behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
57d31c0428
commit
588e6ef26d
1 changed files with 32 additions and 2 deletions
|
|
@ -167,7 +167,8 @@
|
||||||
i.Name AS ItemName,
|
i.Name AS ItemName,
|
||||||
i.ParentItemID,
|
i.ParentItemID,
|
||||||
i.Price AS ItemPrice,
|
i.Price AS ItemPrice,
|
||||||
i.IsCheckedByDefault
|
i.IsCheckedByDefault,
|
||||||
|
i.IsInvertedGroup
|
||||||
FROM OrderLineItems oli
|
FROM OrderLineItems oli
|
||||||
INNER JOIN Items i ON i.ID = oli.ItemID
|
INNER JOIN Items i ON i.ID = oli.ItemID
|
||||||
WHERE oli.OrderID = ?
|
WHERE oli.OrderID = ?
|
||||||
|
|
@ -186,10 +187,39 @@
|
||||||
"ItemPrice": qLineItems.LineItemPrice,
|
"ItemPrice": qLineItems.LineItemPrice,
|
||||||
"Quantity": qLineItems.Quantity,
|
"Quantity": qLineItems.Quantity,
|
||||||
"Remark": qLineItems.Remark,
|
"Remark": qLineItems.Remark,
|
||||||
"IsModifier": qLineItems.ParentOrderLineItemID GT 0
|
"IsModifier": qLineItems.ParentOrderLineItemID GT 0,
|
||||||
|
"IsCheckedByDefault": qLineItems.IsCheckedByDefault,
|
||||||
|
"IsInvertedGroup": qLineItems.IsInvertedGroup
|
||||||
})>
|
})>
|
||||||
</cfloop>
|
</cfloop>
|
||||||
|
|
||||||
|
<!--- For inverted modifier groups, compute removed defaults --->
|
||||||
|
<cfloop array="#result.LineItems#" index="li">
|
||||||
|
<cfif li.IsInvertedGroup>
|
||||||
|
<cfset qRemovedDefaults = queryExecute("
|
||||||
|
SELECT i.Name
|
||||||
|
FROM Items i
|
||||||
|
WHERE i.ParentItemID = ?
|
||||||
|
AND i.IsActive = 1
|
||||||
|
AND i.IsCheckedByDefault = b'1'
|
||||||
|
AND i.ID NOT IN (
|
||||||
|
SELECT oli2.ItemID FROM OrderLineItems oli2
|
||||||
|
WHERE oli2.OrderID = ? AND oli2.ParentOrderLineItemID = ? AND oli2.IsDeleted = b'0'
|
||||||
|
)
|
||||||
|
ORDER BY i.SortOrder
|
||||||
|
", [
|
||||||
|
{ value = li.ItemID, cfsqltype = "cf_sql_integer" },
|
||||||
|
{ value = qTask.OrderID, cfsqltype = "cf_sql_integer" },
|
||||||
|
{ value = li.LineItemID, cfsqltype = "cf_sql_integer" }
|
||||||
|
], { datasource = "payfrit" })>
|
||||||
|
<cfset removedNames = []>
|
||||||
|
<cfloop query="qRemovedDefaults">
|
||||||
|
<cfset arrayAppend(removedNames, qRemovedDefaults.Name)>
|
||||||
|
</cfloop>
|
||||||
|
<cfset li["RemovedDefaults"] = removedNames>
|
||||||
|
</cfif>
|
||||||
|
</cfloop>
|
||||||
|
|
||||||
<!--- Calculate order total: subtotal + tax + tip + delivery (if delivery) + platform fee --->
|
<!--- Calculate order total: subtotal + tax + tip + delivery (if delivery) + platform fee --->
|
||||||
<cfset taxAmount = subtotal * val(qTask.TaxRate)>
|
<cfset taxAmount = subtotal * val(qTask.TaxRate)>
|
||||||
<cfset tipAmount = val(qTask.TipAmount)>
|
<cfset tipAmount = val(qTask.TipAmount)>
|
||||||
|
|
|
||||||
Reference in a new issue