From 7aacd50f0b263c6370ba26af377832be7d69606a Mon Sep 17 00:00:00 2001 From: Monish Deb Date: Fri, 18 Sep 2020 17:39:02 +0530 Subject: [PATCH] financial#150: civicrm/payment/form url got empty currency argument in backoffice live CC form --- CRM/Contribute/Form/AbstractEditPayment.php | 14 +------------- templates/CRM/common/paymentBlock.tpl | 11 +++++++---- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/CRM/Contribute/Form/AbstractEditPayment.php b/CRM/Contribute/Form/AbstractEditPayment.php index cdf5b2f6a1..218f95345c 100644 --- a/CRM/Contribute/Form/AbstractEditPayment.php +++ b/CRM/Contribute/Form/AbstractEditPayment.php @@ -385,19 +385,7 @@ WHERE contribution_id = {$id} * @return string */ public function getCurrency($submittedValues = []) { - $config = CRM_Core_Config::singleton(); - - $currentCurrency = CRM_Utils_Array::value('currency', - $this->_values, - $config->defaultCurrency - ); - - // use submitted currency if present else use current currency - $result = CRM_Utils_Array::value('currency', - $submittedValues, - $currentCurrency - ); - return $result; + return $submittedValues['currency'] ?? $this->_values['currency'] ?? CRM_Core_Config::singleton()->defaultCurrency; } public function preProcessPledge() { diff --git a/templates/CRM/common/paymentBlock.tpl b/templates/CRM/common/paymentBlock.tpl index c3171f349d..8916dd6908 100644 --- a/templates/CRM/common/paymentBlock.tpl +++ b/templates/CRM/common/paymentBlock.tpl @@ -98,7 +98,10 @@ var payment_instrument_id = $('#payment_instrument_id').val(); - var dataUrl = "{crmURL p='civicrm/payment/form' h=0 q="formName=`$form.formName`¤cy=`$currency`&`$urlPathVar``$isBackOfficePathVar``$profilePathVar``$contributionPageID``$preProfileID`processor_id="}" + type; + var currency = '{$currency}'; + currency = currency == '' ? $('#currency').val() : currency; + + var dataUrl = "{crmURL p='civicrm/payment/form' h=0 q="formName=`$form.formName``$urlPathVar``$isBackOfficePathVar``$profilePathVar``$contributionPageID``$preProfileID`processor_id="}" + type; {literal} if (typeof(CRM.vars) != "undefined") { if (typeof(CRM.vars.coreForm) != "undefined") { @@ -111,15 +114,15 @@ } } } - dataUrl = dataUrl + "&payment_instrument_id=" + payment_instrument_id; + dataUrl = dataUrl + "&payment_instrument_id=" + payment_instrument_id + "¤cy=" + currency; // Processors like pp-express will hide the form submit buttons, so re-show them when switching $('.crm-submit-buttons', $form).show().find('input').prop('disabled', true); CRM.loadPage(dataUrl, {target: '#billing-payment-block'}); } - $('[name=payment_processor_id]').on('change.paymentBlock', function() { - buildPaymentBlock($(this).val()); + $('[name=payment_processor_id], #currency').on('change.paymentBlock', function() { + buildPaymentBlock($('[name=payment_processor_id]').val()); }); $('#payment_instrument_id').on('change.paymentBlock', function() { -- 2.25.1