From 6822e118a7555f288b655062e749d359b80329bd Mon Sep 17 00:00:00 2001 From: Jitendra Purohit Date: Fri, 22 Mar 2019 15:24:47 +0530 Subject: [PATCH] dev/core#812 - RC equivalent for null display of contribution row on contact summary page --- CRM/Contribute/BAO/Query.php | 4 ++- CRM/Contribute/Selector/Search.php | 1 + .../CRM/Contribute/Form/SearchTest.php | 28 +++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/CRM/Contribute/BAO/Query.php b/CRM/Contribute/BAO/Query.php index b6063aef9b..4be21cd7b7 100644 --- a/CRM/Contribute/BAO/Query.php +++ b/CRM/Contribute/BAO/Query.php @@ -273,7 +273,9 @@ class CRM_Contribute_BAO_Query extends CRM_Core_BAO_Query { $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_contribution.$name", $op, $value, $dataType); list($op, $value) = CRM_Contact_BAO_Query::buildQillForFieldValue('CRM_Contribute_DAO_Contribution', $name, $value, $op, $pseudoExtraParam); - $query->_qill[$grouping][] = ts('%1 %2 %3', array(1 => $fields[$qillName]['title'], 2 => $op, 3 => $value)); + if (!($name == 'id' && $value == 0)) { + $query->_qill[$grouping][] = ts('%1 %2 %3', array(1 => $fields[$qillName]['title'], 2 => $op, 3 => $value)); + } $query->_tables['civicrm_contribution'] = $query->_whereTables['civicrm_contribution'] = 1; return; diff --git a/CRM/Contribute/Selector/Search.php b/CRM/Contribute/Selector/Search.php index 0606f9a207..e17f043cb7 100644 --- a/CRM/Contribute/Selector/Search.php +++ b/CRM/Contribute/Selector/Search.php @@ -181,6 +181,7 @@ class CRM_Contribute_Selector_Search extends CRM_Core_Selector_Base implements C $this->_action = $action; $returnProperties = CRM_Contribute_BAO_Query::selectorReturnProperties($this->_queryParams); $this->_includeSoftCredits = CRM_Contribute_BAO_Query::isSoftCreditOptionEnabled($this->_queryParams); + $this->_queryParams[] = ['contribution_id', '!=', 0, 0, 0]; $this->_query = new CRM_Contact_BAO_Query( $this->_queryParams, $returnProperties, diff --git a/tests/phpunit/CRM/Contribute/Form/SearchTest.php b/tests/phpunit/CRM/Contribute/Form/SearchTest.php index 5d2237e158..eea1fc537c 100644 --- a/tests/phpunit/CRM/Contribute/Form/SearchTest.php +++ b/tests/phpunit/CRM/Contribute/Form/SearchTest.php @@ -372,6 +372,34 @@ class CRM_Contribute_Form_SearchTest extends CiviUnitTestCase { } } + /** + * Test contact contributions. + */ + public function testContributionSearchWithContactID() { + $contactID = $this->individualCreate([], 1); + $fv = ['contact_id' => $contactID]; + $queryParams = CRM_Contact_BAO_Query::convertFormValues($fv); + $selector = new CRM_Contribute_Selector_Search($queryParams, CRM_Core_Action::ADD); + list($select, $from, $where) = $selector->getQuery()->query(); + + // get and assert contribution count + $contributions = CRM_Core_DAO::executeQuery("{$select} {$from} {$where}")->fetchAll(); + $this->assertEquals(count($contributions), 0); + + $this->callAPISuccess('Contribution', 'create', [ + 'financial_type_id' => "Donation", + 'receive_date' => date('Y-m-d'), + 'total_amount' => 10, + 'contact_id' => $contactID, + ]); + $selector = new CRM_Contribute_Selector_Search($queryParams, CRM_Core_Action::ADD); + list($select, $from, $where) = $selector->getQuery()->query(); + + // get and assert contribution count + $contributions = CRM_Core_DAO::executeQuery("{$select} {$from} {$where}")->fetchAll(); + $this->assertEquals(count($contributions), 1); + } + /** * Test CRM_Contribute_Form_Search Recurring Contribution Status Id filters */ -- 2.25.1