|
13 | 13 | use Civi\Api4\Group;
|
14 | 14 | use Civi\Api4\Query\Api4SelectQuery;
|
15 | 15 | use Civi\Api4\Query\SqlExpression;
|
| 16 | +use Civi\Api4\SavedSearch; |
16 | 17 |
|
17 | 18 | /**
|
18 | 19 | *
|
@@ -796,18 +797,33 @@ private static function updateCacheFromTempTable(CRM_Utils_SQL_TempTable $groupC
|
796 | 797 | */
|
797 | 798 | protected static function insertGroupContactsIntoTempTable(string $tempTableName, int $groupID, ?int $savedSearchID, ?string $children): void {
|
798 | 799 | if ($savedSearchID) {
|
799 |
| - $ssParams = CRM_Contact_BAO_SavedSearch::getSearchParams($savedSearchID); |
| 800 | + $savedSearch = SavedSearch::get(FALSE) |
| 801 | + ->addWhere('id', '=', $savedSearchID) |
| 802 | + ->execute() |
| 803 | + ->first(); |
800 | 804 |
|
801 | 805 | $excludeClause = "NOT IN (
|
802 | 806 | SELECT contact_id FROM civicrm_group_contact
|
803 | 807 | WHERE civicrm_group_contact.status = 'Removed'
|
804 | 808 | AND civicrm_group_contact.group_id = $groupID )";
|
805 | 809 | $addSelect = "$groupID AS group_id";
|
806 | 810 |
|
807 |
| - if (!empty($ssParams['api_entity'])) { |
808 |
| - $sql = self::getApiSQL($ssParams, $addSelect, $excludeClause); |
| 811 | + if (!empty($savedSearch['api_entity'])) { |
| 812 | + $sql = self::getApiSQL($savedSearch, $addSelect, $excludeClause); |
809 | 813 | }
|
810 | 814 | else {
|
| 815 | + $fv = CRM_Contact_BAO_SavedSearch::getFormValues($savedSearchID); |
| 816 | + //check if the saved search has mapping id |
| 817 | + if ($savedSearch['mapping_id']) { |
| 818 | + $ssParams = CRM_Core_BAO_Mapping::formattedFields($fv); |
| 819 | + } |
| 820 | + elseif (!empty($fv['customSearchID'])) { |
| 821 | + $ssParams = $fv; |
| 822 | + } |
| 823 | + else { |
| 824 | + $ssParams = CRM_Contact_BAO_Query::convertFormValues($fv); |
| 825 | + } |
| 826 | + |
811 | 827 | // CRM-7021 rectify params to what proximity search expects if there is a value for prox_distance
|
812 | 828 | if (!empty($ssParams)) {
|
813 | 829 | CRM_Contact_BAO_ProximityQuery::fixInputParams($ssParams);
|
|
0 commit comments