From 6717d49ea4141a108a76f4fb2e6dbbea367f9293 Mon Sep 17 00:00:00 2001 From: Matthew Wire Date: Wed, 3 Mar 2021 23:04:14 +0000 Subject: [PATCH] Support fixed day of month --- CRM/Core/Payment/GoCardless.php | 8 +- CRM/GoCardlessUtils.php | 73 ++++- ang/gocardless/GoCardlessSettings.html | 18 ++ ang/gocardless/GoCardlessSettings.js | 9 +- docs/gc-settings.jpg | Bin 103868 -> 0 bytes docs/gc-settings.png | Bin 0 -> 61264 bytes docs/reference/settings.md | 15 +- info.xml | 3 + js/gcform.js | 369 ++++++++++++++++--------- 9 files changed, 367 insertions(+), 128 deletions(-) delete mode 100644 docs/gc-settings.jpg create mode 100644 docs/gc-settings.png diff --git a/CRM/Core/Payment/GoCardless.php b/CRM/Core/Payment/GoCardless.php index d38a9b7..0549c68 100644 --- a/CRM/Core/Payment/GoCardless.php +++ b/CRM/Core/Payment/GoCardless.php @@ -299,6 +299,12 @@ public function doPayment(&$params, $component = 'contribute') { ]; } + // Added via javascript so "removed" by quickform after submission + $dayOfMonth = CRM_Utils_Request::retrieveValue('day_of_month', 'Integer', NULL, FALSE, 'POST'); + if ($dayOfMonth) { + $params['day_of_month'] = $dayOfMonth; + } + $url = $this->createRedirectFlow($params, $component); CRM_Utils_System::redirect($url); } @@ -338,7 +344,7 @@ public function createRedirectFlow(&$params, $component) { 'payment_processor_id' => $this->_paymentProcessor['id'], "description" => $params['description'], ]; - foreach (['contributionID', 'contributionRecurID', 'contactID', 'membershipID'] as $_) { + foreach (['contributionID', 'contributionRecurID', 'contactID', 'membershipID', 'day_of_month'] as $_) { if (!empty($params[$_])) { $sesh_store[$redirect_flow->id][$_] = $params[$_]; } diff --git a/CRM/GoCardlessUtils.php b/CRM/GoCardlessUtils.php index 23a1ef4..14ce498 100644 --- a/CRM/GoCardlessUtils.php +++ b/CRM/GoCardlessUtils.php @@ -222,6 +222,9 @@ public static function completeRedirectFlowWithGoCardless($deets) { 'links' => ['mandate' => $redirect_flow->links->mandate], 'metadata' => ['civicrm' => $metadata], ]; + if ($deets['day_of_month']) { + $params['day_of_month'] = $deets['day_of_month']; + } if (isset($installments)) { $params['count'] = $installments; @@ -483,9 +486,77 @@ public static function handleContributeFormHacks() { ->addWhere('is_test', 'IS NOT NULL') ->execute() ->column('id'); + $js = file_get_contents(E::path('js/gcform.js')); - $js = str_replace('var goCardlessProcessorIDs = [];', 'var goCardlessProcessorIDs = ' . json_encode($paymentProcessorsIDs) . ';', $js); + $js = str_replace([ + 'var goCardlessProcessorIDs = [];', + 'var dayOfMonthOptions = {};' + ], + [ + 'var goCardlessProcessorIDs = ' . json_encode($paymentProcessorsIDs) . ';', + 'var dayOfMonthOptions = ' . json_encode(self::getDayOfMonthOptions()) . ';' + ], + $js + ); CRM_Core_Region::instance('page-body')->add(['markup' => ""]); } } + + /** + * Get the formatted options for daysOfMonth eg. [1 => '1st'] + * This is used for frontend presentation and backend settings + * + * @param bool $all + * + * @return array + */ + public static function getDayOfMonthOptions($all = FALSE) { + if ($all) { + $options = [0]; + for ($i = 1; $i <= 28; $i++) { + // Add days 1 to 28 (29-31 are excluded because don't exist for some months) + $options[] = $i; + } + $options[] = -1; + } + else { + $options = static::getSettings()['daysOfMonth']; + } + + foreach ($options as $option) { + switch ($option) { + case 0: + $dayOfMonthOptions[$option] = 'auto'; + break; + + case -1: + $dayOfMonthOptions[$option] = 'last'; + break; + + default: + $dayOfMonthOptions[$option] = self::formatPreferredCollectionDay($option); + } + } + return $dayOfMonthOptions; + } + + /** + * Format collection day like 1st, 2nd, 3rd, 4th etc. + * + * @param $collectionDay + * + * @return string + */ + public static function formatPreferredCollectionDay($collectionDay) { + $ends = ['th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th']; + if ((($collectionDay%100) >= 11) && (($collectionDay%100) <= 13)) { + $abbreviation = $collectionDay . 'th'; + } + else { + $abbreviation = $collectionDay . $ends[$collectionDay % 10]; + } + + return $abbreviation; + } + } diff --git a/ang/gocardless/GoCardlessSettings.html b/ang/gocardless/GoCardlessSettings.html index ebea208..b663d4f 100644 --- a/ang/gocardless/GoCardlessSettings.html +++ b/ang/gocardless/GoCardlessSettings.html @@ -40,6 +40,24 @@

