<?php
-
/*
+--------------------------------------------------------------------+
| CiviCRM version 4.3 |
*
* @param object $lineItem line item object
* @param object $contribution contribution object
- *
+ *
* @access public
- * @static
+ * @static
* @return void
*/
static function add($lineItem, $contribution) {
$contributionStatuses = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
- $financialItemStatus = CRM_Core_PseudoConstant::accountOptionValues('financial_item_status');
+ $financialItemStatus = CRM_Core_PseudoConstant::get('CRM_Financial_DAO_FinancialItem', 'status_id');
if ($contribution->contribution_status_id == array_search('Completed', $contributionStatuses)) {
$itemStatus = array_search('Paid', $financialItemStatus);
- }
+ }
elseif ($contribution->contribution_status_id == array_search('Pending', $contributionStatuses)) {
$itemStatus = array_search('Unpaid', $financialItemStatus);
- }
+ }
$params = array(
'transaction_date' => CRM_Utils_Date::isoToMysql($contribution->receive_date),
- 'contact_id' => $contribution->contact_id,
+ 'contact_id' => $contribution->contact_id,
'amount' => $lineItem->line_total,
'currency' => $contribution->currency,
'entity_table' => 'civicrm_line_item',
'description' => ( $lineItem->qty != 1 ? $lineItem->qty . ' of ' : ''). ' ' . $lineItem->label,
'status_id' => $itemStatus,
);
-
+
if ($lineItem->financial_type_id) {
- $searchParams = array(
+ $searchParams = array(
'entity_table' => 'civicrm_financial_type',
'entity_id' => $lineItem->financial_type_id,
'account_relationship' => 1,
$trxnId['id'] = $trxn['financialTrxnId'];
self::create($params, NULL, $trxnId);
- }
+ }
/**
* function to create the financial Items and financial enity trxn
* @param array $params associated array to create financial items
* @param array $ids financial item ids
* @param array $trxnIds financial item ids
- *
+ *
* @access public
- * @static
+ * @static
* @return object
*/
static function create(&$params, $ids = NULL, $trxnIds = NULL) {
$financialItem = new CRM_Financial_DAO_FinancialItem();
$financialItem->copyValues($params);
if (CRM_Utils_Array::value('id', $ids)) {
- $financialItem->id = $ids['id'];
+ $financialItem->id = $ids['id'];
}
$financialItem->save();
'financial_trxn_id' => $trxnIds['id'],
'amount' => $params['amount'],
);
-
+
$entity_trxn = new CRM_Financial_DAO_EntityFinancialTrxn();
$entity_trxn->copyValues($entity_financial_trxn_params);
if (CRM_Utils_Array::value('entityFinancialTrxnId', $ids)) {
$entity_trxn->save();
}
return $financialItem;
- }
+ }
/**
* takes an associative array and creates a entity financial transaction object
*
* @param array $params (reference ) an assoc array of name/value pairs
*
- * @param boolean $maxID to retrive max id
+ * @param boolean $maxID to retrive max id
*
* @return array
* @access public
'financial_trxn_id' => $financialItem->financial_trxn_id,
'amount' => $financialItem->amount,
);
- }
+ }
if (!empty($financialItems)) {
return $financialItems;
}
return null;
}
}
-
+
/**
* check if contact is present in financial_item table
*
if (empty($contactIds)) {
return FALSE;
}
-
+
$allowPermDelete = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'allowPermDeleteFinancial');
if (!$allowPermDelete) {
$url = CRM_Utils_System::url('civicrm/contact/view', "reset=1&cid=$dao->id");
$not_deleted[$dao->id] = "<a href='$url'>$dao->display_name</a>";
}
-
+
$errorStatus = '';
if (is_array($error)) {
$errorStatus = '<ul><li>' . implode('</li><li>', $not_deleted) . '</li></ul>';
}
-
+
$error['_qf_default'] = $errorStatus . ts('This contact(s) can not be permanently deleted because the contact record is linked to one or more live financial transactions. Deleting this contact would result in the loss of financial data.');
- return $error;
+ return $error;
}
}
return FALSE;