Merge pull request #19538 from eileenmcnaughton/repeat
authorMatthew Wire <devel@mrwire.co.uk>
Fri, 5 Feb 2021 11:24:22 +0000 (11:24 +0000)
committerGitHub <noreply@github.com>
Fri, 5 Feb 2021 11:24:22 +0000 (11:24 +0000)
[REF] [Repeattransaction] Stop setting contribution->id

1  2 
CRM/Contribute/BAO/Contribution.php

index 2baa1c7dc69d5c2490591074365f4c67ffab2a8c,4868f447e6c1129b47d7bb3434dee6d45f991147..00d549ad3a9a62f9ccb034f04506f8b0a344a54f
@@@ -2500,10 -2508,18 +2500,10 @@@ LEFT JOIN  civicrm_contribution contrib
      }
      $contributionParams['source'] = $contributionParams['source'] ?? ts('Recurring contribution');
  
 -    //CRM-18805 -- Contribution page not recorded on recurring transactions, Recurring contribution payments
 -    //do not create CC or BCC emails or profile notifications.
 -    //The if is just to be safe. Not sure if we can ever arrive with this unset
 -    // but per CRM-19478 it seems it can be 'null'
 -    if (isset($contribution->contribution_page_id) && is_numeric($contribution->contribution_page_id)) {
 -      $contributionParams['contribution_page_id'] = $contribution->contribution_page_id;
 -    }
 -
      $createContribution = civicrm_api3('Contribution', 'create', $contributionParams);
-     $contribution->id = $createContribution['id'];
-     $contribution->copyCustomFields($templateContribution['id'], $contribution->id);
-     self::handleMembershipIDOverride($contribution->id, $input);
+     $temporaryObject = new CRM_Contribute_BAO_Contribution();
+     $temporaryObject->copyCustomFields($templateContribution['id'], $createContribution['id']);
+     self::handleMembershipIDOverride($createContribution['id'], $input);
      // Add new soft credit against current $contribution.
      CRM_Contribute_BAO_ContributionRecur::addrecurSoftCredit($contributionParams['contribution_recur_id'], $createContribution['id']);
      return $createContribution;