diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index 13d89cb19ccdd2ef0905f0c07088ccbd8be85031..492d0fd524f1cdd1bade048dae16a93b67999e6e 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -2510,6 +2510,9 @@ LEFT JOIN civicrm_contribution contribution ON ( componentPayment.contribution_ if (isset($contribution->contribution_page_id) && is_numeric($contribution->contribution_page_id)) { $contributionParams['contribution_page_id'] = $contribution->contribution_page_id; } + if (!empty($contribution->tax_amount)) { + $contributionParams['tax_amount'] = $contribution->tax_amount; + } $createContribution = civicrm_api3('Contribution', 'create', $contributionParams); $contribution->id = $createContribution['id']; diff --git a/tests/phpunit/api/v3/ContributionTest.php b/tests/phpunit/api/v3/ContributionTest.php index ddd76b6018f3da6a649d5519bca2853aa2776bdf..a18af89f2bec56299d2fe97805c70c47c9b417de 100644 --- a/tests/phpunit/api/v3/ContributionTest.php +++ b/tests/phpunit/api/v3/ContributionTest.php @@ -4353,6 +4353,9 @@ class api_v3_ContributionTest extends CiviUnitTestCase { 'contribution_status_id' => 'Completed', 'trxn_id' => uniqid(), ]); + $payments = $this->callAPISuccess('Contribution', 'get', ['sequential' => 1])['values']; + //Assert if first payment and repeated payment has the same contribution amount. + $this->assertEquals($payments[0]['total_amount'], $payments[1]['total_amount']); $this->callAPISuccessGetCount('Contribution', [], 2); }