Skip to content
Snippets Groups Projects
Forked from Extensions / mjwshared
325 commits behind the upstream repository.
Getbalance.php 975 B
<?php
/**
 * Action payment.
 *
 * @param array $params
 *
 * @return array
 *   API result array.
 * @throws CiviCRM_API3_Exception
 */
function civicrm_api3_contribution_getbalance($params) {
  $result['id'] = $params['id'];
  $result['total'] = (float) CRM_Price_BAO_LineItem::getLineTotal($params['id']);
  $result['paid'] = (float) CRM_Core_BAO_FinancialTrxn::getTotalPayments($params['id'], TRUE) ?: 0;
  $result['balance'] = $result['total'] - $result['paid'];
  $result['currency'] = civicrm_api3('Contribution', 'getvalue', [
    'return' => 'currency',
    'id' => $params['id'],
  ]);
  return civicrm_api3_create_success($result, $params);
}

/**
 * Action payment.
 *
 * @param array $params
 *
 * @return array
 */
function _civicrm_api3_contribution_getbalance_spec(&$params) {
  $idField = civicrm_api3('Contribution', 'getfield', [
    'name' => "id",
    'action' => "get",
  ]);
  $params['id'] = $idField['values'];
  $params['id']['api.required'] = 1;
}