From dbe0ae0a360b9b35606432b30f7d842fd21d80c2 Mon Sep 17 00:00:00 2001 From: Erawat Chamanont Date: Mon, 11 Sep 2023 14:11:27 +0100 Subject: [PATCH] BTHAB-180: Only perform delete if id line item is not empty --- Civi/Api4/Action/CaseSalesOrder/SalesOrderSaveAction.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Civi/Api4/Action/CaseSalesOrder/SalesOrderSaveAction.php b/Civi/Api4/Action/CaseSalesOrder/SalesOrderSaveAction.php index df4dadade..6195297fe 100644 --- a/Civi/Api4/Action/CaseSalesOrder/SalesOrderSaveAction.php +++ b/Civi/Api4/Action/CaseSalesOrder/SalesOrderSaveAction.php @@ -2,12 +2,12 @@ namespace Civi\Api4\Action\CaseSalesOrder; -use CRM_Core_Transaction; -use Civi\Api4\Generic\Result; use Civi\Api4\CaseSalesOrderLine; use Civi\Api4\Generic\AbstractSaveAction; +use Civi\Api4\Generic\Result; use Civi\Api4\Generic\Traits\DAOActionTrait; use CRM_Civicase_BAO_CaseSalesOrder as CaseSalesOrderBAO; +use CRM_Core_Transaction; /** * {@inheritDoc} @@ -87,6 +87,10 @@ public function removeStaleLineItems(array $salesOrder) { $lineItemsInUse = array_column($salesOrder['items'], 'id'); + if (empty($lineItemsInUse)) { + return; + } + CaseSalesOrderLine::delete() ->addWhere('sales_order_id', '=', $salesOrder['id']) ->addWhere('id', 'NOT IN', $lineItemsInUse)