Merge pull request #4893 from colemanw/INFRA-132
[civicrm-core.git] / CRM / Financial / BAO / FinancialType.php
index 5b1d71c5e922127aecfa1d4b3f63dde3e5503293..8fe113f6b2a8f2f27136a8788b347190a7162d56 100644 (file)
@@ -2,9 +2,9 @@
 
 /*
   +--------------------------------------------------------------------+
-  | CiviCRM version 4.4                                                |
+  | CiviCRM version 4.6                                                |
   +--------------------------------------------------------------------+
-  | Copyright CiviCRM LLC (c) 2004-2013                                |
+  | Copyright CiviCRM LLC (c) 2004-2014                                |
   +--------------------------------------------------------------------+
   | This file is a part of CiviCRM.                                    |
   |                                                                    |
@@ -29,7 +29,7 @@
 /**
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
  * $Id$
  *
  */
 class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
 
   /**
-   * static holder for the default LT
+   * Static holder for the default LT
    */
-  static $_defaultContributionType = null;
+  static $_defaultContributionType = NULL;
 
   /**
-   * class constructor
+   * Class constructor
    */
-  function __construct( ) {
-    parent::__construct( );
+  public 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
-   * contact_id. We'll tweak this function to be more full featured over a period
-   * of time. This is the inverse function of create. It also stores all the retrieved
-   * values in the default array
+   * Fetch object based on array of properties
    *
-   * @param array $params   (reference ) an assoc array of name/value pairs
-   * @param array $defaults (reference ) an assoc array to hold the flattened values
+   * @param array $params
+   *   (reference ) an assoc array of name/value pairs.
+   * @param array $defaults
+   *   (reference ) an assoc array to hold the flattened values.
    *
-   * @return object CRM_Contribute_BAO_ContributionType object
-   * @access public
+   * @return CRM_Contribute_BAO_ContributionType object
    * @static
    */
-  static function retrieve( &$params, &$defaults ) {
-    $financialType = new CRM_Financial_DAO_FinancialType( );
-    $financialType->copyValues( $params );
-    if ($financialType->find(true)) {
-      CRM_Core_DAO::storeValues( $financialType, $defaults );
+  public static function retrieve(&$params, &$defaults) {
+    $financialType = new CRM_Financial_DAO_FinancialType();
+    $financialType->copyValues($params);
+    if ($financialType->find(TRUE)) {
+      CRM_Core_DAO::storeValues($financialType, $defaults);
       return $financialType;
     }
-    return null;
+    return NULL;
   }
 
   /**
-   * update the is_active flag in the db
+   * Update the is_active flag in the db
    *
-   * @param int      $id        id of the database record
-   * @param boolean  $is_active value we want to set the is_active field
+   * @param int $id
+   *   Id of the database record.
+   * @param bool $is_active
+   *   Value we want to set the is_active field.
    *
-   * @return Object             DAO object on sucess, null otherwise
+   * @return Object
+   *   DAO object on sucess, null otherwise
    * @static
    */
-  static function setIsActive( $id, $is_active ) {
-    return CRM_Core_DAO::setFieldValue( 'CRM_Financial_DAO_FinancialType', $id, 'is_active', $is_active );
+  public static function setIsActive($id, $is_active) {
+    return CRM_Core_DAO::setFieldValue('CRM_Financial_DAO_FinancialType', $id, 'is_active', $is_active);
   }
 
   /**
-   * function to add the financial types
+   * Add the financial types
    *
-   * @param array $params reference array contains the values submitted by the form
-   * @param array $ids    reference array contains the id
+   * @param array $params
+   *   Reference array contains the values submitted by the form.
+   * @param array $ids
+   *   Reference array contains the id.
    *
-   * @access public
    * @static
    * @return object
    */
-  static function add(&$params, &$ids = array()) {
-    $params['is_active'] = CRM_Utils_Array::value('is_active', $params, false);
-    $params['is_deductible'] = CRM_Utils_Array::value('is_deductible', $params, false);
-    $params['is_reserved'] = CRM_Utils_Array::value('is_reserved', $params, false);
+  public static function add(&$params, &$ids = array()) {
+    if (empty($params['id'])) {
+      $params['is_active'] = CRM_Utils_Array::value('is_active', $params, FALSE);
+      $params['is_deductible'] = CRM_Utils_Array::value('is_deductible', $params, FALSE);
+      $params['is_reserved'] = CRM_Utils_Array::value('is_reserved', $params, FALSE);
+    }
 
     // action is taken depending upon the mode
     $financialType = new CRM_Financial_DAO_FinancialType();
     $financialType->copyValues($params);
-    if (CRM_Utils_Array::value('financialType', $ids)) {
+    if (!empty($ids['financialType'])) {
       $financialType->id = CRM_Utils_Array::value('financialType', $ids);
     }
     $financialType->save();
     // CRM-12470
-    if (!CRM_Utils_Array::value('financialType', $ids)) {
+    if (empty($ids['financialType']) && empty($params['id'])) {
       $titles = CRM_Financial_BAO_FinancialTypeAccount::createDefaultFinancialAccounts($financialType);
       $financialType->titles = $titles;
     }
@@ -116,15 +119,17 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
   }
 
   /**
-   * Function to delete financial Types
+   * Delete financial Types
    *
-   * @param int $contributionTypeId
+   * @param int $financialTypeId
+   *
+   * @return array|bool
    * @static
    */
-  static function del($financialTypeId) {
-    $financialType = new CRM_Financial_DAO_FinancialType( );
+  public static function del($financialTypeId) {
+    $financialType = new CRM_Financial_DAO_FinancialType();
     $financialType->id = $financialTypeId;
-    $financialType->find(true);
+    $financialType->find(TRUE);
     // tables to ingore checks for financial_type_id
     $ignoreTables = array('CRM_Financial_DAO_EntityFinancialAccount');
 
@@ -137,7 +142,7 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
       foreach ($occurrences as $occurence) {
         $className = get_class($occurence);
         if (!in_array($className, $ignoreTables)) {
-        $tables[] = $className;
+          $tables[] = $className;
         }
       }
       if (!empty($tables)) {
@@ -153,7 +158,7 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
     //delete from financial Type table
     $financialType->delete();
 
-    $entityFinancialType = new CRM_Financial_DAO_EntityFinancialAccount( );
+    $entityFinancialType = new CRM_Financial_DAO_EntityFinancialAccount();
     $entityFinancialType->entity_id = $financialTypeId;
     $entityFinancialType->entity_table = 'civicrm_financial_type';
     $entityFinancialType->delete();
@@ -161,13 +166,14 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
   }
 
   /**
-   * to fetch financial type having relationship as Income Account is
+   * fetch financial type having relationship as Income Account is
    *
    *
-   * @return array  all financial type with income account is relationship
+   * @return array
+   *   all financial type with income account is relationship
    * @static
    */
-  static function getIncomeFinancialType() {
+  public static function getIncomeFinancialType() {
     // Financial Type
     $financialType = CRM_Contribute_PseudoConstant::financialType();
     $revenueFinancialType = array();
@@ -175,9 +181,9 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
     CRM_Core_PseudoConstant::populate(
       $revenueFinancialType,
       'CRM_Financial_DAO_EntityFinancialAccount',
-      $all = True,
+      $all = TRUE,
       $retrieve = 'entity_id',
-      $filter = null,
+      $filter = NULL,
       "account_relationship = $relationTypeId AND entity_table = 'civicrm_financial_type' "
     );
 
@@ -189,4 +195,3 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
     return $financialType;
   }
 }
-