* @copyright CiviCRM LLC https://civicrm.org/licensing
*/
+use Civi\Api4\PaymentProcessor;
+
/**
* Page for displaying list of payment processors.
*/
* Browse all payment processors.
*
* @param null $action
+ *
+ * @throws \API_Exception
*/
- public function browse($action = NULL) {
- // get all custom groups sorted by weight
- $paymentProcessor = [];
- $dao = new CRM_Financial_DAO_PaymentProcessor();
- $dao->is_test = 0;
- $dao->domain_id = CRM_Core_Config::domainID();
- $dao->orderBy('name');
- $dao->find();
-
- while ($dao->fetch()) {
- $paymentProcessor[$dao->id] = [];
- CRM_Core_DAO::storeValues($dao, $paymentProcessor[$dao->id]);
- $paymentProcessor[$dao->id]['payment_processor_type'] = CRM_Core_PseudoConstant::getLabel(
- 'CRM_Financial_DAO_PaymentProcessor', 'payment_processor_type_id', $dao->payment_processor_type_id
- );
+ public function browse($action = NULL): void {
+ $paymentProcessors = PaymentProcessor::get(FALSE)
+ ->addWhere('is_test', '=', 0)
+ ->addWhere('domain_id', '=', CRM_Core_Config::domainID())
+ ->setSelect(['id', 'name', 'description', 'title', 'is_active', 'is_default', 'payment_processor_type_id:label'])
+ ->addOrderBy('name')->execute()->indexBy('id');
+
+ foreach ($paymentProcessors as $paymentProcessorID => $paymentProcessor) {
+ // Annoyingly Smarty can't handle the colon syntax (or a .)
+ $paymentProcessors[$paymentProcessorID]['payment_processor_type'] = $paymentProcessor['payment_processor_type_id:label'];
// form all action links
$action = array_sum(array_keys($this->links()));
+ $action -= $paymentProcessor['is_active'] ? CRM_Core_Action::ENABLE : CRM_Core_Action::DISABLE;
- // update enable/disable links.
- if ($dao->is_active) {
- $action -= CRM_Core_Action::ENABLE;
- }
- else {
- $action -= CRM_Core_Action::DISABLE;
- }
-
- $paymentProcessor[$dao->id]['action'] = CRM_Core_Action::formLink(self::links(), $action,
- array('id' => $dao->id),
+ $paymentProcessors[$paymentProcessorID]['action'] = CRM_Core_Action::formLink($this->links(), $action,
+ ['id' => $paymentProcessorID],
ts('more'),
FALSE,
'paymentProcessor.manage.action',
'PaymentProcessor',
- $dao->id
+ $paymentProcessorID
);
- $paymentProcessor[$dao->id]['financialAccount'] = CRM_Contribute_PseudoConstant::getRelationalFinancialAccount($dao->id, NULL, 'civicrm_payment_processor', 'financial_account_id.name');
+ $paymentProcessors[$paymentProcessorID]['financialAccount'] = CRM_Contribute_PseudoConstant::getRelationalFinancialAccount($paymentProcessorID, NULL, 'civicrm_payment_processor', 'financial_account_id.name');
try {
- $paymentProcessor[$dao->id]['test_id'] = CRM_Financial_BAO_PaymentProcessor::getTestProcessorId($dao->id);
+ $paymentProcessors[$paymentProcessorID]['test_id'] = CRM_Financial_BAO_PaymentProcessor::getTestProcessorId($paymentProcessorID);
}
catch (CiviCRM_API3_Exception $e) {
- CRM_Core_Session::setStatus(ts('No test processor entry exists for %1. Not having a test entry for each processor could cause problems', [$dao->name]));
+ CRM_Core_Session::setStatus(ts('No test processor entry exists for %1. Not having a test entry for each processor could cause problems', [$paymentProcessor['name']]));
}
}
- $this->assign('rows', $paymentProcessor);
+ $this->assign('rows', $paymentProcessors);
}
/**