return NULL;
}
+ /**
+ * Modifies $params array for filtering financial types.
+ *
+ * @param array $params
+ * (reference ) an assoc array of name/value pairs.
+ *
+ */
+ public static function getAPILineItemParams(&$params) {
+ CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($types);
+ if ($types && empty($params['financial_type_id'])) {
+ $params['financial_type_id'] = array('IN' => array_keys($types));
+ }
+ elseif ($types) {
+ if (is_array($params['financial_type_id'])) {
+ $invalidFts = array_diff($params['financial_type_id'], array_keys($types));
+ }
+ elseif (!in_array($params['financial_type_id'], array_keys($types))) {
+ $invalidFts = $params['financial_type_id'];
+ }
+ if ($invalidFts) {
+ $params['financial_type_id'] = array('NOT IN' => $invalidFts);
+ }
+ }
+ else {
+ $params['financial_type_id'] = 0;
+ }
+ }
+
/**
* @param int $entityId
* @param $entityTable
*/
function civicrm_api3_line_item_get($params) {
if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus() && CRM_Utils_Array::value('check_permissions', $params)) {
- CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($types);
- if (empty($params['financial_type_id'])) {
- $params['financial_type_id'] = array('IN' => array_keys($types));
- }
- else {
- if (is_array($params['financial_type_id'])) {
- $invalidFts = array_diff($params['financial_type_id'], array_keys($types));
- }
- elseif (!in_array($params['financial_type_id'], array_keys($types))) {
- $invalidFts = $params['financial_type_id'];
- }
- if ($invalidFts) {
- $params['financial_type_id'] = array('NOT IN' => $invalidFts);
- }
- }
+ CRM_Price_BAO_LineItem::getAPILineItemParams($params);
}
return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
}
if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus() && CRM_Utils_Array::value('check_permissions', $params)) {
CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($types, CRM_Core_Action::DELETE);
if (empty($params['financial_type_id'])) {
- $params['financial_type_id'] = civicrm_api3('LineItem', 'getvalue', array(
- 'id' => $params['id'],
- 'return' => 'financial_type_id',
- ));
+ $params['financial_type_id'] = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_LineItem', $params['id'], 'financial_type_id');
}
if (!in_array($params['financial_type_id'], array_keys($types))) {
throw new API_Exception('You do not have permission to delete this line item');