From e66b2def999b6817190f65d0ce0f50a705217440 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Mon, 13 Mar 2023 11:02:22 -0400 Subject: [PATCH] APIv4 - Autocomplete ContributionRecur entity --- .../ContributionAutocompleteProvider.php | 2 + .../ContributionRecurAutocompleteProvider.php | 88 +++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php diff --git a/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php b/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php index 0e05a824d4..916a6c56d6 100644 --- a/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php +++ b/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php @@ -38,6 +38,7 @@ class ContributionAutocompleteProvider extends \Civi\Core\Service\AutoService im 'total_amount', 'receive_date', 'financial_type_id:label', + 'contribution_status_id:label', ], 'orderBy' => [], 'where' => [], @@ -76,6 +77,7 @@ class ContributionAutocompleteProvider extends \Civi\Core\Service\AutoService im [ 'type' => 'field', 'key' => 'receive_date', + 'rewrite' => '[contribution_status_id:label] [receive_date]', ], ], ]; diff --git a/Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php b/Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php new file mode 100644 index 0000000000..4f845248cb --- /dev/null +++ b/Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php @@ -0,0 +1,88 @@ +savedSearch) || $e->savedSearch['api_entity'] !== 'ContributionRecur') { + return; + } + $e->savedSearch['api_params'] = [ + 'version' => 4, + 'select' => [ + 'id', + 'contact_id.display_name', + 'frequency_unit:label', + 'frequency_interval', + 'amount', + 'start_date', + 'financial_type_id:label', + 'contribution_status_id:label', + ], + 'orderBy' => [], + 'where' => [], + 'groupBy' => [], + 'join' => [], + 'having' => [], + ]; + } + + /** + * Provide default SearchDisplay for Contribution autocompletes + * + * @param \Civi\Core\Event\GenericHookEvent $e + */ + public static function on_civi_search_defaultDisplay(GenericHookEvent $e) { + if ($e->display['settings'] || $e->display['type'] !== 'autocomplete' || $e->savedSearch['api_entity'] !== 'ContributionRecur') { + return; + } + $e->display['settings'] = [ + 'sort' => [ + ['contact_id.sort_name', 'ASC'], + ['amount', 'ASC'], + ['start_date', 'DESC'], + ], + 'columns' => [ + [ + 'type' => 'field', + 'key' => 'contact_id.display_name', + 'rewrite' => '[contact_id.display_name] - [amount]', + ], + [ + 'type' => 'field', + 'key' => 'financial_type_id:label', + 'rewrite' => '#[id] [financial_type_id:label]', + ], + [ + 'type' => 'field', + 'key' => 'frequency_unit:label', + 'rewrite' => ts('Every %1 %2 since %3', [1 => '[frequency_interval]', 2 => '[frequency_unit:label]', '[start_date]']), + ], + ], + ]; + } + +} -- 2.25.1