diff --git a/CRM/Banking/Matcher/Context.php b/CRM/Banking/Matcher/Context.php index d245f24a..6e67d7cb 100755 --- a/CRM/Banking/Matcher/Context.php +++ b/CRM/Banking/Matcher/Context.php @@ -260,19 +260,14 @@ public function filterDeletedContacts(array $contact2probability): array { /** @var array|null $filtered_list */ $filtered_list = $this->getCachedEntry($cache_key); if ($filtered_list === NULL) { - $filtered_list = []; - /** @var array{values: list} $result */ - $result = civicrm_api3('Contact', 'get', [ - 'id' => ['IN' => array_keys($contact2probability)], - 'is_deleted' => 0, - 'return' => 'id', - 'sequential' => 1, - 'options' => ['limit' => 0], - ]); - foreach ($result['values'] as $contact) { - $contactId = (int) $contact['id']; - $filtered_list[$contactId] = $contact2probability[$contactId]; - } + $notDeleted = \Civi\Api4\Contact::get(FALSE) + ->addSelect('id') + ->addWhere('id', 'IN', array_keys($contact2probability)) + ->addWhere('is_deleted', '=', FALSE) + ->execute() + ->column('id'); + + $filtered_list = array_filter($contact2probability, fn ($id) => in_array($id, $notDeleted), ARRAY_FILTER_USE_KEY); $this->setCachedEntry($cache_key, $filtered_list); } return $filtered_list;