From 1bad01dc079ddbcecdc3dfce6fc89e04e117dd55 Mon Sep 17 00:00:00 2001 From: eileenmcnaughton Date: Mon, 30 Nov 2015 05:40:50 +0000 Subject: [PATCH] CRM-17636 fix for items not being recorded correctly (modified_date, invoice_id, is_email_receipt. Partial fix on contribution_status_id - covers setting to pending but not yet updating to In Progress Conflicts: CRM/Member/Form/MembershipRenewal.php --- CRM/Member/Form.php | 6 +++--- CRM/Member/Form/MembershipRenewal.php | 5 +++-- api/v3/ContributionRecur.php | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CRM/Member/Form.php b/CRM/Member/Form.php index 47b220cd5b..f429a72196 100644 --- a/CRM/Member/Form.php +++ b/CRM/Member/Form.php @@ -239,13 +239,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), '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. + 'is_email_receipt' => $paymentParams['is_email_receipt'], 'payment_instrument_id' => 1, - 'invoice_id' => CRM_Utils_Array::value('invoiceID ', $paymentParams), + 'invoice_id' => $paymentParams['invoice_id'], ); $mapping = array( diff --git a/CRM/Member/Form/MembershipRenewal.php b/CRM/Member/Form/MembershipRenewal.php index 31f556e0ef..fdc6fa37d5 100644 --- a/CRM/Member/Form/MembershipRenewal.php +++ b/CRM/Member/Form/MembershipRenewal.php @@ -597,15 +597,16 @@ WHERE id IN ( ' . implode(' , ', array_keys($membershipType)) . ' )'; $this->_params['amount'] = $formValues['total_amount']; $this->_params['currencyID'] = $config->defaultCurrency; $this->_params['payment_action'] = 'Sale'; - $paymentParams['invoiceID'] = $this->_params['invoiceID'] = md5(uniqid(rand(), TRUE)); - // 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 // so we copy stuff over to first_name etc. $paymentParams = $this->_params; + $paymentParams['invoiceID'] = $paymentParams['invoice_id'] = $this->_params['invoiceID'] = md5(uniqid(rand(), TRUE)); + if (!empty($this->_params['send_receipt'])) { $paymentParams['email'] = $this->_contributorEmail; } + $paymentParams['is_email_receipt'] = !empty($this->_params['send_receipt']); $paymentParams['contactID'] = $this->_contributorContactID; diff --git a/api/v3/ContributionRecur.php b/api/v3/ContributionRecur.php index 2db4c8dc3c..403865b0b8 100644 --- a/api/v3/ContributionRecur.php +++ b/api/v3/ContributionRecur.php @@ -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'; } /** -- 2.25.1