From 80cdb781835340b3146c007c0d36b8d84c29d0b0 Mon Sep 17 00:00:00 2001 From: CiviWare Solutions Date: Tue, 18 Dec 2018 22:59:29 +0000 Subject: [PATCH] Handled for Payment edit form --- CRM/Contribute/CheckAPIWrapper.php | 32 ++++++++++++++++++++++++++++++ checknumberpaymentmethod.php | 16 ++++++++++++++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 CRM/Contribute/CheckAPIWrapper.php diff --git a/CRM/Contribute/CheckAPIWrapper.php b/CRM/Contribute/CheckAPIWrapper.php new file mode 100644 index 0000000..e985943 --- /dev/null +++ b/CRM/Contribute/CheckAPIWrapper.php @@ -0,0 +1,32 @@ +get_template_vars('payment_instrument_check_number_numberOfCalls'); + if ($numberOfCalls) { + if ($numberOfCalls == 1) { + $apiRequest['params']['check_number'] = CRM_Core_Smarty::singleton()->get_template_vars('payment_instrument_check_number'); + } + $numberOfCalls--; + CRM_Core_Smarty::singleton()->assign('payment_instrument_check_number_numberOfCalls', $numberOfCalls); + } + } + return $apiRequest; + } + + /** + * alter the result before returning it to the caller. + */ + public function toApiOutput($apiRequest, $result) { + return $result; + } + +} diff --git a/checknumberpaymentmethod.php b/checknumberpaymentmethod.php index e517dc3..0f64874 100644 --- a/checknumberpaymentmethod.php +++ b/checknumberpaymentmethod.php @@ -223,6 +223,20 @@ function checknumberpaymentmethod_civicrm_buildForm($formName, &$form) { $paymentInstrumentsFromSettings = civicrm_api3('Setting', 'getvalue', [ 'name' => 'check_payment_instrument_ids', ]); + + if ($form->_flagSubmitted && isset($form->_submitValues['check_number']) + && in_array($form->_submitValues['payment_instrument_id'], $paymentInstrumentsFromSettings) + ) { + $values = $form->getVar('_values'); + $numberOfCalls = 1; + if ($form->_submitValues['payment_instrument_id'] != $values['payment_instrument_id']) { + $numberOfCalls = 2; + } + + CRM_Core_Smarty::singleton()->assign('payment_instrument_check_number_numberOfCalls', $numberOfCalls); + CRM_Core_Smarty::singleton()->assign('payment_instrument_check_number', $form->_submitValues['check_number']); + } + $paymentInstrumentsFromSettings[] = (string) CRM_Core_PseudoConstant::getKey( 'CRM_Contribute_BAO_Contribution', 'payment_instrument_id', @@ -290,7 +304,7 @@ function _checknumberpaymentmethod_alterpayments(&$payments) { * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_pre */ function checknumberpaymentmethod_civicrm_apiWrappers(&$wrappers, $apiRequest) { - if ($apiRequest['entity'] == 'Contribution' && $apiRequest['action'] == 'create') { + if (in_array($apiRequest['entity'], ['Contribution', 'FinancialTrxn']) && $apiRequest['action'] == 'create') { $wrappers[] = new CRM_Contribute_CheckAPIWrapper(); } }