CRM-17636 fix for items not being recorded correctly (modified_date, invoice_id,...
authoreileenmcnaughton <eileen@fuzion.co.nz>
Mon, 30 Nov 2015 05:40:50 +0000 (05:40 +0000)
committereileenmcnaughton <eileen@fuzion.co.nz>
Mon, 30 Nov 2015 07:14:02 +0000 (07:14 +0000)
CRM/Member/Form.php
CRM/Member/Form/MembershipRenewal.php
api/v3/ContributionRecur.php
tests/phpunit/CRM/Member/Form/MembershipRenewalTest.php

index ca06acb5c566bc2d9bf5e191e56a872e83635f94..cea4b87d49c3e08292ce631b0b15a5e21c9a9cf1 100644 (file)
@@ -330,13 +330,13 @@ class CRM_Member_Form extends CRM_Contribute_Form_AbstractEditPayment {
     $contributionRecurParams = array(
       'contact_id' => $paymentParams['contactID'],
       'amount' => $paymentParams['total_amount'],
+      'contribution_status_id' => 'Pending',
       'payment_processor_id' => $paymentParams['payment_processor_id'],
-      'campaign_id' => CRM_Utils_Array::value('campaign_id', $paymentParams),
+      'campaign_id' => $paymentParams['campaign_id'],
       'financial_type_id' => $paymentParams['financial_type_id'],
-      'is_email_receipt' => CRM_Utils_Array::value('is_email_receipt', $paymentParams),
-      // This is not great as it could also be direct debit - but is consistent with elsewhere & all need fixing.
-      'payment_instrument_id' => 1,
-      'invoice_id' => CRM_Utils_Array::value('invoiceID ', $paymentParams),
+      'is_email_receipt' => $paymentParams['is_email_receipt'],
+      'payment_instrument_id' => $paymentParams['payment_instrument_id'],
+      'invoice_id' => $paymentParams['invoice_id'],
     );
 
     $mapping = array(
index 80eab40f8d700d88265a5323c2b4d69218e605e4..45f27a228cc8af97fddd4c08ca07042982f78416 100644 (file)
@@ -529,6 +529,7 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form {
       $this->_params['register_date'] = $now;
       $this->_params['description'] = ts("Contribution submitted by a staff person using member's credit card for renewal");
       $this->_params['amount'] = $this->_params['total_amount'];
+      $this->_params['payment_instrument_id'] = $this->_paymentProcessor['payment_instrument_id'];
 
       // at this point we've created a contact and stored its address etc
       // all the payment processors expect the name and address to be in the passed params
@@ -537,6 +538,7 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form {
       if (!empty($this->_params['send_receipt'])) {
         $paymentParams['email'] = $this->_contributorEmail;
       }
+      $paymentParams['is_email_receipt'] = !empty($this->_params['send_receipt']);
 
       $paymentParams['contactID'] = $this->_contributorContactID;
 
index a7a0b293de34be55efd5014967dc2b1cf61d80a2..40dfb47c5be92bb6241ca4cd320c0b21b5baf97f 100644 (file)
@@ -57,6 +57,7 @@ function _civicrm_api3_contribution_recur_create_spec(&$params) {
   $params['create_date']['api.default'] = 'now';
   $params['frequency_interval']['api.required'] = 1;
   $params['start_date']['api.default'] = 'now';
+  $params['modified_date']['api.default'] = 'now';
 }
 
 /**
index eab0f6ef64d2be42e7e8b4b55938ce0ec120baed..baeda99bfd7ab1dc73f9685ab5595e2360911556 100644 (file)
@@ -330,13 +330,12 @@ class CRM_Member_Form_MembershipRenewalTest extends CiviUnitTestCase {
     // @todo fix this part!
     /*
     $this->assertEquals(CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id',
-     'In Progress'), $contributionRecur['contribution_status_id']);
+    'In Progress'), $contributionRecur['contribution_status_id']);
     $this->assertNotEmpty($contributionRecur['next_sched_contribution_date']);
-    */
+     */
     $this->assertEquals(CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'payment_instrument_id',
       'Credit Card'), $contributionRecur['payment_instrument_id']);
 
-
     $contribution = $this->callAPISuccess('Contribution', 'getsingle', array(
       'contact_id' => $this->_individualId,
       'is_test' => TRUE,