Merge pull request #4621 from atif-shaikh/CRM-15589
[civicrm-core.git] / CRM / Financial / BAO / FinancialType.php
index 8abb756abbda9207f50c8a433266a1c6bfa60d9b..9b99f007ec56f14aefd0d4c59da9fdf3feba6feb 100644 (file)
@@ -49,16 +49,12 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
   }
 
   /**
-   * 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
    *
-   * @return object CRM_Contribute_BAO_ContributionType object
+   * @return CRM_Contribute_BAO_ContributionType object
    * @access public
    * @static
    */
@@ -86,7 +82,7 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
   }
 
   /**
-   * 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
@@ -95,10 +91,12 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
    * @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_reserved'] = CRM_Utils_Array::value('is_reserved', $params, false);
+  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();
@@ -108,7 +106,7 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
     }
     $financialType->save();
     // CRM-12470
-    if (empty($ids['financialType'])) {
+    if (empty($ids['financialType']) && empty($params['id'])) {
       $titles = CRM_Financial_BAO_FinancialTypeAccount::createDefaultFinancialAccounts($financialType);
       $financialType->titles = $titles;
     }
@@ -116,9 +114,11 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType {
   }
 
   /**
-   * Function to delete financial Types
+   * delete financial Types
+   *
+   * @param int $financialTypeId
    *
-   * @param int $contributionTypeId
+   * @return array|bool
    * @static
    */
   static function del($financialTypeId) {