{{ts('GoCardless settings')}}

+
+
+ +

The allowed days of the month. Set to "auto" for the next available date or "last" for the last day of the month. +
This only works if "Force Recurring" is enabled and "Monthly" or "Yearly" is selected. +

+
+
+
diff --git a/ang/gocardless/GoCardlessSettings.js b/ang/gocardless/GoCardlessSettings.js index 8cf598b..78b82e0 100644 --- a/ang/gocardless/GoCardlessSettings.js +++ b/ang/gocardless/GoCardlessSettings.js @@ -52,7 +52,8 @@ // Annoyingly this is duplicated from CRM_GoCardlessUtils::getSettings() const defaults = { forceRecurring: false, - sendReceiptsForCustomPayments: 'never' + sendReceiptsForCustomPayments: 'never', + daysOfMonth: ["0"] }; Object.keys(defaults).forEach(k => { if (!(k in gcSettings)) { @@ -61,6 +62,12 @@ }); $scope.gcSettings = gcSettings; + const m={1:'1st', 2:'2nd', 3:'3rd', 21:'21st', 22:'22nd', 23:'23rd'}; + const daysOfMonthOpts = [{key: '0', value: 'any day (earliest possible)'}]; + for (var i=1;i<29;i++) daysOfMonthOpts.push({key: i.toString(), value: m[i] || (i + 'th')}); + daysOfMonthOpts.push({key: '-1', value: 'last day of month'}); + $scope.gcDaysOfMonth = daysOfMonthOpts; + // Make pay processors accessible var ppTable = []; var ppNames = {}; diff --git a/docs/gc-settings.jpg b/docs/gc-settings.jpg deleted file mode 100644 index cbd41e8b94238dfac4bdc928b8323e4b34c21e8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103868 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 diff --git a/docs/gc-settings.png b/docs/gc-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..a690521364076abfbd6bb4247b6712b1d4476ab2 GIT binary patch literal 61264 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 literal 0 HcmV?d00001 diff --git a/docs/reference/settings.md b/docs/reference/settings.md index 4867cf5..b9631f3 100644 --- a/docs/reference/settings.md +++ b/docs/reference/settings.md @@ -1,6 +1,6 @@ # Settings Page -![Screnshot of settings page](../gc-settings.jpg) +![Screnshot of settings page](../gc-settings.png) ## Force Recurring @@ -60,3 +60,16 @@ in some custom code, you might not have set this `is_email_receipt` value. and will pass 0 or 1 into the payment APIs. - `defer` will pass in the value from the recurring contribution record. + +## Allowed days of the month + +The allowed days of the month. +Set to "auto" for the next available date or "last" for the last day of the month. +You can specify multiple options and it will give the user a choice when setting up the payment. + +This only works if "Force Recurring" is enabled and "Monthly" or "Yearly" is selected. + +#### Developers notes +* The GoCardless API also supports specifying "month" for "Yearly subscriptions" but that is not currently implemented. +* The "Force recurring" setting is required because we are sharing the `gcform.js` code and it was simpler to implement that way. + diff --git a/info.xml b/info.xml index ed32ab7..8c47a9c 100644 --- a/info.xml +++ b/info.xml @@ -22,6 +22,9 @@ 5.35 + + + CRM/GoCardless diff --git a/js/gcform.js b/js/gcform.js index 571c12b..b5a734f 100644 --- a/js/gcform.js +++ b/js/gcform.js @@ -7,152 +7,273 @@ // // - Contribution forms with a choice of PPs use radio buttons. // -document.addEventListener('DOMContentLoaded', function () { - // var debug = console.log; - var debug = function() {}; - debug("GoCardless loaded"); - - // This next line gets swapped out by PHP - var goCardlessProcessorIDs = []; - - // CiviCRM uses isRecur for non-membership payments, and autoRenew for memberships. - // Nb. autoRenew may not be there e.g. if autoRenew is not allowed, or is not optional. - var isRecurInput = document.getElementById('is_recur'); - // Note: the auto renew input might be a checkbox OR a hidden element. - var autoRenewInput = document.getElementById('auto_renew'); - // If Civi offers a choice of payment processors by radio, they'll be found like this: - var ppRadios = document.querySelectorAll('input[type="radio"][name="payment_processor_id"]'); - // Boolean: whether the currently selected payment processor is a GoCardless one. - var goCardlessProcessorSelected = false; - // The name of the selected GoCardless processor, or is empty. - var selectedProcessorName = null; - - // Note: templates/CRM/common/paymentBlock.tpl includes JS which - // un-checks the .checked property on all payment processor radios when that - // block of form is hidden, and when it is shown, it sets the .checked - // property where the checked attribute exists (i.e. the default). - // There are no events to hook into here, so we need to resort to polling to - // find out when it's changed. - //var paymentOptionsGroup = document.querySelector('div.payment_options-group'); - //var paymentProcessorSection = document.querySelector('div.payment_processor-section'); - var gcWasPreviouslySelected = false; - - // Listen for when the user changes/tries to change the isRecurInput - if (isRecurInput) { - isRecurInput.addEventListener('change', function(e) { - if (!isRecurInput.checked && goCardlessProcessorSelected) { - // They tried to un-check it, but GoCardless is selected. - e.preventDefault(); - e.stopPropagation(); - forceRecurring(true); - } - }); - debug("Added event listener to isRecurInput", isRecurInput); - } - // Listen for when the user changes/tries to change the autoRenewInput checkbox - if (autoRenewInput && autoRenewInput.getAttribute('type') === 'checkbox') { - autoRenewInput.addEventListener('change', function(e) { - if (!autoRenewInput.checked && goCardlessProcessorSelected) { - e.preventDefault(); - e.stopPropagation(); - forceRecurring(true); - } - }); - debug("Added event listener to autoRenew", autoRenewInput); - } +(function($, ts) { + + $(document).ajaxComplete(function(event, xhr, settings) { + function isAJAXPaymentForm(url) { + return (url.match("civicrm(\/|%2F)payment(\/|%2F)form") !== null) || + (url.match("civicrm(\/|\%2F)contact(\/|\%2F)view(\/|\%2F)participant") !== null) || + (url.match("civicrm(\/|\%2F)contact(\/|\%2F)view(\/|\%2F)membership") !== null) || + (url.match("civicrm(\/|\%2F)contact(\/|\%2F)view(\/|\%2F)contribution") !== null); + } + // /civicrm/payment/form? occurs when a payproc is selected on page + // /civicrm/contact/view/participant occurs when payproc is first loaded on event credit card payment + // On wordpress these are urlencoded + if (isAJAXPaymentForm(settings.url)) { + load(); + } + }); + + document.addEventListener('DOMContentLoaded', function () { + load(); + }); + + function load() { + // var debug = console.log; + var debug = function() {}; + debug("GoCardless loaded"); + + // This next line gets swapped out by PHP + var goCardlessProcessorIDs = []; + + // CiviCRM uses isRecur for non-membership payments, and autoRenew for memberships. + // Nb. autoRenew may not be there e.g. if autoRenew is not allowed, or is not optional. + var isRecurInput = document.getElementById('is_recur'); + // Note: the auto renew input might be a checkbox OR a hidden element. + var autoRenewInput = document.getElementById('auto_renew'); + // If Civi offers a choice of payment processors by radio, they'll be found like this: + var ppRadios = document.querySelectorAll('input[type="radio"][name="payment_processor_id"]'); + // Boolean: whether the currently selected payment processor is a GoCardless one. + var goCardlessProcessorSelected = false; + // The name of the selected GoCardless processor, or is empty. + var selectedProcessorName = null; + + // Note: templates/CRM/common/paymentBlock.tpl includes JS which + // un-checks the .checked property on all payment processor radios when that + // block of form is hidden, and when it is shown, it sets the .checked + // property where the checked attribute exists (i.e. the default). + // There are no events to hook into here, so we need to resort to polling to + // find out when it's changed. + //var paymentOptionsGroup = document.querySelector('div.payment_options-group'); + //var paymentProcessorSection = document.querySelector('div.payment_processor-section'); + var gcWasPreviouslySelected = false; + + // Listen for when the user changes/tries to change the isRecurInput + if (isRecurInput) { + isRecurInput.addEventListener('change', function (e) { + if (!isRecurInput.checked && goCardlessProcessorSelected) { + // They tried to un-check it, but GoCardless is selected. + e.preventDefault(); + e.stopPropagation(); + forceRecurring(true); + } + }); + debug("Added event listener to isRecurInput", isRecurInput); + } - // This forces whichever of autoRenewInput and isRecurInput is on. - function forceRecurring(withAlert) { + // Listen for when the user changes/tries to change the autoRenewInput checkbox + if (autoRenewInput && autoRenewInput.getAttribute('type') === 'checkbox') { + autoRenewInput.addEventListener('change', function (e) { + if (!autoRenewInput.checked && goCardlessProcessorSelected) { + e.preventDefault(); + e.stopPropagation(); + forceRecurring(true); + } + }); + debug("Added event listener to autoRenew", autoRenewInput); + } + else if (document.getElementById('force_renew')) { + forceRecurring(false); + } + + // This forces whichever of autoRenewInput and isRecurInput is on. + function forceRecurring(withAlert) { - if (withAlert) { - if (selectedProcessorName) { - alert("Contributions made with " + selectedProcessorName + " must be recurring/auto renewing."); + if (withAlert) { + if (selectedProcessorName) { + alert("Contributions made with " + selectedProcessorName + " must be recurring/auto renewing."); + } + else { + alert("Direct Debit contributions must be recurring/auto renewing."); + } } - else { - alert("Direct Debit contributions must be recurring/auto renewing."); + + // As we've changed this we need to trigger a 'change' event so that the other UI can respond. + var fakeEvent = new Event('change'); + + if (isRecurInput) { + debug("Forcing isRecurInput"); + isRecurInput.checked = true; + isRecurInput.dispatchEvent(fakeEvent); } - } - // As we've changed this we need to trigger a 'change' event so that the other UI can respond. - var fakeEvent = new Event('change'); + if (autoRenewInput) { + debug("Forcing autoRenew"); + autoRenewInput.checked = true; + autoRenewInput.dispatchEvent(fakeEvent); + } - if (isRecurInput) { - debug("Forcing isRecurInput"); - isRecurInput.checked = true; - isRecurInput.dispatchEvent(fakeEvent); + setRecurStartDate(); } - if (autoRenewInput) { - debug("Forcing autoRenew"); - autoRenewInput.checked = true; - autoRenewInput.dispatchEvent(fakeEvent); + function hideStartDate() { + $('#gc-recurring-start-date').hide(); + $("#gc-recurring-start-date option:selected").prop("selected", false); + $("#gc-recurring-start-date option:first").prop("selected", "selected"); + $('#recur-start-date-description').remove(); } - } - // This function looks through payment processor selector radios, - // set goCardlessProcessorSelected and if found, forceRecurring - function gcFixRecurFromRadios() { - var ppID; - selectedProcessorName = null; - [].forEach.call(ppRadios, function(r) { - if (r.checked) { - ppID = parseInt(r.value); - var label = document.querySelector('label[for="' + r.id + '"]'); - selectedProcessorName = label ? label.textContent : 'Direct Debit'; + function setRecurStartDate() { + var recurSection = '.is_recur-section'; + if (!$(recurSection).length) { + recurSection = '#allow_auto_renew'; } - }); - goCardlessProcessorSelected = (typeof ppID === 'number') && (goCardlessProcessorIDs.indexOf(ppID) > -1); - if (goCardlessProcessorSelected && !gcWasPreviouslySelected) { - forceRecurring(); + if ($('select#frequency_unit,input[name=is_recur_radio]').length > 0) { + // core select element + var selectedFrequencyUnit = $('select#frequency_unit').val(); + if (!selectedFrequencyUnit) { + // recurringbuttons extension radio buttons + selectedFrequencyUnit = $('input[name=is_recur_radio]:checked').val(); + } + if ($.inArray(selectedFrequencyUnit, ['month', 'year']) < 0) { + hideStartDate(); + return; + } + } + + var recurStartDateDiv = document.getElementById('gc-recurring-start-date'); + if (recurStartDateDiv) { + recurStartDateDiv.remove(); + } + + var dayOfMonthSelect = document.createElement('select'); + dayOfMonthSelect.setAttribute('id', 'day_of_month'); + dayOfMonthSelect.setAttribute('name', 'day_of_month'); + dayOfMonthSelect.classList.add('crm-form-select'); + + var dayOfMonthOptions = {}; + + // Build the "day_of_month" select element and add to form + var options = ''; + for (var key in dayOfMonthOptions) { + if (dayOfMonthOptions.hasOwnProperty(key)) { + options += ''; + } + } + dayOfMonthSelect.innerHTML = options; + + recurStartDateDiv = document.createElement('div'); + recurStartDateDiv.setAttribute('id', 'gc-recurring-start-date'); + var recurStartDateElement = document.createElement('div'); + recurStartDateElement.classList.add('crm-section', 'recurring-start-date'); + var recurStartDateLabel = document.createElement('div'); + recurStartDateLabel.classList.add('label'); + recurStartDateLabel.innerText = ts('Day of month'); + recurStartDateElement.appendChild(recurStartDateLabel); + var recurStartDateContent = document.createElement('div'); + recurStartDateContent.classList.add('content'); + recurStartDateContent.appendChild(dayOfMonthSelect); + recurStartDateElement.appendChild(recurStartDateLabel); + recurStartDateElement.appendChild(recurStartDateContent); + recurStartDateDiv.appendChild(recurStartDateElement); + // Remove/insert the recur start date element just below the recur selections + $(recurSection + ' #gc-recurring-start-date').remove(); + $(recurSection).after(recurStartDateDiv); + + if (Object.keys(dayOfMonthOptions).length === 1) { + // We only have one option. No need to offer selection - just show the date + $(dayOfMonthSelect).parent('div.content').prev('div.label').hide(); + $(dayOfMonthSelect).next('div.description').hide(); + $(dayOfMonthSelect).hide(); + $('#recur-start-date-description').remove(); + if ($(dayOfMonthSelect).val() !== '0') { + var recurStartMessage = ts('Your direct debit will be collected on the %1 day of the month', { + 1: $(dayOfMonthSelect).text() + }); + $(dayOfMonthSelect).after( + '
' + recurStartMessage + '
' + ); + } + } + $('#gc-recurring-start-date').show().val(''); } - gcWasPreviouslySelected = goCardlessProcessorSelected; - debug("Determined whether GoCardless is the processor selected from radios:", goCardlessProcessorSelected); - } - // If the user has a choice about any type of auto renew... - if (isRecurInput || autoRenewInput) { - if (ppRadios.length > 1) { - debug("Found a choice of payment processors as radios"); - // We have radio inputs to select the processor. - [].forEach.call(ppRadios, function(r) { - r.addEventListener('click', gcFixRecurFromRadios); + // This function looks through payment processor selector radios, + // set goCardlessProcessorSelected and if found, forceRecurring + function gcFixRecurFromRadios() { + var ppID; + selectedProcessorName = null; + [].forEach.call(ppRadios, function (r) { + if (r.checked) { + ppID = parseInt(r.value); + var label = document.querySelector('label[for="' + r.id + '"]'); + selectedProcessorName = label ? label.textContent : 'Direct Debit'; + } }); + goCardlessProcessorSelected = (typeof ppID === 'number') && (goCardlessProcessorIDs.indexOf(ppID) > -1); + + if (goCardlessProcessorSelected && !gcWasPreviouslySelected) { + forceRecurring(); + } + gcWasPreviouslySelected = goCardlessProcessorSelected; + debug("Determined whether GoCardless is the processor selected from radios:", goCardlessProcessorSelected); + } - gcFixRecurFromRadios(); - // Look out for when it changes in a way we can't detect. - window.setInterval(gcFixRecurFromRadios, 300); + // If the user has a choice about any type of auto renew... + if (isRecurInput || autoRenewInput) { + if (ppRadios.length > 1) { + debug("Found a choice of payment processors as radios"); + // We have radio inputs to select the processor. + [].forEach.call(ppRadios, function (r) { + r.addEventListener('click', gcFixRecurFromRadios); + }); + + gcFixRecurFromRadios(); + // Look out for when it changes in a way we can't detect. + window.setInterval(gcFixRecurFromRadios, 300); + } + else { + // The processor type is fixed. + var ppInput = document.querySelectorAll('input[type="hidden"][name="payment_processor_id"]'); + if (ppInput.length === 1) { + // We have a single payment processor involved that won't be changing. + var ppID = parseInt(ppInput[0].value); + goCardlessProcessorSelected = (goCardlessProcessorIDs.indexOf(ppID) > -1); + if (goCardlessProcessorSelected) { + forceRecurring(); + } + debug("Determined whether GoCardless is the processor:", goCardlessProcessorSelected); + } + // else: no idea, let's do nothing. + } } - else { - // The processor type is fixed. - var ppInput = document.querySelectorAll('input[type="hidden"][name="payment_processor_id"]'); - if (ppInput.length === 1) { - // We have a single payment processor involved that won't be changing. - var ppID = parseInt(ppInput[0].value); - goCardlessProcessorSelected = (goCardlessProcessorIDs.indexOf(ppID) > -1); + + if ('showHideAutoRenew' in window) { + // This function is defined in templates/CRM/Contribute/Form/Contribution/MembershipBlock.tpl + // and called by Civi in various places, including in onclick HTML attributes, defined in: + // - CRM/Contribute/Form/ContributionBase.php + // - CRM/Price/BAO/PriceField.php + // Wrap this function to ensure we still forceRecurring if GC is selected. + var origShowHideAutoRenew = window.showHideAutoRenew; + window.showHideAutoRenew = function (memTypeId) { + origShowHideAutoRenew(memTypeId); if (goCardlessProcessorSelected) { forceRecurring(); } - debug("Determined whether GoCardless is the processor:", goCardlessProcessorSelected); - } - // else: no idea, let's do nothing. + }; } - } - if ('showHideAutoRenew' in window) { - // This function is defined in templates/CRM/Contribute/Form/Contribution/MembershipBlock.tpl - // and called by Civi in various places, including in onclick HTML attributes, defined in: - // - CRM/Contribute/Form/ContributionBase.php - // - CRM/Price/BAO/PriceField.php - // Wrap this function to ensure we still forceRecurring if GC is selected. - var origShowHideAutoRenew = window.showHideAutoRenew; - window.showHideAutoRenew = function(memTypeId) { - origShowHideAutoRenew(memTypeId); - if (goCardlessProcessorSelected) { - forceRecurring(); - } - }; + // Trigger when we change the frequency unit selector (eg. month, year) on recur + CRM.$('select#frequency_unit').on('change', function() { + setRecurStartDate(); + }); + + CRM.$('input[name=is_recur_radio]').on('change', function() { + setRecurStartDate(); + }); + } -}); +})(CRM.$, CRM.ts('uk.artfulrobot.civicrm.gocardless'));