/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.4 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2013 |
+--------------------------------------------------------------------+
/**
* static holder for the default LT
*/
- static $_defaultContributionType = null;
+ static $_defaultContributionType = NULL;
/**
* class constructor
*/
- function __construct( ) {
- parent::__construct( );
+ function __construct() {
+ parent::__construct();
}
-
+
/**
* Takes a bunch of params that are needed to match certain criteria and
* retrieves the relevant objects. Typically the valid params are only
* @static
*/
static function retrieve(&$params, &$defaults) {
- $financialAccount = new CRM_Financial_DAO_FinancialAccount( );
- $financialAccount->copyValues( $params );
- if ($financialAccount->find(true)) {
+ $financialAccount = new CRM_Financial_DAO_FinancialAccount();
+ $financialAccount->copyValues($params);
+ if ($financialAccount->find(TRUE)) {
CRM_Core_DAO::storeValues($financialAccount, $defaults);
return $financialAccount;
}
- return null;
+ return NULL;
}
/**
*
* @param array $params reference array contains the values submitted by the form
* @param array $ids reference array contains the id
- *
+ *
* @access public
- * @static
+ * @static
* @return object
*/
static function add(&$params, &$ids) {
- $params['is_active'] = CRM_Utils_Array::value( 'is_active', $params, false );
- $params['is_deductible'] = CRM_Utils_Array::value( 'is_deductible', $params, false );
- $params['is_tax'] = CRM_Utils_Array::value( 'is_tax', $params, false );
- $params['is_header_account'] = CRM_Utils_Array::value( 'is_header_account', $params, false );
- $params['is_default'] = CRM_Utils_Array::value( 'is_default', $params, false );
- if (CRM_Utils_Array::value('is_default', $params)) {
- $query = 'UPDATE civicrm_financial_account SET is_default = 0';
- CRM_Core_DAO::executeQuery( $query );
- }
-
+ $params['is_active'] = CRM_Utils_Array::value('is_active', $params, FALSE);
+ $params['is_deductible'] = CRM_Utils_Array::value('is_deductible', $params, FALSE);
+ $params['is_tax'] = CRM_Utils_Array::value('is_tax', $params, FALSE);
+ $params['is_header_account'] = CRM_Utils_Array::value('is_header_account', $params, FALSE);
+ $params['is_default'] = CRM_Utils_Array::value('is_default', $params, FALSE);
+ if (!empty($params['is_default'])) {
+ $query = 'UPDATE civicrm_financial_account SET is_default = 0 WHERE financial_account_type_id = %1';
+ $queryParams = array(1 => array($params['financial_account_type_id'], 'Integer'));
+ CRM_Core_DAO::executeQuery($query, $queryParams);
+ }
+
// action is taken depending upon the mode
- $financialAccount = new CRM_Financial_DAO_FinancialAccount( );
+ $financialAccount = new CRM_Financial_DAO_FinancialAccount();
$financialAccount->copyValues($params);
- $financialAccount->id = CRM_Utils_Array::value( 'contributionType', $ids );
- $financialAccount->save( );
+ $financialAccount->id = CRM_Utils_Array::value('contributionType', $ids);
+ $financialAccount->save();
return $financialAccount;
}
-
- /**
- * Function to delete financial Types
- *
- * @param int $financialAccountId
- * @static
- */
- static function financialAccountValidation($fields,&$errors) {
- $financialAccount = array( );
- if (CRM_Utils_Array::value('financial_type_id', $fields)) {
- CRM_Core_PseudoConstant::populate( $financialAccount,
- 'CRM_Financial_DAO_EntityFinancialAccount',
- $all = True,
- $retrieve = 'financial_account_id',
- $filter = null,
- " account_relationship = 6 AND entity_id = {$fields['financial_type_id']} " );
- if ( !current( $financialAccount ) ) {
- $errors['financial_type_id'] = "Financial Account of account relationship of 'Asset Account is' is not configured for this Financial Type";
- }
- }
- }
-
+
/**
- * Function to delete financial Types
- *
+ * Function to delete financial Types
+ *
* @param int $financialAccountId
* @static
*/
static function del($financialAccountId) {
- //checking if financial type is present
- $check = false;
-
+ //checking if financial type is present
+ $check = FALSE;
+
//check dependencies
- $dependancy = array(
- array('Core', 'FinancialTrxn', 'to_financial_account_id'),
- array('Financial', 'FinancialTypeAccount', 'financial_account_id' ),
+ $dependancy = array(
+ array('Core', 'FinancialTrxn', 'to_financial_account_id'),
+ array('Financial', 'FinancialTypeAccount', 'financial_account_id'),
);
foreach ($dependancy as $name) {
require_once (str_replace('_', DIRECTORY_SEPARATOR, "CRM_" . $name[0] . "_BAO_" . $name[1]) . ".php");
- eval('$bao = new CRM_' . $name[0] . '_BAO_' . $name[1] . '();');
+ $className = "CRM_{$name[0]}_BAO_{$name[1]}";
+ $bao = new $className();
$bao->$name[2] = $financialAccountId;
- if ($bao->find(true)) {
- $check = true;
+ if ($bao->find(TRUE)) {
+ $check = TRUE;
}
}
-
+
if ($check) {
- CRM_Core_Session::setStatus( ts('This financial account cannot be deleted since it is being used as a header account. Please remove it from being a header account before trying to delete it again.') );
- return CRM_Utils_System::redirect( CRM_Utils_System::url( 'civicrm/admin/financial/financialAccount', "reset=1&action=browse" ));
+ CRM_Core_Session::setStatus(ts('This financial account cannot be deleted since it is being used as a header account. Please remove it from being a header account before trying to delete it again.'));
+ return CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/admin/financial/financialAccount', "reset=1&action=browse"));
}
-
+
//delete from financial Type table
- $financialAccount = new CRM_Financial_DAO_FinancialAccount( );
+ $financialAccount = new CRM_Financial_DAO_FinancialAccount();
$financialAccount->id = $financialAccountId;
$financialAccount->delete();
}
-
+
/**
* get accounting code for a financial type with account relation Income Account is
*
);
return CRM_Core_DAO::singleValueQuery($query, $params);
}
+
+ /**
+ * get AR account
+ *
+ * @param $financialAccountId financial account id
+ *
+ * @param $financialAccountTypeId financial account type id
+ *
+ * @param $accountTypeCode account type code
+ *
+ * @return integer count
+ * @static
+ */
+ static function getARAccounts($financialAccountId, $financialAccountTypeId = NULL, $accountTypeCode = 'ar') {
+ if (!$financialAccountTypeId) {
+ $financialAccountType = CRM_Core_PseudoConstant::accountOptionValues('financial_account_type');
+ $financialAccountTypeId = array_search('Asset', $financialAccountType);
+ }
+ $query = "SELECT count(id) FROM civicrm_financial_account WHERE financial_account_type_id = %1 AND LCASE(account_type_code) = %2
+ AND id != %3 AND is_active = 1;";
+ $params = array(
+ 1 => array($financialAccountTypeId, 'Integer'),
+ 2 => array(strtolower($accountTypeCode), 'String'),
+ 3 => array($financialAccountId, 'Integer'),
+ );
+ return CRM_Core_DAO::singleValueQuery($query, $params);
+ }
}