CCRM-15821 Provide option to notify PCP owner
[civicrm-core.git] / CRM / Contribute / BAO / Contribution.php
index 8b08f86d7182e7dbf9cee3938691d35d2c459de0..a936639b5e8048fe660e9b4f63056bd2bc20f9de 100644 (file)
@@ -23,7 +23,7 @@
  | GNU Affero General Public License or the licensing of CiviCRM,     |
  | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
  +--------------------------------------------------------------------+
-*/
+ */
 
 /**
  *
@@ -38,7 +38,6 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    * Static field for all the contribution information that we can potentially import
    *
    * @var array
-   * @static
    */
   static $_importableFields = NULL;
 
@@ -46,7 +45,6 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    * Static field for all the contribution information that we can potentially export
    *
    * @var array
-   * @static
    */
   static $_exportableFields = NULL;
 
@@ -66,19 +64,14 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    */
   public $_component = NULL;
 
-  /*
-   * construct method
-   */
   /**
    * Class constructor
    *
-   * @access public
    * @return \CRM_Contribute_DAO_Contribution
    */
   /**
-   *
    */
-  function __construct() {
+  public function __construct() {
     parent::__construct();
   }
 
@@ -89,16 +82,16 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    * contribution object. the params array could contain additional unused name/value
    * pairs
    *
-   * @param array  $params (reference ) an assoc array of name/value pairs
-   * @param array $ids    the array that holds all the db ids
+   * @param array $params
+   *   (reference ) an assoc array of name/value pairs.
+   * @param array $ids
+   *   The array that holds all the db ids.
    *
-   * @return CRM_Contribute_BAO_Contribution object
-   * @access public
-   * @static
+   * @return CRM_Contribute_BAO_Contribution|void
    */
-  static function add(&$params, $ids = array()) {
+  public static function add(&$params, $ids = array()) {
     if (empty($params)) {
-      return;
+      return NULL;
     }
     //per http://wiki.civicrm.org/confluence/display/CRM/Database+layer we are moving away from $ids array
     $contributionID = CRM_Utils_Array::value('contribution', $ids, CRM_Utils_Array::value('id', $params));
@@ -133,7 +126,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
       }
     }
 
-   //set defaults in create mode
+    //set defaults in create mode
     if (!$contributionID) {
       CRM_Core_DAO::setCreateDefaults($params, self::getDefaults());
       self::calculateMissingAmountParams($params);
@@ -206,7 +199,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    * Get defaults for new entity
    * @return array
    */
-  static function getDefaults() {
+  public static function getDefaults() {
     return array(
       'payment_instrument_id' => key(CRM_Core_OptionGroup::values('payment_instrument',
           FALSE, FALSE, FALSE, 'AND is_default = 1')
@@ -219,15 +212,16 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    * Given the list of params in the params array, fetch the object
    * and store the values in the values array
    *
-   * @param array $params input parameters to find object
-   * @param array $values output values of the object
-   * @param array $ids    the array that holds all the db ids
+   * @param array $params
+   *   Input parameters to find object.
+   * @param array $values
+   *   Output values of the object.
+   * @param array $ids
+   *   The array that holds all the db ids.
    *
    * @return CRM_Contribute_BAO_Contribution|null the found object or null
-   * @access public
-   * @static
    */
-  static function &getValues($params, &$values, &$ids) {
+  public static function &getValues($params, &$values, &$ids) {
     if (empty($params)) {
       return NULL;
     }
@@ -278,11 +272,11 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    * @return int
    */
   public function getNumTermsByContributionAndMembershipType($membershipTypeID, $contributionID) {
-     $numTerms = CRM_Core_DAO::singleValueQuery("
+    $numTerms = CRM_Core_DAO::singleValueQuery("
       SELECT membership_num_terms FROM civicrm_line_item li
       LEFT JOIN civicrm_price_field_value v ON li.price_field_value_id = v.id
       WHERE contribution_id = %1 AND membership_type_id = %2",
-      array(1 => array($contributionID, 'Integer') , 2 => array($membershipTypeID, 'Integer'))
+      array(1 => array($contributionID, 'Integer'), 2 => array($membershipTypeID, 'Integer'))
     );
     // default of 1 is precautionary
     return empty($numTerms) ? 1 : $numTerms;
@@ -291,14 +285,14 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
   /**
    * Takes an associative array and creates a contribution object
    *
-   * @param array $params (reference ) an assoc array of name/value pairs
-   * @param array $ids    the array that holds all the db ids
+   * @param array $params
+   *   (reference ) an assoc array of name/value pairs.
+   * @param array $ids
+   *   The array that holds all the db ids.
    *
-   * @return CRM_Contribute_BAO_Contribution object
-   * @access public
-   * @static
+   * @return CRM_Contribute_BAO_Contribution
    */
-  static function create(&$params, $ids = array()) {
+  public static function create(&$params, $ids = array()) {
     $dateFields = array('receive_date', 'cancel_date', 'receipt_date', 'thankyou_date');
     foreach ($dateFields as $df) {
       if (isset($params[$df])) {
@@ -350,7 +344,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
       );
       $retrieveRequired = 0;
       foreach ($titleFields as $titleField) {
-        if(!isset($contribution->$titleField)){
+        if (!isset($contribution->$titleField)) {
           $retrieveRequired = 1;
           break;
         }
@@ -398,13 +392,17 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
       $softParams['pcp_roll_nickname'] = CRM_Utils_Array::value('pcp_roll_nickname', $pcp);
       $softParams['pcp_personal_note'] = CRM_Utils_Array::value('pcp_personal_note', $pcp);
       $softParams['soft_credit_type_id'] = CRM_Core_OptionGroup::getValue('soft_credit_type', 'pcp', 'name');
-      CRM_Contribute_BAO_ContributionSoft::add($softParams);
+      $contributionSoft = CRM_Contribute_BAO_ContributionSoft::add($softParams);
+      //Send notification to owner for PCP
+      if ($contributionSoft->pcp_id) {
+        CRM_Contribute_Form_Contribution_Confirm::pcpNotifyOwner($contribution, $contributionSoft);
+      }
     }
     if (isset($params['soft_credit'])) {
       $softParams = $params['soft_credit'];
 
       if (!empty($softIDs)) {
-        foreach ( $softIDs as $softID) {
+        foreach ($softIDs as $softID) {
           if (!in_array($softID, $params['soft_credit_ids'])) {
             $deleteParams = array('id' => $softID);
             CRM_Contribute_BAO_ContributionSoft::del($deleteParams);
@@ -439,12 +437,12 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
       );
       $retrieveRequired = 0;
       foreach ($titleFields as $titleField) {
-        if(!isset($contribution->$titleField)){
+        if (!isset($contribution->$titleField)) {
           $retrieveRequired = 1;
           break;
         }
       }
-      if($retrieveRequired == 1){
+      if ($retrieveRequired == 1) {
         $contribution->find(TRUE);
       }
       $contributionTypes = CRM_Contribute_PseudoConstant::financialType();
@@ -480,14 +478,14 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
   /**
    * Get the values for pseudoconstants for name->value and reverse.
    *
-   * @param array   $defaults (reference) the default values, some of which need to be resolved.
-   * @param boolean $reverse  true if we want to resolve the values in the reverse direction (value -> name)
+   * @param array $defaults
+   *   (reference) the default values, some of which need to be resolved.
+   * @param bool $reverse
+   *   True if we want to resolve the values in the reverse direction (value -> name).
    *
    * @return void
-   * @access public
-   * @static
    */
-  static function resolveDefaults(&$defaults, $reverse = FALSE) {
+  public static function resolveDefaults(&$defaults, $reverse = FALSE) {
     self::lookupValue($defaults, 'financial_type', CRM_Contribute_PseudoConstant::financialType(), $reverse);
     self::lookupValue($defaults, 'payment_instrument', CRM_Contribute_PseudoConstant::paymentInstrument(), $reverse);
     self::lookupValue($defaults, 'contribution_status', CRM_Contribute_PseudoConstant::contributionStatus(), $reverse);
@@ -495,14 +493,14 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
   }
 
   /**
-   * This function is used to convert associative array names to values
+   * convert associative array names to values
    * and vice-versa.
    *
    * This function is used by both the web form layer and the api. Note that
    * the api needs the name => value conversion, also the view layer typically
    * requires value => name conversion
    */
-  static function lookupValue(&$defaults, $property, &$lookup, $reverse) {
+  public static function lookupValue(&$defaults, $property, &$lookup, $reverse) {
     $id = $property . '_id';
 
     $src = $reverse ? $property : $id;
@@ -529,16 +527,17 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    * 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
    *
-   * @param array $params   (reference ) an assoc array of name/value pairs
-   * @param array $defaults (reference ) an assoc array to hold the name / value pairs
+   * @param array $params
+   *   (reference ) an assoc array of name/value pairs.
+   * @param array $defaults
+   *   (reference ) an assoc array to hold the name / value pairs.
    *                        in a hierarchical manner
-   * @param array $ids      (reference) the array that holds all the db ids
+   * @param array $ids
+   *   (reference) the array that holds all the db ids.
    *
-   * @return CRM_Contribute_BAO_Contribution object
-   * @access public
-   * @static
+   * @return CRM_Contribute_BAO_Contribution
    */
-  static function retrieve(&$params, &$defaults, &$ids) {
+  public static function retrieve(&$params, &$defaults, &$ids) {
     $contribution = CRM_Contribute_BAO_Contribution::getValues($params, $defaults, $ids);
     return $contribution;
   }
@@ -553,11 +552,10 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    * @param string $contactType
    * @param bool $status
    *
-   * @return array array of importable Fields
-   * @access public
-   * @static
+   * @return array
+   *   array of importable Fields
    */
-  static function &importableFields($contactType = 'Individual', $status = TRUE) {
+  public static function &importableFields($contactType = 'Individual', $status = TRUE) {
     if (!self::$_importableFields) {
       if (!self::$_importableFields) {
         self::$_importableFields = array();
@@ -579,7 +577,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
       // Using new Dedupe rule.
       $ruleParams = array(
         'contact_type' => $contactType,
-        'used'         => 'Unsupervised',
+        'used' => 'Unsupervised',
       );
       $fieldsArray = CRM_Dedupe_BAO_Rule::dedupeRuleFields($ruleParams);
       $tmpContactField = array();
@@ -623,32 +621,41 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
   /**
    * @return array
    */
-  static function &exportableFields() {
+  public static function &exportableFields() {
     if (!self::$_exportableFields) {
       if (!self::$_exportableFields) {
         self::$_exportableFields = array();
       }
 
-      $impFields          = CRM_Contribute_DAO_Contribution::export();
-      $expFieldProduct    = CRM_Contribute_DAO_Product::export();
-      $expFieldsContrib   = CRM_Contribute_DAO_ContributionProduct::export();
-      $typeField          = CRM_Financial_DAO_FinancialType::export();
-      $financialAccount   = CRM_Financial_DAO_FinancialAccount::export();
-      $optionField        = CRM_Core_OptionValue::getFields($mode = 'contribute');
+      $impFields = CRM_Contribute_DAO_Contribution::export();
+      $expFieldProduct = CRM_Contribute_DAO_Product::export();
+      $expFieldsContrib = CRM_Contribute_DAO_ContributionProduct::export();
+      $typeField = CRM_Financial_DAO_FinancialType::export();
+      $financialAccount = CRM_Financial_DAO_FinancialAccount::export();
+      $optionField = CRM_Core_OptionValue::getFields($mode = 'contribute');
       $contributionStatus = array(
         'contribution_status' => array(
           'title' => ts('Contribution Status'),
           'name' => 'contribution_status',
-          'data_type' => CRM_Utils_Type::T_STRING
-        ));
+          'data_type' => CRM_Utils_Type::T_STRING,
+        ),
+      );
+
+      $contributionPage = array(
+        'contribution_page' => array(
+          'title' => ts('Contribution Page'),
+          'name' => 'contribution_page',
+          'where' => 'civicrm_contribution_page.title',
+          'data_type' => CRM_Utils_Type::T_STRING,
+        ),
+      );
 
       $contributionNote = array(
-        'contribution_note' =>
-        array(
+        'contribution_note' => array(
           'title' => ts('Contribution Note'),
           'name' => 'contribution_note',
-          'data_type' => CRM_Utils_Type::T_TEXT
-        )
+          'data_type' => CRM_Utils_Type::T_TEXT,
+        ),
       );
 
       $contributionRecurId = array(
@@ -656,13 +663,14 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
           'title' => ts('Recurring Contributions ID'),
           'name' => 'contribution_recur_id',
           'where' => 'civicrm_contribution.contribution_recur_id',
-          'data_type' => CRM_Utils_Type::T_INT
-        ));
+          'data_type' => CRM_Utils_Type::T_INT,
+        ),
+      );
 
       $extraFields = array(
         'contribution_batch' => array(
-          'title' => ts('Batch Name')
-        )
+          'title' => ts('Batch Name'),
+        ),
       );
 
       $softCreditFields = array(
@@ -670,29 +678,29 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
           'name' => 'contribution_soft_credit_name',
           'title' => 'Soft Credit For',
           'where' => 'civicrm_contact_d.display_name',
-          'data_type' => CRM_Utils_Type::T_STRING
+          'data_type' => CRM_Utils_Type::T_STRING,
         ),
         'contribution_soft_credit_amount' => array(
           'name' => 'contribution_soft_credit_amount',
           'title' => 'Soft Credit Amount',
           'where' => 'civicrm_contribution_soft.amount',
-          'data_type' => CRM_Utils_Type::T_MONEY
+          'data_type' => CRM_Utils_Type::T_MONEY,
         ),
         'contribution_soft_credit_type' => array(
           'name' => 'contribution_soft_credit_type',
           'title' => 'Soft Credit Type',
           'where' => 'contribution_softcredit_type.label',
-          'data_type' => CRM_Utils_Type::T_STRING
+          'data_type' => CRM_Utils_Type::T_STRING,
         ),
         'contribution_soft_credit_contribution_id' => array(
           'name' => 'contribution_soft_credit_contribution_id',
           'title' => 'Soft Credit For Contribution ID',
           'where' => 'civicrm_contribution_soft.contribution_id',
-          'data_type' => CRM_Utils_Type::T_INT
+          'data_type' => CRM_Utils_Type::T_INT,
         ),
       );
 
-      $fields = array_merge($impFields, $typeField, $contributionStatus, $optionField, $expFieldProduct,
+      $fields = array_merge($impFields, $typeField, $contributionStatus, $contributionPage, $optionField, $expFieldProduct,
         $expFieldsContrib, $contributionNote, $contributionRecurId, $extraFields, $softCreditFields, $financialAccount,
         CRM_Core_BAO_CustomField::getFieldsForImport('Contribution')
       );
@@ -710,7 +718,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    *
    * @return array|null
    */
-  static function getTotalAmountAndCount($status = NULL, $startDate = NULL, $endDate = NULL) {
+  public static function getTotalAmountAndCount($status = NULL, $startDate = NULL, $endDate = NULL) {
     $where = array();
     switch ($status) {
       case 'Valid':
@@ -743,15 +751,16 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = civicrm_contribution.conta
   GROUP BY  currency
 ";
 
-    $dao    = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
+    $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
     $amount = array();
-    $count  = 0;
+    $count = 0;
     while ($dao->fetch()) {
       $count += $dao->total_count;
       $amount[] = CRM_Utils_Money::format($dao->total_amount, $dao->currency);
     }
     if ($count) {
-      return array('amount' => implode(', ', $amount),
+      return array(
+        'amount' => implode(', ', $amount),
         'count' => $count,
       );
     }
@@ -763,10 +772,10 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = civicrm_contribution.conta
    *
    * @param int $id
    *
-   * @return mixed|null $results no of deleted Contribution on success, false otherwise@access public
-   * @static
+   * @return mixed|null
+   *   $results no of deleted Contribution on success, false otherwise
    */
-  static function deleteContribution($id) {
+  public static function deleteContribution($id) {
     CRM_Utils_Hook::pre('delete', 'Contribution', $id, CRM_Core_DAO::$_nullArray);
 
     $transaction = new CRM_Core_Transaction();
@@ -833,16 +842,16 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = civicrm_contribution.conta
   /**
    * Check if there is a contribution with the same trxn_id or invoice_id
    *
-   * @param array $input an assoc array of name/value pairs
-   * @param array $duplicates (reference ) store ids of duplicate contribs
-   *
+   * @param array $input
+   *   An assoc array of name/value pairs.
+   * @param array $duplicates
+   *   (reference) store ids of duplicate contribs.
    * @param int $id
    *
-   * @return boolean true if duplicate, false otherwise
-   * @access public
-   * static
+   * @return bool
+   *   true if duplicate, false otherwise
    */
-  static function checkDuplicate($input, &$duplicates, $id = NULL) {
+  public static function checkDuplicate($input, &$duplicates, $id = NULL) {
     if (!$id) {
       $id = CRM_Utils_Array::value('id', $input);
     }
@@ -872,8 +881,8 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = civicrm_contribution.conta
       $input[3] = array($id, 'Integer');
     }
 
-    $query  = "SELECT id FROM civicrm_contribution WHERE $clause";
-    $dao    = CRM_Core_DAO::executeQuery($query, $input);
+    $query = "SELECT id FROM civicrm_contribution WHERE $clause";
+    $dao = CRM_Core_DAO::executeQuery($query, $input);
     $result = FALSE;
     while ($dao->fetch()) {
       $duplicates[] = $dao->id;
@@ -889,13 +898,12 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = civicrm_contribution.conta
    * contribution_product object. the params array could contain additional unused name/value
    * pairs
    *
-   * @param array  $params (reference ) an assoc array of name/value pairs
+   * @param array $params
+   *   (reference) an assoc array of name/value pairs.
    *
-   * @return CRM_Contribute_BAO_ContributionProduct object
-   * @access public
-   * @static
+   * @return CRM_Contribute_DAO_ContributionProduct
    */
-  static function addPremium(&$params) {
+  public static function addPremium(&$params) {
     $contributionProduct = new CRM_Contribute_DAO_ContributionProduct();
     $contributionProduct->copyValues($params);
     return $contributionProduct->save();
@@ -906,13 +914,13 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = civicrm_contribution.conta
    * For now we only allow custom contribution fields to be in
    * profile
    *
-   * @param boolean $addExtraFields true if special fields needs to be added
+   * @param bool $addExtraFields
+   *   True if special fields needs to be added.
    *
-   * @return array the list of contribution fields
-   * @static
-   * @access public
+   * @return array
+   *   the list of contribution fields
    */
-  static function getContributionFields($addExtraFields = TRUE) {
+  public static function getContributionFields($addExtraFields = TRUE) {
     $contributionFields = CRM_Contribute_DAO_Contribution::export();
     $contributionFields = array_merge($contributionFields, CRM_Core_OptionValue::getFields($mode = 'contribute'));
 
@@ -939,9 +947,8 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = civicrm_contribution.conta
   /**
    * Add extra fields specific to contribtion
    *
-   * @static
    */
-  static function getSpecialContributionFields() {
+  public static function getSpecialContributionFields() {
     $extraFields = array(
       'contribution_soft_credit_name' => array(
         'name' => 'contribution_soft_credit_name',
@@ -977,7 +984,7 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = civicrm_contribution.conta
    *
    * @return array
    */
-  static function getCurrentandGoalAmount($pageID) {
+  public static function getCurrentandGoalAmount($pageID) {
     $query = "
 SELECT p.goal_amount as goal, sum( c.total_amount ) as total
   FROM civicrm_contribution_page p,
@@ -990,7 +997,7 @@ GROUP BY p.id
 
     $config = CRM_Core_Config::singleton();
     $params = array(1 => array($pageID, 'Integer'));
-    $dao    = CRM_Core_DAO::executeQuery($query, $params);
+    $dao = CRM_Core_DAO::executeQuery($query, $params);
 
     if ($dao->fetch()) {
       return array($dao->goal, $dao->total);
@@ -1003,14 +1010,14 @@ GROUP BY p.id
   /**
    * Get list of contribution In Honor of contact Ids
    *
-   * @param int $honorId In Honor of Contact ID
+   * @param int $honorId
+   *   In Honor of Contact ID.
    *
-   * @return return the list of contribution fields
+   * @return array
+   *   list of contribution fields
    *
-   * @access public
-   * @static
    */
-  static function getHonorContacts($honorId) {
+  public static function getHonorContacts($honorId) {
     $params = array();
     $honorDAO = new CRM_Contribute_DAO_ContributionSoft();
     $honorDAO->contact_id = $honorId;
@@ -1041,13 +1048,13 @@ GROUP BY p.id
   /**
    * Get the sort name of a contact for a particular contribution
    *
-   * @param  int    $id      id of the contribution
+   * @param int $id
+   *   Id of the contribution.
    *
-   * @return null|string     sort name of the contact if found
-   * @static
-   * @access public
+   * @return null|string
+   *   sort name of the contact if found
    */
-  static function sortName($id) {
+  public static function sortName($id) {
     $id = CRM_Utils_Type::escape($id, 'Integer');
 
     $query = "
@@ -1064,7 +1071,7 @@ WHERE  civicrm_contribution.contact_id = civicrm_contact.id
    *
    * @return array
    */
-  static function annual($contactID) {
+  public static function annual($contactID) {
     if (is_array($contactID)) {
       $contactIDs = implode(',', $contactID);
     }
@@ -1117,8 +1124,8 @@ WHERE  civicrm_contribution.contact_id = civicrm_contact.id
          AND b.receive_date <  $endDate
       GROUP BY currency
       ";
-    $dao    = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
-    $count  = 0;
+    $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
+    $count = 0;
     $amount = $average = array();
     while ($dao->fetch()) {
       if ($dao->count > 0 && $dao->amount > 0) {
@@ -1141,13 +1148,13 @@ WHERE  civicrm_contribution.contact_id = civicrm_contact.id
    * Check if there is a contribution with the params passed in.
    * Used for trxn_id,invoice_id and contribution_id
    *
-   * @param array  $params an assoc array of name/value pairs
+   * @param array $params
+   *   An assoc array of name/value pairs.
    *
-   * @return array contribution id if success else NULL
-   * @access public
-   * static
+   * @return array
+   *   contribution id if success else NULL
    */
-  static function checkDuplicateIds($params) {
+  public static function checkDuplicateIds($params) {
     $dao = new CRM_Contribute_DAO_Contribution();
 
     $clause = array();
@@ -1158,8 +1165,8 @@ WHERE  civicrm_contribution.contact_id = civicrm_contact.id
       }
     }
     $clause = implode(' AND ', $clause);
-    $query  = "SELECT id FROM civicrm_contribution WHERE $clause";
-    $dao    = CRM_Core_DAO::executeQuery($query, $input);
+    $query = "SELECT id FROM civicrm_contribution WHERE $clause";
+    $dao = CRM_Core_DAO::executeQuery($query, $input);
 
     while ($dao->fetch()) {
       $result = $dao->id;
@@ -1171,15 +1178,16 @@ WHERE  civicrm_contribution.contact_id = civicrm_contact.id
   /**
    * Get the contribution details for component export
    *
-   * @param int     $exportMode export mode
-   * @param string  $componentIds  component ids
+   * @param int $exportMode
+   *   Export mode.
+   * @param string $componentIds
+   *   Component ids.
    *
-   * @return array associated array
+   * @return array
+   *   associated array
    *
-   * @static
-   * @access public
    */
-  static function getContributionDetails($exportMode, $componentIds) {
+  public static function getContributionDetails($exportMode, $componentIds) {
     $paymentDetails = array();
     $componentClause = ' IN ( ' . implode(',', $componentIds) . ' ) ';
 
@@ -1235,13 +1243,13 @@ LEFT JOIN civicrm_option_value contribution_status ON (civicrm_contribution.cont
   /**
    * Create address associated with contribution record.
    *
-   * @param array $params an associated array
+   * @param array $params
    * @param int $billingLocationTypeID
    *
-   * @return address id
-   * @static
+   * @return int
+   *   address id
    */
-  static function createAddress(&$params, $billingLocationTypeID) {
+  public static function createAddress(&$params, $billingLocationTypeID) {
     $billingFields = array(
       'street_address',
       'city',
@@ -1275,10 +1283,8 @@ LEFT JOIN civicrm_option_value contribution_status ON (civicrm_contribution.cont
    * @param int $contributionId
    * @param int $contactId
    *
-   * @access public
-   * @static
    */
-  static function deleteAddress($contributionId = NULL, $contactId = NULL) {
+  public static function deleteAddress($contributionId = NULL, $contactId = NULL) {
     $clauses = array();
     $contactJoin = NULL;
 
@@ -1316,13 +1322,15 @@ WHERE      $condition
    * This function check online pending contribution associated w/
    * Online Event Registration or Online Membership signup.
    *
-   * @param int    $componentId   participant/membership id.
-   * @param string $componentName Event/Membership.
+   * @param int $componentId
+   *   Participant/membership id.
+   * @param string $componentName
+   *   Event/Membership.
    *
-   * @return $contributionId pending contribution id.
-   * @static
+   * @return int
+   *   pending contribution id.
    */
-  static function checkOnlinePendingContribution($componentId, $componentName) {
+  public static function checkOnlinePendingContribution($componentId, $componentName) {
     $contributionId = NULL;
     if (!$componentId ||
       !in_array($componentName, array('Event', 'Membership'))
@@ -1331,17 +1339,17 @@ WHERE      $condition
     }
 
     if ($componentName == 'Event') {
-      $idName         = 'participant_id';
+      $idName = 'participant_id';
       $componentTable = 'civicrm_participant';
-      $paymentTable   = 'civicrm_participant_payment';
-      $source         = ts('Online Event Registration');
+      $paymentTable = 'civicrm_participant_payment';
+      $source = ts('Online Event Registration');
     }
 
     if ($componentName == 'Membership') {
-      $idName         = 'membership_id';
+      $idName = 'membership_id';
       $componentTable = 'civicrm_membership';
-      $paymentTable   = 'civicrm_membership_payment';
-      $source         = ts('Online Contribution');
+      $paymentTable = 'civicrm_membership_payment';
+      $source = ts('Online Contribution');
     }
 
     $pendingStatusId = array_search('Pending', CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'));
@@ -1374,9 +1382,9 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
   }
 
   /**
-   * This function update contribution as well as related objects.
+   * Update contribution as well as related objects.
    */
-  static function transitionComponents($params, $processContributionObject = FALSE) {
+  public static function transitionComponents($params, $processContributionObject = FALSE) {
     // get minimum required values.
     $contactId = CRM_Utils_Array::value('contact_id', $params);
     $componentId = CRM_Utils_Array::value('component_id', $params);
@@ -1393,10 +1401,11 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
 
     // we process only ( Completed, Cancelled, or Failed ) contributions.
     if (!$contributionId ||
-      !in_array($contributionStatusId, array(array_search('Completed', $contributionStatuses),
-          array_search('Cancelled', $contributionStatuses),
-          array_search('Failed', $contributionStatuses),
-        ))
+      !in_array($contributionStatusId, array(
+        array_search('Completed', $contributionStatuses),
+        array_search('Cancelled', $contributionStatuses),
+        array_search('Failed', $contributionStatuses),
+      ))
     ) {
       return $updateResult;
     }
@@ -1449,10 +1458,10 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
       CRM_Core_Error::fatal();
     }
 
-    $memberships   = &$objects['membership'];
-    $participant   = &$objects['participant'];
+    $memberships = &$objects['membership'];
+    $participant = &$objects['participant'];
     $pledgePayment = &$objects['pledge_payment'];
-    $contribution  = &$objects['contribution'];
+    $contribution = &$objects['contribution'];
 
     if ($pledgePayment) {
       $pledgePaymentIDs = array();
@@ -1575,7 +1584,7 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
               WHERE     membership_id=$membership->id
               ORDER BY  id DESC
               LIMIT     1;";
-            $dao = new CRM_Core_DAO;
+            $dao = new CRM_Core_DAO();
             $dao->query($sql);
             if ($dao->fetch()) {
               if (!empty($dao->membership_type_id)) {
@@ -1599,6 +1608,20 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
               }
             }
 
+            // CRM-15735-to update the membership status as per the contribution receive date
+            if (!empty($params['receive_date'])) {
+              $status = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($membership->start_date,
+                $membership->end_date,
+                $membership->join_date,
+                $params['receive_date'],
+                FALSE,
+                $membership->membership_type_id,
+                (array) $membership
+              );
+              $membership->status_id = CRM_Utils_Array::value('id', $status, $membership->status_id);
+              $membership->save();
+            }
+
             if ($currentMembership) {
               CRM_Member_BAO_Membership::fixMembershipStatusBeforeRenew($currentMembership, NULL);
               $dates = CRM_Member_BAO_MembershipType::getRenewalDatesForMembershipType($membership->id, NULL, NULL, $numterms);
@@ -1635,8 +1658,8 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
             //updating the membership log
             $membershipLog = array();
             $membershipLog = $formattedParams;
-            $logStartDate  = CRM_Utils_Date::customFormat(CRM_Utils_Array::value('log_start_date', $dates), $format);
-            $logStartDate  = ($logStartDate) ? CRM_Utils_Date::isoToMysql($logStartDate) : $formattedParams['start_date'];
+            $logStartDate = CRM_Utils_Date::customFormat(CRM_Utils_Array::value('log_start_date', $dates), $format);
+            $logStartDate = ($logStartDate) ? CRM_Utils_Date::isoToMysql($logStartDate) : $formattedParams['start_date'];
 
             $membershipLog['start_date'] = $logStartDate;
             $membershipLog['membership_id'] = $membership->id;
@@ -1686,9 +1709,19 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
     if ($processContribution) {
       $contributionParams = array();
       $fields = array(
-        'contact_id', 'total_amount', 'receive_date', 'is_test', 'campaign_id',
-        'payment_instrument_id', 'trxn_id', 'invoice_id', 'financial_type_id',
-        'contribution_status_id', 'non_deductible_amount', 'receipt_date', 'check_number',
+        'contact_id',
+        'total_amount',
+        'receive_date',
+        'is_test',
+        'campaign_id',
+        'payment_instrument_id',
+        'trxn_id',
+        'invoice_id',
+        'financial_type_id',
+        'contribution_status_id',
+        'non_deductible_amount',
+        'receipt_date',
+        'check_number',
       );
       foreach ($fields as $field) {
         if (empty($params[$field])) {
@@ -1705,7 +1738,7 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
   }
 
   /**
-   * This function returns all contribution related object ids.
+   * Returns all contribution related object ids.
    */
   public static function getComponentDetails($contributionId) {
     $componentDetails = $pledgePayment = array();
@@ -1766,7 +1799,7 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
    *
    * @return null|string
    */
-  static function contributionCount($contactId, $includeSoftCredit = TRUE) {
+  public static function contributionCount($contactId, $includeSoftCredit = TRUE) {
     if (!$contactId) {
       return 0;
     }
@@ -1797,13 +1830,15 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
   /**
    * Get individual id for onbehalf contribution
    *
-   * @param int $contributionId contribution id
-   * @param int $contributorId  contributor id
+   * @param int $contributionId
+   *   Contribution id.
+   * @param int $contributorId
+   *   Contributor id.
    *
-   * @return array $ids containing organization id and individual id
-   * @access public
+   * @return array
+   *   containing organization id and individual id
    */
-  static function getOnbehalfIds($contributionId, $contributorId = NULL) {
+  public static function getOnbehalfIds($contributionId, $contributorId = NULL) {
 
     $ids = array();
 
@@ -1869,12 +1904,11 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
 
   /**
    * @return array
-   * @static
    */
-  static function getContributionDates() {
-    $config       = CRM_Core_Config::singleton();
+  public static function getContributionDates() {
+    $config = CRM_Core_Config::singleton();
     $currentMonth = date('m');
-    $currentDay   = date('d');
+    $currentDay = date('d');
     if ((int ) $config->fiscalYearStart['M'] > $currentMonth ||
       ((int ) $config->fiscalYearStart['M'] == $currentMonth &&
         (int ) $config->fiscalYearStart['d'] > $currentDay
@@ -1885,7 +1919,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
     else {
       $year = date('Y');
     }
-    $year     = array('Y' => $year);
+    $year = array('Y' => $year);
     $yearDate = $config->fiscalYearStart;
     $yearDate = array_merge($year, $yearDate);
     $yearDate = CRM_Utils_Date::format($yearDate);
@@ -1901,36 +1935,35 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
     );
   }
 
-  /*
+  /**
    * Load objects relations to contribution object
    * Objects are stored in the $_relatedObjects property
    * In the first instance we are just moving functionality from BASEIpn -
-   * see http://issues.civicrm.org/jira/browse/CRM-9996
+   * @see http://issues.civicrm.org/jira/browse/CRM-9996
    *
-   * @param array $input Input as delivered from Payment Processor
-   * @param array $ids Ids as Loaded by Payment Processor
-   * @param boolean $required Is Payment processor / contribution page required
-   * @param boolean $loadAll - load all related objects - even where id not passed in? (allows API to call this)
    * Note that the unit test for the BaseIPN class tests this function
-   */
-  /**
-   * @param $input
-   * @param $ids
+   *
+   * @param array $input
+   *   Input as delivered from Payment Processor.
+   * @param array $ids
+   *   Ids as Loaded by Payment Processor.
    * @param bool $required
+   *   Is Payment processor / contribution page required.
    * @param bool $loadAll
+   *   Load all related objects - even where id not passed in? (allows API to call this).
    *
    * @return bool
    * @throws Exception
    */
-  function loadRelatedObjects(&$input, &$ids, $required = FALSE, $loadAll = false) {
-    if($loadAll){
-      $ids = array_merge($this->getComponentDetails($this->id),$ids);
-      if(empty($ids['contact']) && isset($this->contact_id)){
+  public function loadRelatedObjects(&$input, &$ids, $required = FALSE, $loadAll = FALSE) {
+    if ($loadAll) {
+      $ids = array_merge($this->getComponentDetails($this->id), $ids);
+      if (empty($ids['contact']) && isset($this->contact_id)) {
         $ids['contact'] = $this->contact_id;
       }
     }
     if (empty($this->_component)) {
-      if (! empty($ids['event'])) {
+      if (!empty($ids['event'])) {
         $this->_component = 'event';
       }
       else {
@@ -1956,39 +1989,39 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
       // CRM-6056
       //in any case get the memberships associated with the contribution
       //because we now support multiple memberships w/ price set
-          // see if there are any other memberships to be considered for same contribution.
-          $query = "
+      // see if there are any other memberships to be considered for same contribution.
+      $query = "
             SELECT membership_id
             FROM   civicrm_membership_payment
 WHERE  contribution_id = %1 ";
       $params = array(1 => array($this->id, 'Integer'));
 
-      $dao = CRM_Core_DAO::executeQuery($query, $params );
-          while ($dao->fetch()) {
+      $dao = CRM_Core_DAO::executeQuery($query, $params);
+      while ($dao->fetch()) {
         if ($dao->membership_id) {
           if (!is_array($ids['membership'])) {
             $ids['membership'] = array();
           }
-            $ids['membership'][] = $dao->membership_id;
-          }
+          $ids['membership'][] = $dao->membership_id;
         }
+      }
 
       if (array_key_exists('membership', $ids) && is_array($ids['membership'])) {
-          foreach ($ids['membership'] as $id) {
-            if (!empty($id)) {
-              $membership = new CRM_Member_BAO_Membership();
-              $membership->id = $id;
-              if (!$membership->find(TRUE)) {
-                throw new Exception("Could not find membership record: $id");
-              }
-              $membership->join_date = CRM_Utils_Date::isoToMysql($membership->join_date);
-              $membership->start_date = CRM_Utils_Date::isoToMysql($membership->start_date);
-              $membership->end_date = CRM_Utils_Date::isoToMysql($membership->end_date);
-              $this->_relatedObjects['membership'][$membership->membership_type_id] = $membership;
-              $membership->free();
+        foreach ($ids['membership'] as $id) {
+          if (!empty($id)) {
+            $membership = new CRM_Member_BAO_Membership();
+            $membership->id = $id;
+            if (!$membership->find(TRUE)) {
+              throw new Exception("Could not find membership record: $id");
             }
+            $membership->join_date = CRM_Utils_Date::isoToMysql($membership->join_date);
+            $membership->start_date = CRM_Utils_Date::isoToMysql($membership->start_date);
+            $membership->end_date = CRM_Utils_Date::isoToMysql($membership->end_date);
+            $this->_relatedObjects['membership'][$membership->membership_type_id] = $membership;
+            $membership->free();
           }
         }
+      }
 
       if (!empty($ids['pledge_payment'])) {
 
@@ -2077,31 +2110,30 @@ WHERE  contribution_id = %1 ";
     return TRUE;
   }
 
-  /*
+  /**
    * Create array of message information - ie. return html version, txt version, to field
    *
-   * @param array $input incoming information
-   *  - is_recur - should this be treated as recurring (not sure why you wouldn't
+   * @param array $input
+   *   Incoming information.
+   *   - is_recur - should this be treated as recurring (not sure why you wouldn't
    *    just check presence of recur object but maintaining legacy approach
    *    to be careful)
-   * @param array $ids IDs of related objects
-   * @param array $values any values that may have already been compiled by calling process
+   * @param array $ids
+   *   IDs of related objects.
+   * @param array $values
+   *   Any values that may have already been compiled by calling process.
    *   This is augmented by values 'gathered' by gatherMessageValues
-   * @param bool $returnMessageText distinguishes between whether to send message or return
-   *   message text. We are working towards this function ALWAYS returning message text & calling
-   *   function doing emails / pdfs with it
-   * @return array $messageArray - messages
-   */
-  /**
-   * @param $input
-   * @param $ids
-   * @param $values
    * @param bool $recur
    * @param bool $returnMessageText
+   *   Distinguishes between whether to send message or return.
+   *   message text. We are working towards this function ALWAYS returning message text & calling
+   *   function doing emails / pdfs with it
    *
+   * @return array
+   *   messages
    * @throws Exception
    */
-  function composeMessageArray(&$input, &$ids, &$values, $recur = FALSE, $returnMessageText = TRUE) {
+  public function composeMessageArray(&$input, &$ids, &$values, $recur = FALSE, $returnMessageText = TRUE) {
     if (empty($this->_relatedObjects)) {
       $this->loadRelatedObjects($input, $ids);
     }
@@ -2222,31 +2254,25 @@ WHERE  contribution_id = %1 ";
     }
   }
 
-  /*
+  /**
    * Gather values for contribution mail - this function has been created
    * as part of CRM-9996 refactoring as a step towards simplifying the composeMessage function
    * Values related to the contribution in question are gathered
    *
-   * @param array $input input into function (probably from payment processor)
-   * @param array $ids   the set of ids related to the inpurt
-   *
-   * @return array $values
-   *
-   * NB don't add direct calls to the function as we intend to change the signature
-   */
-  /**
-   * @param $input
-   * @param $values
+   * @param array $input
+   *   Input into function (probably from payment processor).
+   * @param array $values
    * @param array $ids
+   *   The set of ids related to the input.
    *
-   * @return mixed
+   * @return array
    */
-  function _gatherMessageValues($input, &$values, $ids = array()) {
+  public function _gatherMessageValues($input, &$values, $ids = array()) {
     // set display address of contributor
     if ($this->address_id) {
-      $addressParams     = array('id' => $this->address_id);
-      $addressDetails    = CRM_Core_BAO_Address::getValues($addressParams, FALSE, 'id');
-      $addressDetails    = array_values($addressDetails);
+      $addressParams = array('id' => $this->address_id);
+      $addressDetails = CRM_Core_BAO_Address::getValues($addressParams, FALSE, 'id');
+      $addressDetails = array_values($addressDetails);
       $values['address'] = $addressDetails[0]['display'];
     }
     if ($this->_component == 'contribute') {
@@ -2275,17 +2301,17 @@ WHERE  contribution_id = %1 ";
       if ($this->id) {
         $lineItem = CRM_Price_BAO_LineItem::getLineItems($this->id, 'contribution', 1);
         if (!empty($lineItem)) {
-          $itemId                = key($lineItem);
+          $itemId = key($lineItem);
           foreach ($lineItem as &$eachItem) {
-            if (array_key_exists($eachItem['membership_type_id'], $this->_relatedObjects['membership']) ) {
+            if (array_key_exists($eachItem['membership_type_id'], $this->_relatedObjects['membership'])) {
               $eachItem['join_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->join_date);
               $eachItem['start_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->start_date);
               $eachItem['end_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->end_date);
             }
           }
           $values['lineItem'][0] = $lineItem;
-          $values['priceSetID']  = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $lineItem[$itemId]['price_field_id'], 'price_set_id');
-      }
+          $values['priceSetID'] = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $lineItem[$itemId]['price_field_id'], 'price_set_id');
+        }
       }
 
       $relatedContact = CRM_Contribute_BAO_Contribution::getOnbehalfIds(
@@ -2315,13 +2341,13 @@ WHERE  contribution_id = %1 ";
 
       $ufJoinParams = array(
         'entity_table' => 'civicrm_event',
-        'entity_id'    => $ids['event'],
-        'module'       => 'CiviEvent',
+        'entity_id' => $ids['event'],
+        'module' => 'CiviEvent',
       );
 
       list($custom_pre_id,
-           $custom_post_ids
-           ) = CRM_Core_BAO_UFJoin::getUFGroupIds($ufJoinParams);
+        $custom_post_ids
+        ) = CRM_Core_BAO_UFJoin::getUFGroupIds($ufJoinParams);
 
       $values['custom_pre_id'] = $custom_pre_id;
       $values['custom_post_id'] = $custom_post_ids;
@@ -2351,18 +2377,18 @@ WHERE  contribution_id = %1 ";
    *
    * @param $values
    * @param $input
-   * @param $template CRM_Core_SMARTY
+   * @param CRM_Core_SMARTY $template
    * @param bool $recur
    * @param bool $returnMessageText
    *
    * @return mixed
    */
-  function _assignMessageVariablesToTemplate(&$values, $input, &$template, $recur = FALSE, $returnMessageText = True) {
+  public function _assignMessageVariablesToTemplate(&$values, $input, &$template, $recur = FALSE, $returnMessageText = TRUE) {
     $template->assign('first_name', $this->_relatedObjects['contact']->first_name);
     $template->assign('last_name', $this->_relatedObjects['contact']->last_name);
     $template->assign('displayName', $this->_relatedObjects['contact']->display_name);
     if (!empty($values['lineItem']) && !empty($this->_relatedObjects['membership'])) {
-      $template->assign('useForMember', true);
+      $template->assign('useForMember', TRUE);
     }
     //assign honor information to receipt message
     $softRecord = CRM_Contribute_BAO_ContributionSoft::getSoftContribution($this->id);
@@ -2377,7 +2403,7 @@ WHERE  contribution_id = %1 ";
         );
         $softCreditTypes = CRM_Core_OptionGroup::values('soft_credit_type');
 
-        $template->assign('soft_credit_type',  $softRecord['soft_credit'][1]['soft_credit_type_label']);
+        $template->assign('soft_credit_type', $softRecord['soft_credit'][1]['soft_credit_type_label']);
         $template->assign('honor_block_is_active', CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFJoin', $values['id'], 'is_active', 'entity_id'));
       }
       else {
@@ -2387,7 +2413,7 @@ WHERE  contribution_id = %1 ";
           $softCreditTypes[$key] = $softCredit['soft_credit_type_label'];
           $softCredits[$key] = array(
             'Name' => $softCredit['contact_name'],
-            'Amount' => CRM_Utils_Money::format($softCredit['amount'], $softCredit['currency'])
+            'Amount' => CRM_Utils_Money::format($softCredit['amount'], $softCredit['currency']),
           );
         }
         $template->assign('softCreditTypes', $softCreditTypes);
@@ -2409,9 +2435,9 @@ WHERE  contribution_id = %1 ";
       $template->assign('price', $productDAO->price);
       $template->assign('sku', $productDAO->sku);
     }
-    $template->assign('title', CRM_Utils_Array::value('title',$values));
-    $amount = CRM_Utils_Array::value('total_amount', $input,(CRM_Utils_Array::value('amount', $input)),null);
-    if(empty($amount) && isset($this->total_amount)){
+    $template->assign('title', CRM_Utils_Array::value('title', $values));
+    $amount = CRM_Utils_Array::value('total_amount', $input, (CRM_Utils_Array::value('amount', $input)), NULL);
+    if (empty($amount) && isset($this->total_amount)) {
       $amount = $this->total_amount;
     }
     $template->assign('amount', $amount);
@@ -2439,7 +2465,6 @@ WHERE  contribution_id = %1 ";
       $values['financial_type_id'] = $this->financial_type_id;
     }
 
-
     $template->assign('trxn_id', $this->trxn_id);
     $template->assign('receive_date',
       CRM_Utils_Date::mysqlToIso($this->receive_date)
@@ -2476,7 +2501,10 @@ WHERE  contribution_id = %1 ";
       $values['params'] = array();
       //to get email of primary participant.
       $primaryEmail = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Email', $this->_relatedObjects['participant']->contact_id, 'email', 'contact_id');
-      $primaryAmount[] = array('label' => $this->_relatedObjects['participant']->fee_level . ' - ' . $primaryEmail, 'amount' => $this->_relatedObjects['participant']->fee_amount);
+      $primaryAmount[] = array(
+        'label' => $this->_relatedObjects['participant']->fee_level . ' - ' . $primaryEmail,
+        'amount' => $this->_relatedObjects['participant']->fee_amount,
+      );
       //build an array of cId/pId of participants
       $additionalIDs = CRM_Event_BAO_Event::buildCustomProfile($this->_relatedObjects['participant']->id, NULL, $this->_relatedObjects['contact']->id, $isTest, TRUE);
       unset($additionalIDs[$this->_relatedObjects['participant']->id]);
@@ -2502,7 +2530,10 @@ WHERE  contribution_id = %1 ";
             $additionalParticipantInfo = CRM_Contact_BAO_Contact::displayName($additional->contact_id);
           }
           $amount[0] = array('label' => $additional->fee_level, 'amount' => $additional->fee_amount);
-          $primaryAmount[] = array('label' => $additional->fee_level . ' - ' . $additionalParticipantInfo, 'amount' => $additional->fee_amount);
+          $primaryAmount[] = array(
+            'label' => $additional->fee_level . ' - ' . $additionalParticipantInfo,
+            'amount' => $additional->fee_amount,
+          );
           $additional->save();
           $additional->free();
           $template->assign('amount', $amount);
@@ -2537,15 +2568,14 @@ WHERE  contribution_id = %1 ";
    * Check whether payment processor supports
    * cancellation of contribution subscription
    *
-   * @param int $contributionId contribution id
+   * @param int $contributionId
+   *   Contribution id.
    *
    * @param bool $isNotCancelled
    *
-   * @return boolean
-   * @access public
-   * @static
+   * @return bool
    */
-  static function isCancelSubscriptionSupported($contributionId, $isNotCancelled = TRUE) {
+  public static function isCancelSubscriptionSupported($contributionId, $isNotCancelled = TRUE) {
     $cacheKeyString = "$contributionId";
     $cacheKeyString .= $isNotCancelled ? '_1' : '_0';
 
@@ -2570,21 +2600,21 @@ WHERE  contribution_id = %1 ";
   /**
    * Check whether subscription is already cancelled
    *
-   * @param int $contributionId contribution id
+   * @param int $contributionId
+   *   Contribution id.
    *
-   * @return string $status contribution status
-   * @access public
-   * @static
+   * @return string
+   *   contribution status
    */
-  static function isSubscriptionCancelled($contributionId) {
+  public static function isSubscriptionCancelled($contributionId) {
     $sql = "
        SELECT cr.contribution_status_id
          FROM civicrm_contribution_recur cr
     LEFT JOIN civicrm_contribution con ON ( cr.id = con.contribution_recur_id )
         WHERE con.id = %1 LIMIT 1";
-    $params   = array(1 => array($contributionId, 'Integer'));
+    $params = array(1 => array($contributionId, 'Integer'));
     $statusId = CRM_Core_DAO::singleValueQuery($sql, $params);
-    $status   = CRM_Contribute_PseudoConstant::contributionStatus($statusId);
+    $status = CRM_Contribute_PseudoConstant::contributionStatus($statusId);
     if ($status == 'Cancelled') {
       return TRUE;
     }
@@ -2594,16 +2624,15 @@ WHERE  contribution_id = %1 ";
   /**
    * Create all financial accounts entry
    *
-   * @param array $params contribution object, line item array and params for trxn
+   * @param array $params
+   *   Contribution object, line item array and params for trxn.
    *
    *
    * @param array $financialTrxnValues
    *
    * @return null|object
-   * @access public
-   * @static
    */
-  static function recordFinancialAccounts(&$params, $financialTrxnValues = NULL) {
+  public static function recordFinancialAccounts(&$params, $financialTrxnValues = NULL) {
     $skipRecords = $update = $return = $isRelatedId = FALSE;
 
     $additionalParticipantId = array();
@@ -2644,7 +2673,8 @@ WHERE  contribution_id = %1 ";
     $statusId = $params['contribution']->contribution_status_id;
     // CRM-13964 partial payment
     if (CRM_Utils_Array::value('contribution_status_id', $params) == array_search('Partially paid', $contributionStatuses)
-      && !empty($params['partial_payment_total']) && !empty($params['partial_amount_pay'])) {
+      && !empty($params['partial_payment_total']) && !empty($params['partial_amount_pay'])
+    ) {
       $partialAmtPay = $params['partial_amount_pay'];
       $partialAmtTotal = $params['partial_payment_total'];
 
@@ -2683,9 +2713,13 @@ WHERE  contribution_id = %1 ";
     }
 
     if (CRM_Utils_Array::value('contribution_status_id', $params) != array_search('Failed', $contributionStatuses) &&
-      !(CRM_Utils_Array::value('contribution_status_id', $params) == array_search('Pending', $contributionStatuses) && !$params['contribution']->is_pay_later)) {
+      !(CRM_Utils_Array::value('contribution_status_id', $params) == array_search('Pending', $contributionStatuses) && !$params['contribution']->is_pay_later)
+    ) {
       $skipRecords = TRUE;
-      $pendingStatus = array(array_search('Pending', $contributionStatuses), array_search('In Progress', $contributionStatuses));
+      $pendingStatus = array(
+        array_search('Pending', $contributionStatuses),
+        array_search('In Progress', $contributionStatuses),
+      );
       if (in_array(CRM_Utils_Array::value('contribution_status_id', $params), $pendingStatus)) {
         $relationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Accounts Receivable Account is' "));
         $params['to_financial_account_id'] = CRM_Contribute_PseudoConstant::financialAccountType($params['financial_type_id'], $relationTypeId);
@@ -2744,17 +2778,18 @@ WHERE  contribution_id = %1 ";
         $params['trxnParams']['trxn_id'] = $params['prevContribution']->trxn_id;
         $params['trxnParams']['status_id'] = $params['prevContribution']->contribution_status_id;
 
-
         if (!(($params['prevContribution']->contribution_status_id == array_search('Pending', $contributionStatuses)
-          || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatuses))
-          && $params['contribution']->contribution_status_id == array_search('Completed', $contributionStatuses))) {
+            || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatuses))
+          && $params['contribution']->contribution_status_id == array_search('Completed', $contributionStatuses))
+        ) {
           $params['trxnParams']['payment_instrument_id'] = $params['prevContribution']->payment_instrument_id;
           $params['trxnParams']['check_number'] = $params['prevContribution']->check_number;
         }
 
         //if financial type is changed
         if (!empty($params['financial_type_id']) &&
-          $params['contribution']->financial_type_id != $params['prevContribution']->financial_type_id) {
+          $params['contribution']->financial_type_id != $params['prevContribution']->financial_type_id
+        ) {
           $incomeTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Income Account is' "));
           $oldFinancialAccount = CRM_Contribute_PseudoConstant::financialAccountType($params['prevContribution']->financial_type_id, $incomeTypeId);
           $newFinancialAccount = CRM_Contribute_PseudoConstant::financialAccountType($params['financial_type_id'], $incomeTypeId);
@@ -2782,7 +2817,8 @@ WHERE  contribution_id = %1 ";
         //Update contribution status
         $params['trxnParams']['status_id'] = $params['contribution']->contribution_status_id;
         if (!empty($params['contribution_status_id']) &&
-          $params['prevContribution']->contribution_status_id != $params['contribution']->contribution_status_id) {
+          $params['prevContribution']->contribution_status_id != $params['contribution']->contribution_status_id
+        ) {
           //Update Financial Records
           self::updateFinancialAccounts($params, 'changedStatus');
         }
@@ -2793,29 +2829,33 @@ WHERE  contribution_id = %1 ";
         $params['trxnParams']['payment_instrument_id'] = $params['contribution']->payment_instrument_id;
         $params['trxnParams']['check_number'] = CRM_Utils_Array::value('check_number', $params);
         if (array_key_exists('payment_instrument_id', $params)) {
-          $params['trxnParams']['total_amount'] = - $trxnParams['total_amount'];
+          $params['trxnParams']['total_amount'] = -$trxnParams['total_amount'];
           if (CRM_Utils_System::isNull($params['prevContribution']->payment_instrument_id) &&
-            !CRM_Utils_System::isNull($params['contribution']->payment_instrument_id)) {
+            !CRM_Utils_System::isNull($params['contribution']->payment_instrument_id)
+          ) {
             //check if status is changed from Pending to Completed
             // do not update payment instrument changes for Pending to Completed
             if (!($params['contribution']->contribution_status_id == array_search('Completed', $contributionStatuses) &&
-              in_array($params['prevContribution']->contribution_status_id, $pendingStatus))) {
+              in_array($params['prevContribution']->contribution_status_id, $pendingStatus))
+            ) {
               // for all other statuses create new financial records
               self::updateFinancialAccounts($params, 'changePaymentInstrument');
               $params['total_amount'] = $params['trxnParams']['total_amount'] = $trxnParams['total_amount'];
               self::updateFinancialAccounts($params, 'changePaymentInstrument');
             }
           }
-          else if ((!CRM_Utils_System::isNull($params['contribution']->payment_instrument_id) ||
-            !CRM_Utils_System::isNull($params['prevContribution']->payment_instrument_id)) &&
-            $params['contribution']->payment_instrument_id != $params['prevContribution']->payment_instrument_id) {
+          elseif ((!CRM_Utils_System::isNull($params['contribution']->payment_instrument_id) ||
+              !CRM_Utils_System::isNull($params['prevContribution']->payment_instrument_id)) &&
+            $params['contribution']->payment_instrument_id != $params['prevContribution']->payment_instrument_id
+          ) {
             // for any other payment instrument changes create new financial records
             self::updateFinancialAccounts($params, 'changePaymentInstrument');
             $params['total_amount'] = $params['trxnParams']['total_amount'] = $trxnParams['total_amount'];
             self::updateFinancialAccounts($params, 'changePaymentInstrument');
           }
-          else if (!CRM_Utils_System::isNull($params['contribution']->check_number) &&
-            $params['contribution']->check_number != $params['prevContribution']->check_number) {
+          elseif (!CRM_Utils_System::isNull($params['contribution']->check_number) &&
+            $params['contribution']->check_number != $params['prevContribution']->check_number
+          ) {
             // another special case when check number is changed, create new financial records
             // create financial trxn with negative amount
             $params['trxnParams']['check_number'] = $params['prevContribution']->check_number;
@@ -2833,7 +2873,8 @@ WHERE  contribution_id = %1 ";
         $params['trxnParams']['total_amount'] = $trxnParams['total_amount'] = $params['total_amount'] = $totalAmount;
         $params['trxnParams']['trxn_id'] = $params['contribution']->trxn_id;
         if (isset($totalAmount) &&
-          $totalAmount != $params['prevContribution']->total_amount) {
+          $totalAmount != $params['prevContribution']->total_amount
+        ) {
           //Update Financial Records
           $params['trxnParams']['from_financial_account_id'] = NULL;
           self::updateFinancialAccounts($params, 'changedAmount');
@@ -2868,7 +2909,8 @@ WHERE  contribution_id = %1 ";
     }
 
     if (!empty($params['prevContribution']) && $entityTable == 'civicrm_participant'
-      && $params['prevContribution']->contribution_status_id != $params['contribution']->contribution_status_id) {
+      && $params['prevContribution']->contribution_status_id != $params['contribution']->contribution_status_id
+    ) {
       $eventID = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Participant', $entityId, 'event_id');
       $feeLevel[] = str_replace('\ 1', '', $params['prevContribution']->amount_level);
       CRM_Event_BAO_Participant::createDiscountTrxn($eventID, $params, $feeLevel);
@@ -2881,23 +2923,24 @@ WHERE  contribution_id = %1 ";
   /**
    * Update all financial accounts entry
    *
-   * @param array $params contribution object, line item array and params for trxn
+   * @param array $params
+   *   Contribution object, line item array and params for trxn.
    *
-   * @param string $context update scenarios
+   * @param string $context
+   *   Update scenarios.
    *
    * @param null $skipTrxn
    *
-   * @access public
-   * @static
    */
-  static function updateFinancialAccounts(&$params, $context = NULL, $skipTrxn = NULL) {
+  public static function updateFinancialAccounts(&$params, $context = NULL, $skipTrxn = NULL) {
     $itemAmount = $trxnID = NULL;
     //get all the statuses
     $contributionStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
     if (($params['prevContribution']->contribution_status_id == array_search('Pending', $contributionStatus)
-      || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus))
+        || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus))
       && $params['contribution']->contribution_status_id == array_search('Completed', $contributionStatus)
-      && $context == 'changePaymentInstrument') {
+      && $context == 'changePaymentInstrument'
+    ) {
       return;
     }
     if ($context == 'changedAmount' || $context == 'changeFinancialType') {
@@ -2909,15 +2952,17 @@ WHERE  contribution_id = %1 ";
 
       if ($params['prevContribution']->contribution_status_id == array_search('Completed', $contributionStatus)
         && ($params['contribution']->contribution_status_id == array_search('Refunded', $contributionStatus)
-        || $params['contribution']->contribution_status_id == array_search('Cancelled', $contributionStatus))) {
-        $params['trxnParams']['total_amount'] = - $params['total_amount'];
+          || $params['contribution']->contribution_status_id == array_search('Cancelled', $contributionStatus))
+      ) {
+        $params['trxnParams']['total_amount'] = -$params['total_amount'];
       }
       elseif (($params['prevContribution']->contribution_status_id == array_search('Pending', $contributionStatus)
-        && $params['prevContribution']->is_pay_later) || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus)) {
+          && $params['prevContribution']->is_pay_later) || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus)
+      ) {
         $financialTypeID = CRM_Utils_Array::value('financial_type_id', $params) ? $params['financial_type_id'] : $params['prevContribution']->financial_type_id;
         if ($params['contribution']->contribution_status_id == array_search('Cancelled', $contributionStatus)) {
           $params['trxnParams']['to_financial_account_id'] = NULL;
-          $params['trxnParams']['total_amount'] = - $params['total_amount'];
+          $params['trxnParams']['total_amount'] = -$params['total_amount'];
         }
         $relationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Accounts Receivable Account is' "));
         $params['trxnParams']['from_financial_account_id'] = CRM_Contribute_PseudoConstant::financialAccountType(
@@ -2943,8 +2988,9 @@ WHERE  contribution_id = %1 ";
 
     if ($context == 'changedStatus') {
       if (($params['prevContribution']->contribution_status_id == array_search('Pending', $contributionStatus)
-        || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus))
-        && ($params['contribution']->contribution_status_id == array_search('Completed', $contributionStatus))) {
+          || $params['prevContribution']->contribution_status_id == array_search('In Progress', $contributionStatus))
+        && ($params['contribution']->contribution_status_id == array_search('Completed', $contributionStatus))
+      ) {
         $query = "UPDATE civicrm_financial_item SET status_id = %1 WHERE entity_id = %2 and entity_table = 'civicrm_line_item'";
         $sql = "SELECT id, amount FROM civicrm_financial_item WHERE entity_id = %1 and entity_table = 'civicrm_line_item'";
 
@@ -3011,8 +3057,9 @@ WHERE  contribution_id = %1 ";
           }
           else {
             if ($context == 'changeFinancialType' || $params['contribution']->contribution_status_id == array_search('Cancelled', $contributionStatus)
-              || $params['contribution']->contribution_status_id == array_search('Refunded', $contributionStatus)) {
-             $diff = -1;
+              || $params['contribution']->contribution_status_id == array_search('Refunded', $contributionStatus)
+            ) {
+              $diff = -1;
             }
             $amount = $diff * $fieldValues['line_total'];
           }
@@ -3026,7 +3073,7 @@ WHERE  contribution_id = %1 ";
             'status_id' => $prevfinancialItem->status_id,
             'financial_account_id' => $financialAccount,
             'entity_table' => 'civicrm_line_item',
-            'entity_id' => $fieldValues['id']
+            'entity_id' => $fieldValues['id'],
           );
           CRM_Financial_BAO_FinancialItem::create($itemParams, NULL, $trxnIds);
 
@@ -3048,17 +3095,18 @@ WHERE  contribution_id = %1 ";
   /**
    * Check status validation on update of a contribution
    *
-   * @param array $values previous form values before submit
+   * @param array $values
+   *   Previous form values before submit.
    *
-   * @param array $fields the input form values
+   * @param array $fields
+   *   The input form values.
    *
-   * @param array $errors list of errors
+   * @param array $errors
+   *   List of errors.
    *
    * @return bool
-   * @access public
-   * @static
    */
-  static function checkStatusValidation($values, &$fields, &$errors) {
+  public static function checkStatusValidation($values, &$fields, &$errors) {
     if (CRM_Utils_System::isNull($values) && !empty($fields['id'])) {
       $values['contribution_status_id'] = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', $fields['id'], 'contribution_status_id');
       if ($values['contribution_status_id'] == $fields['contribution_status_id']) {
@@ -3071,11 +3119,14 @@ WHERE  contribution_id = %1 ";
       'Completed' => array('Cancelled', 'Refunded'),
       'Pending' => array('Cancelled', 'Completed', 'Failed'),
       'In Progress' => array('Cancelled', 'Completed', 'Failed'),
-      'Refunded' => array('Cancelled', 'Completed')
+      'Refunded' => array('Cancelled', 'Completed'),
     );
 
     if (!in_array($contributionStatuses[$fields['contribution_status_id']], $checkStatus[$contributionStatuses[$values['contribution_status_id']]])) {
-      $errors['contribution_status_id'] = ts("Cannot change contribution status from %1 to %2.", array(1 => $contributionStatuses[$values['contribution_status_id']], 2 => $contributionStatuses[$fields['contribution_status_id']]));
+      $errors['contribution_status_id'] = ts("Cannot change contribution status from %1 to %2.", array(
+        1 => $contributionStatuses[$values['contribution_status_id']],
+        2 => $contributionStatuses[$fields['contribution_status_id']],
+      ));
     }
   }
 
@@ -3084,12 +3135,11 @@ WHERE  contribution_id = %1 ";
    *
    * CRM-12155
    *
-   * @param integer $contactId contact id
+   * @param int $contactId
+   *   Contact id.
    *
-   * @access public
-   * @static
    */
-  static function deleteContactContribution($contactId) {
+  public static function deleteContactContribution($contactId) {
     $contribution = new CRM_Contribute_DAO_Contribution();
     $contribution->contact_id = $contactId;
     $contribution->find();
@@ -3102,11 +3152,11 @@ WHERE  contribution_id = %1 ";
    * Get options for a given contribution field.
    * @see CRM_Core_DAO::buildOptions
    *
-   * @param String $fieldName
-   * @param String $context : @see CRM_Core_DAO::buildOptionsContext
-   * @param Array $props : whatever is known about this dao object
+   * @param string $fieldName
+   * @param string $context see CRM_Core_DAO::buildOptionsContext.
+   * @param array $props  whatever is known about this dao object.
    *
-   * @return Array|bool
+   * @return array|bool
    */
   public static function buildOptions($fieldName, $context = NULL, $props = array()) {
     $className = __CLASS__;
@@ -3119,12 +3169,13 @@ WHERE  contribution_id = %1 ";
         if (!empty($props['contribution_page_id'])) {
           $page = civicrm_api('contribution_page', 'getsingle', array(
             'version' => 3,
-            'id' => ($props['contribution_page_id'])
+            'id' => ($props['contribution_page_id']),
           ));
           $types = (array) CRM_Utils_Array::value('payment_processor', $page, 0);
           $params['condition'] = 'id IN (' . implode(',', $types) . ')';
         }
         break;
+
       // CRM-13981 This field was combined with soft_credits in 4.5 but the api still supports it
       case 'honor_type_id':
         $className = 'CRM_Contribute_BAO_ContributionSoft';
@@ -3140,15 +3191,14 @@ WHERE  contribution_id = %1 ";
    *
    * CRM-13231
    *
-   * @param integer $financialTypeId Financial Type id
+   * @param int $financialTypeId
+   *   Financial Type id.
    *
    * @param string $relationName
    *
    * @return array|bool
-   * @access public
-   * @static
    */
-  static function validateFinancialType($financialTypeId, $relationName = 'Expense Account is') {
+  public static function validateFinancialType($financialTypeId, $relationName = 'Expense Account is') {
     $expenseTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE '{$relationName}' "));
     $financialAccount = CRM_Contribute_PseudoConstant::financialAccountType($financialTypeId, $expenseTypeId);
 
@@ -3159,22 +3209,20 @@ WHERE  contribution_id = %1 ";
   }
 
 
-  /*
+  /**
    * Function to record additional payment for partial and refund contributions
    *
-   * @param integer $contributionId : is the invoice contribution id (got created after processing participant payment)
-   * @param array $trxnData : to take user provided input of transaction details.
-   * @param string $paymentType 'owed' for purpose of recording partial payments, 'refund' for purpose of recording refund payments
-   */
-  /**
    * @param int $contributionId
-   * @param $trxnsData
+   *   is the invoice contribution id (got created after processing participant payment).
+   * @param array $trxnsData
+   *   to take user provided input of transaction details.
    * @param string $paymentType
+   *   'owed' for purpose of recording partial payments, 'refund' for purpose of recording refund payments.
    * @param int $participantId
    *
    * @return null|object
    */
-  static function recordAdditionalPayment($contributionId, $trxnsData, $paymentType = 'owed', $participantId = NULL) {
+  public static function recordAdditionalPayment($contributionId, $trxnsData, $paymentType = 'owed', $participantId = NULL) {
     $statusId = CRM_Core_OptionGroup::getValue('contribution_status', 'Completed', 'name');
     $getInfoOf['id'] = $contributionId;
     $defaults = array();
@@ -3272,7 +3320,7 @@ WHERE eft.financial_trxn_id IN ({$trxnId}, {$baseTrxnId['financialTrxnId']})
       $params = array_merge($defaults, $params);
       $params['skipLineItem'] = TRUE;
       $trxnsData['trxn_date'] = !empty($trxnsData['trxn_date']) ? $trxnsData['trxn_date'] : date('YmdHis');
-      $trxnsData['total_amount'] = - $trxnsData['total_amount'];
+      $trxnsData['total_amount'] = -$trxnsData['total_amount'];
 
       $relationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Accounts Receivable Account is' "));
       $trxnsData['from_financial_account_id'] = CRM_Contribute_PseudoConstant::financialAccountType($contributionDAO->financial_type_id, $relationTypeId);
@@ -3298,9 +3346,9 @@ WHERE eft.financial_trxn_id IN ({$trxnId}, {$baseTrxnId['financialTrxnId']})
           'amount' => $financialTrxn->total_amount,
           'status_id' => array_search('Paid', $financialItemStatus),
           'entity_id' => $lineItemId->id,
-          'entity_table' => 'civicrm_line_item'
+          'entity_table' => 'civicrm_line_item',
         );
-        $trxnIds['id'] =  $financialTrxn->id;
+        $trxnIds['id'] = $financialTrxn->id;
         CRM_Financial_BAO_FinancialItem::create($addFinancialEntry, NULL, $trxnIds);
       }
       if ($participantId) {
@@ -3341,7 +3389,7 @@ WHERE eft.financial_trxn_id IN ({$trxnId}, {$baseTrxnId['financialTrxnId']})
    *
    * @throws CRM_Core_Exception
    */
-  static function addActivityForPayment($entityObj, $trxnObj, $activityType, $component, $contributionId) {
+  public static function addActivityForPayment($entityObj, $trxnObj, $activityType, $component, $contributionId) {
     if ($component == 'event') {
       $date = CRM_Utils_Date::isoToMysql($trxnObj->trxn_date);
       $paymentAmount = CRM_Utils_Money::format($trxnObj->total_amount, $trxnObj->currency);
@@ -3389,7 +3437,7 @@ WHERE eft.financial_trxn_id IN ({$trxnId}, {$baseTrxnId['financialTrxnId']})
    *
    * @return mixed
    */
-  static function getPaymentInfo($id, $component, $getTrxnInfo = FALSE, $usingLineTotal = FALSE) {
+  public static function getPaymentInfo($id, $component, $getTrxnInfo = FALSE, $usingLineTotal = FALSE) {
     if ($component == 'event') {
       $entity = 'participant';
       $entityTable = 'civicrm_participant';
@@ -3419,11 +3467,11 @@ WHERE eft.financial_trxn_id IN ({$trxnId}, {$baseTrxnId['financialTrxnId']})
     if (empty($total) || $usingLineTotal) {
       // for additional participants
       if ($entityTable == 'civicrm_participant') {
-       $ids = CRM_Event_BAO_Participant::getParticipantIds($contributionId);
-       $total = 0;
-       foreach ($ids as $val) {
-         $total += CRM_Price_BAO_LineItem::getLineTotal($val, $entityTable);
-       }
+        $ids = CRM_Event_BAO_Participant::getParticipantIds($contributionId);
+        $total = 0;
+        foreach ($ids as $val) {
+          $total += CRM_Price_BAO_LineItem::getLineTotal($val, $entityTable);
+        }
       }
       else {
         $total = CRM_Price_BAO_LineItem::getLineTotal($id, $entityTable);
@@ -3471,7 +3519,7 @@ WHERE con.id = {$contributionId}
 
       $statuses = CRM_Contribute_PseudoConstant::contributionStatus();
       $financialTypes = CRM_Contribute_PseudoConstant::financialType();
-      while($resultDAO->fetch()) {
+      while ($resultDAO->fetch()) {
         $paidByLabel = CRM_Core_PseudoConstant::getLabel('CRM_Core_BAO_FinancialTrxn', 'payment_instrument_id', $resultDAO->payment_instrument_id);
         $paidByName = CRM_Core_PseudoConstant::getName('CRM_Core_BAO_FinancialTrxn', 'payment_instrument_id', $resultDAO->payment_instrument_id);
         $val = array(
@@ -3500,7 +3548,7 @@ WHERE con.id = {$contributionId}
    *
    * @return FinancialAccountId
    */
-  static function getFinancialAccountId($financialTypeId) {
+  public static function getFinancialAccountId($financialTypeId) {
     $accountRel = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Sales Tax Account is' "));
     $searchParams = array(
       'entity_table' => 'civicrm_financial_type',
@@ -3508,9 +3556,9 @@ WHERE con.id = {$contributionId}
       'account_relationship' => $accountRel,
     );
     $result = array();
-    CRM_Financial_BAO_FinancialTypeAccount::retrieve( $searchParams, $result );
+    CRM_Financial_BAO_FinancialTypeAccount::retrieve($searchParams, $result);
 
-    return CRM_Utils_Array::value( 'financial_account_id', $result );
+    return CRM_Utils_Array::value('financial_account_id', $result);
   }
 
   public static function checkTaxAmount($params, $isLineItem = FALSE) {
@@ -3524,10 +3572,10 @@ WHERE con.id = {$contributionId}
       $prevContributionValue = CRM_Contribute_BAO_Contribution::getValues($contrbutionParams, $values, $ids);
 
       // To assign pervious finantial type on update of contribution
-     if (!isset($params['financial_type_id'])) {
+      if (!isset($params['financial_type_id'])) {
         $params['financial_type_id'] = $prevContributionValue->financial_type_id;
       }
-      else if (isset($params['financial_type_id']) && !array_key_exists($params['financial_type_id'], $taxRates)) {
+      elseif (isset($params['financial_type_id']) && !array_key_exists($params['financial_type_id'], $taxRates)) {
         // Assisn tax Amount on update of contrbution
         if (!empty($prevContributionValue->tax_amount)) {
           $params['tax_amount'] = 'null';
@@ -3543,32 +3591,32 @@ WHERE con.id = {$contributionId}
 
     // New Contrbution and update of contribution with tax rate financial type
     if (isset($params['financial_type_id']) && array_key_exists($params['financial_type_id'], $taxRates) &&
-      empty($params['skipLineItem']) && !$isLineItem)
-      {
-        $taxRateParams = $taxRates[$params['financial_type_id']];
-        $taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($params['total_amount'], $taxRateParams);
-        $params['tax_amount'] = round($taxAmount['tax_amount'], 2);
+      empty($params['skipLineItem']) && !$isLineItem
+    ) {
+      $taxRateParams = $taxRates[$params['financial_type_id']];
+      $taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($params['total_amount'], $taxRateParams);
+      $params['tax_amount'] = round($taxAmount['tax_amount'], 2);
 
-        // Get Line Item on update of contribution
-        if (isset($params['id'])) {
-          CRM_Price_BAO_LineItem::getLineItemArray($params, array($params['id']));
-        }
-        else {
-          CRM_Price_BAO_LineItem::getLineItemArray($params);
-        }
-        foreach ($params['line_item'] as $setID => $priceField) {
-          foreach ($priceField as $priceFieldID => $priceFieldValue) {
-           $params['line_item'][$setID][$priceFieldID]['tax_amount'] = $params['tax_amount'];
-          }
+      // Get Line Item on update of contribution
+      if (isset($params['id'])) {
+        CRM_Price_BAO_LineItem::getLineItemArray($params, array($params['id']));
+      }
+      else {
+        CRM_Price_BAO_LineItem::getLineItemArray($params);
+      }
+      foreach ($params['line_item'] as $setID => $priceField) {
+        foreach ($priceField as $priceFieldID => $priceFieldValue) {
+          $params['line_item'][$setID][$priceFieldID]['tax_amount'] = $params['tax_amount'];
         }
-        $params['total_amount'] = $params['total_amount'] + $params['tax_amount'];
       }
-    else if (isset($params['api.line_item.create'])) {
+      $params['total_amount'] = $params['total_amount'] + $params['tax_amount'];
+    }
+    elseif (isset($params['api.line_item.create'])) {
       // Update total amount of contribution using lineItem
       $taxAmountArray = array();
       foreach ($params['api.line_item.create'] as $key => $value) {
         if (isset($value['financial_type_id']) && array_key_exists($value['financial_type_id'], $taxRates)) {
-         $taxRate = $taxRates[$value['financial_type_id']];
+          $taxRate = $taxRates[$value['financial_type_id']];
           $taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($value['line_total'], $taxRate);
           $taxAmountArray[] = round($taxAmount['tax_amount'], 2);
         }
@@ -3586,4 +3634,5 @@ WHERE con.id = {$contributionId}
     }
     return $params;
   }
+
 }