From 802c1c411b8c8b0718e0e55c22631d9c97b6b338 Mon Sep 17 00:00:00 2001 From: "deb.monish" Date: Tue, 18 Jul 2017 17:03:55 +0530 Subject: [PATCH] additional fixes and added unit test --- CRM/Contribute/BAO/Contribution.php | 12 ++++++------ CRM/Contribute/BAO/Query.php | 1 + tests/phpunit/api/v3/ContributionTest.php | 3 +++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index 105169bb66..5bce8c4140 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -5763,21 +5763,21 @@ LIMIT 1;"; /** * Generate and store invoice_number for contribution. * - * @param int $contributionId + * @param int $contributionID * * @return string */ - public static function storeInvoiceNumber($contributionId) { - $invoiceSettings = Civi::settings()->get('contribution_invoice_settings'); + public static function storeInvoiceNumber($contributionID) { $invoiceNumber = NULL; - if (!empty($invoiceSettings['invoicing']) && !empty($invoiceSettings['invoice_prefix'])) { - $invoiceNumber = $invoiceSettings['invoice_prefix'] . $contributionId; + if ($invoicePrefix = self::checkContributeSettings('invoice_prefix')) { + $invoiceNumber = $invoicePrefix . $contributionID; $params = array( - 'id' => $contributionId, + 'id' => $contributionID, 'invoice_number' => $invoiceNumber, ); civicrm_api3('Contribution', 'create', $params); } + return $invoiceNumber; } diff --git a/CRM/Contribute/BAO/Query.php b/CRM/Contribute/BAO/Query.php index 8e5e1b06cd..23c32b4fcd 100644 --- a/CRM/Contribute/BAO/Query.php +++ b/CRM/Contribute/BAO/Query.php @@ -821,6 +821,7 @@ class CRM_Contribute_BAO_Query extends CRM_Core_BAO_Query { 'trxn_id' => 1, // join 'invoice_id' => 1, + 'invoice_number' => 1, // added 'currency' => 1, // to diff --git a/tests/phpunit/api/v3/ContributionTest.php b/tests/phpunit/api/v3/ContributionTest.php index 3166a5a9ff..f3890e271f 100644 --- a/tests/phpunit/api/v3/ContributionTest.php +++ b/tests/phpunit/api/v3/ContributionTest.php @@ -128,6 +128,8 @@ class api_v3_ContributionTest extends CiviUnitTestCase { * Test Get. */ public function testGetContribution() { + $contributionSettings = $this->enableTaxAndInvoicing(); + $invoice_prefix = CRM_Contribute_BAO_Contribution::checkContributeSettings('invoice_prefix'); $p = array( 'contact_id' => $this->_individualId, 'receive_date' => '2010-01-20', @@ -165,6 +167,7 @@ class api_v3_ContributionTest extends CiviUnitTestCase { $this->assertEquals($contribution['net_amount'], 95.00); $this->assertEquals($contribution['trxn_id'], 23456); $this->assertEquals($contribution['invoice_id'], 78910); + $this->assertEquals($contribution['invoice_number'], $invoice_prefix . $contributions['id']); $this->assertEquals($contribution['contribution_source'], 'SSF'); $this->assertEquals($contribution['contribution_status'], 'Completed'); // Create a second contribution - we are testing that 'id' gets the right contribution id (not the contact id). -- 2.25.1