From 37bc03a58f001fe452515e66ff85288ebb391b73 Mon Sep 17 00:00:00 2001 From: Civiware Solutions Date: Tue, 26 Mar 2019 21:51:17 +0000 Subject: [PATCH] Fixed code to support contribution search for soft credit filter --- CRM/SoftCredit/SoftCreditQueryObject.php | 23 ++++++++----------- softcreditcustomfields.php | 18 +++++++++++++++ .../Form/Search/SoftCredit-Search.tpl | 11 +++++++++ 3 files changed, 39 insertions(+), 13 deletions(-) diff --git a/CRM/SoftCredit/SoftCreditQueryObject.php b/CRM/SoftCredit/SoftCreditQueryObject.php index 98a8397..a6f049a 100644 --- a/CRM/SoftCredit/SoftCreditQueryObject.php +++ b/CRM/SoftCredit/SoftCreditQueryObject.php @@ -20,18 +20,16 @@ class CRM_SoftCredit_SoftCreditQueryObject extends CRM_Contact_BAO_Query_Interfa * */ public function where(&$query) { - if (empty($query->_paramLookup['soft_credit_name'])) { - return; - } - if (!in_array(CRM_Contribute_BAO_Query::$_contribOrSoftCredit, array("only_scredits", "both_related", "both"))) { - return; - } - list($name, $op, $value, $grouping, $wildcard) = reset($query->_paramLookup['soft_credit_name']); - if ($value) { - $query->_where[$grouping][] = "civicrm_contact_creditee.sort_name LIKE '%{$value}%'"; - $query->_whereTables['civicrm_contribution_soft_creditee_contact'] = 1; - $query->_tables['civicrm_contribution_soft_creditee_contact'] = 1; - $query->_qill[$grouping][] = ts("%1 %2 - '%3'", [1 => 'Soft Creditee\'s name', 2 => 'LIKE', 3 => $value]); + if (!empty($query->_paramLookup['soft_credit_name'])) { + list($name, $op, $value, $grouping, $wildcard) = reset($query->_paramLookup['soft_credit_name']); + if ($value) { + $query->_where[$grouping][] = "civicrm_contact_creditee.sort_name LIKE '%{$value}%'"; + $query->_whereTables['civicrm_contribution_soft_creditee_contact'] = 1; + $query->_tables['civicrm_contribution_soft_creditee_contact'] = 1; + $query->_whereTables['civicrm_contribution_soft'] = 1; + $query->_tables['civicrm_contribution_soft'] = 1; + $query->_qill[$grouping][] = ts("%1 %2 - '%3'", [1 => 'Soft Creditee\'s name', 2 => 'LIKE', 3 => $value]); + } } } @@ -45,7 +43,6 @@ class CRM_SoftCredit_SoftCreditQueryObject extends CRM_Contact_BAO_Query_Interfa if ($name == 'civicrm_contribution_soft_creditee_contact') { return " $side JOIN civicrm_contact civicrm_contact_creditee ON (civicrm_contribution_soft.contact_id = civicrm_contact_creditee.id) - AND contribution_search_scredit_combined.scredit_id IS NOT NULL "; } } diff --git a/softcreditcustomfields.php b/softcreditcustomfields.php index 71fbaef..f15eb4b 100644 --- a/softcreditcustomfields.php +++ b/softcreditcustomfields.php @@ -335,3 +335,21 @@ function softcreditcustomfields_civicrm_queryObjects(&$queryObjects, $type) { $queryObjects[] = new CRM_SoftCredit_SoftCreditQueryObject(); } } + +/** + * Implements hook_civicrm_queryObjects(). + * + * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_queryObjects + */ +function softcreditcustomfields_civicrm_alterContent(&$content, $context, $tplName, &$object) { + if (in_array($tplName, [ + 'CRM/Contribute/Form/Search/AdvancedSearchPane.tpl', + 'CRM/Contribute/Form/Search.tpl' + ])) { + $content = str_replace( + "cj('#contribution_soft_credit_type_id').val('');", + '', + $content + ); + } +} diff --git a/templates/CRM/Contribute/Form/Search/SoftCredit-Search.tpl b/templates/CRM/Contribute/Form/Search/SoftCredit-Search.tpl index b59a992..079964c 100644 --- a/templates/CRM/Contribute/Form/Search/SoftCredit-Search.tpl +++ b/templates/CRM/Contribute/Form/Search/SoftCredit-Search.tpl @@ -16,6 +16,17 @@ CRM.$(function($) { $('div#contribution_soft_credit_type_wrapper').append($('div.crm-softcredit-form-block-soft_credit_sort_name')); $('div#contribution_soft_credit_type_wrapper').append($('div.softcredit_custom_groups')); + + hideShowInMemoryOf(); + $('select#contribution_or_softcredits').change(hideShowInMemoryOf); + + function hideShowInMemoryOf() { + let softOption = $('select#contribution_or_softcredits').val(); + if (softOption == 'only_contribs') { + $('div#contribution_soft_credit_type_wrapper').show(); + } + } + }); {/literal}