From 0699333ead39de9069ce777134376eaaf9dd3450 Mon Sep 17 00:00:00 2001 From: Matthew Wire Date: Fri, 9 Mar 2018 11:49:04 +0000 Subject: [PATCH] CRM-21784 Support editing custom data via UI for ContributionRecur --- CRM/Contribute/Form/UpdateSubscription.php | 17 +++++++++++++++-- .../CRM/Contribute/Form/UpdateSubscription.tpl | 13 +++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/CRM/Contribute/Form/UpdateSubscription.php b/CRM/Contribute/Form/UpdateSubscription.php index 826b7cb3af..a1c90737b4 100644 --- a/CRM/Contribute/Form/UpdateSubscription.php +++ b/CRM/Contribute/Form/UpdateSubscription.php @@ -146,6 +146,13 @@ class CRM_Contribute_Form_UpdateSubscription extends CRM_Core_Form { } } + // when custom data is included in this page + if (!empty($_POST['hidden_custom'])) { + CRM_Custom_Form_CustomData::preProcess($this, NULL, NULL, 1, 'ContributionRecur', $this->contributionRecurID); + CRM_Custom_Form_CustomData::buildQuickForm($this); + CRM_Custom_Form_CustomData::setDefaultValues($this); + } + $this->assign('editableScheduleFields', array_diff($this->editableScheduleFields, $alreadyHardCodedFields)); if ($this->_subscriptionDetails->contact_id) { @@ -171,7 +178,7 @@ class CRM_Contribute_Form_UpdateSubscription extends CRM_Core_Form { $this->_defaults['financial_type_id'] = $this->_subscriptionDetails->financial_type_id; $this->_defaults['is_notify'] = 1; foreach ($this->editableScheduleFields as $field) { - $this->_defaults[$field] = $this->_subscriptionDetails->$field; + $this->_defaults[$field] = isset($this->_subscriptionDetails->$field) ? $this->_subscriptionDetails->$field : NULL; } return $this->_defaults; @@ -205,6 +212,10 @@ class CRM_Contribute_Form_UpdateSubscription extends CRM_Core_Form { $this->addEntityRef('financial_type_id', ts('Financial Type'), array('entity' => 'FinancialType'), !$this->_selfService); } + // Add custom data + $this->assign('customDataType', 'ContributionRecur'); + $this->assign('entityID', $this->contributionRecurID); + $type = 'next'; if ($this->_selfService) { $type = 'submit'; @@ -253,8 +264,10 @@ class CRM_Contribute_Form_UpdateSubscription extends CRM_Core_Form { $msgType = 'error'; } elseif ($updateSubscription) { + // Handle custom data + $params['custom'] = CRM_Core_BAO_CustomField::postProcess($params, $this->contributionRecurID, 'ContributionRecur'); // save the changes - $result = CRM_Contribute_BAO_ContributionRecur::add($params); + CRM_Contribute_BAO_ContributionRecur::add($params); $status = ts('Recurring contribution has been updated to: %1, every %2 %3(s) for %4 installments.', array( 1 => CRM_Utils_Money::format($params['amount'], $this->_subscriptionDetails->currency), diff --git a/templates/CRM/Contribute/Form/UpdateSubscription.tpl b/templates/CRM/Contribute/Form/UpdateSubscription.tpl index a06f23cae1..e5961bad12 100644 --- a/templates/CRM/Contribute/Form/UpdateSubscription.tpl +++ b/templates/CRM/Contribute/Form/UpdateSubscription.tpl @@ -52,5 +52,18 @@ {/if} +
+ {*include custom data js file*} + {include file="CRM/common/customData.tpl"} + {literal} + + {/literal} +
{include file="CRM/common/formButtons.tpl" location="bottom"}
-- 2.25.1