CRM-15232 fix - LIne items are missing from receipts when using a price set with...
authormonishdeb <monish.deb@webaccessglobal.com>
Tue, 9 Sep 2014 12:11:06 +0000 (17:41 +0530)
committermonishdeb <monish.deb@webaccessglobal.com>
Tue, 9 Sep 2014 12:11:06 +0000 (17:41 +0530)
https://issues.civicrm.org/jira/browse/CRM-15232

CRM/Contribute/BAO/ContributionPage.php
CRM/Member/BAO/Membership.php

index 9d1db36d6654cf443de74cf12d91d7aae4c3cf35..da921d378e668a3c361548f791fb4489c88c31aa 100644 (file)
@@ -314,7 +314,6 @@ class CRM_Contribute_BAO_ContributionPage extends CRM_Contribute_DAO_Contributio
         'displayName' => $displayName,
         'contributionID' => CRM_Utils_Array::value('contribution_id', $values),
         'contributionOtherID' => CRM_Utils_Array::value('contribution_other_id', $values),
-        'membershipID' => CRM_Utils_Array::value('membership_id', $values),
         // CRM-5095
         'lineItem' => CRM_Utils_Array::value('lineItem', $values),
         // CRM-5095
@@ -370,8 +369,8 @@ class CRM_Contribute_BAO_ContributionPage extends CRM_Contribute_DAO_Contributio
 
       // use either the contribution or membership receipt, based on whether it’s a membership-related contrib or not
       $sendTemplateParams = array(
-        'groupName' => $tplParams['membershipID'] ? 'msg_tpl_workflow_membership' : 'msg_tpl_workflow_contribution',
-        'valueName' => $tplParams['membershipID'] ? 'membership_online_receipt' : 'contribution_online_receipt',
+        'groupName' => !empty($values['isMembership']) ? 'msg_tpl_workflow_membership' : 'msg_tpl_workflow_contribution',
+        'valueName' => !empty($values['isMembership']) ? 'membership_online_receipt' : 'contribution_online_receipt',
         'contactId' => $contactID,
         'tplParams' => $tplParams,
         'isTest' => $isTest,
index 3ce24572f08bbb6caebbde99b1bdf7a64974393b..70402db2f82ac84ea6cd46dd4daa202b19ea4a5e 100644 (file)
@@ -1359,9 +1359,14 @@ AND civicrm_membership.is_test = %2";
     }
     if(count($createdMemberships) == 1) {
       //presumably this is only relevant for exactly 1 membership
-      $form->_params['membershipID'] = $form->_values['membership_id'] = $createdMembership->id;
+      $form->_params['membershipID'] = $createdMembership->id;
     }
 
+    //CRM-15232: Check if membership is created and on the basis of it use
+    //membership reciept template to send payment reciept
+    if (count($createdMemberships)) {
+      $form->_values['isMembership'] = TRUE;
+    }
     if ($form->_contributeMode == 'notify') {
       if ($form->_values['is_monetary'] && $form->_amount > 0.0 && !$form->_params['is_pay_later']) {
         // call postProcess hook before leaving