Merge pull request #5680 from elinw/restauthenticationjoomla
[civicrm-core.git] / CRM / Contribute / Form / AdditionalInfo.php
index 6f15284ca02222e92506481754915fb7fa82344a..dab9329c83a2da2c44b97c1cf8ff4676171fd20b 100644 (file)
  *
  * @package CRM
  * @copyright CiviCRM LLC (c) 2004-2015
- * $Id$
- *
  */
 class CRM_Contribute_Form_AdditionalInfo {
 
   /**
    * Build the form object for Premium Information.
    *
+   * Called from the CRM_Contribute_Form_Contribute function and seemingly nowhere else.
    *
-   * @param CRM_Core_Form $form
+   * Probably this should be on the form that uses it since it is not used on multiple forms.
    *
-   * @return void
+   * Putting it on this class doesn't seem to reduce complexity.
+   *
+   * @param CRM_Core_Form $form
    */
   public static function buildPremium(&$form) {
     //premium section
@@ -193,59 +194,59 @@ class CRM_Contribute_Form_AdditionalInfo {
   /**
    * Process the Premium Information.
    *
-   *
    * @param array $params
    * @param int $contributionID
    * @param int $premiumID
-   * @param NULL $options
-   * @return void
+   * @param array $options
    */
-  public static function processPremium(&$params, $contributionID, $premiumID = NULL, &$options = NULL) {
+  public static function processPremium($params, $contributionID, $premiumID = NULL, $options = array()) {
+    $selectedProductID = $params['product_name'][0];
+    $selectedProductOptionID = $params['product_name'][1];
+
     $dao = new CRM_Contribute_DAO_ContributionProduct();
     $dao->contribution_id = $contributionID;
-    $dao->product_id = $params['product_name'][0];
+    $dao->product_id = $selectedProductID;
     $dao->fulfilled_date = CRM_Utils_Date::processDate($params['fulfilled_date'], NULL, TRUE);
     $isDeleted = FALSE;
+
     //CRM-11106
     $premiumParams = array(
-      'id' => $params['product_name'][0],
+      'id' => $selectedProductID,
     );
+
     $productDetails = array();
     CRM_Contribute_BAO_ManagePremiums::retrieve($premiumParams, $productDetails);
     $dao->financial_type_id = CRM_Utils_Array::value('financial_type_id', $productDetails);
-    if (!empty($options[$params['product_name'][0]])) {
-      $dao->product_option = $options[$params['product_name'][0]][$params['product_name'][1]];
+    if (!empty($options[$selectedProductID])) {
+      $dao->product_option = $options[$selectedProductID][$selectedProductOptionID];
     }
     if ($premiumID) {
-      $premoumDAO = new CRM_Contribute_DAO_ContributionProduct();
-      $premoumDAO->id = $premiumID;
-      $premoumDAO->find(TRUE);
-      if ($premoumDAO->product_id == $params['product_name'][0]) {
+      $ContributionProduct = new CRM_Contribute_DAO_ContributionProduct();
+      $ContributionProduct->id = $premiumID;
+      $ContributionProduct->find(TRUE);
+      if ($ContributionProduct->product_id == $selectedProductID) {
         $dao->id = $premiumID;
-        $premium = $dao->save();
       }
       else {
-        $premoumDAO->delete();
+        $ContributionProduct->delete();
         $isDeleted = TRUE;
-        $premium = $dao->save();
       }
     }
-    else {
-      $premium = $dao->save();
-    }
+
+    $dao->save();
     //CRM-11106
     if ($premiumID == NULL || $isDeleted) {
-      $params = array(
+      $premiumParams = array(
         'cost' => CRM_Utils_Array::value('cost', $productDetails),
         'currency' => CRM_Utils_Array::value('currency', $productDetails),
         'financial_type_id' => CRM_Utils_Array::value('financial_type_id', $productDetails),
         'contributionId' => $contributionID,
       );
       if ($isDeleted) {
-        $params['oldPremium']['product_id'] = $premoumDAO->product_id;
-        $params['oldPremium']['contribution_id'] = $premoumDAO->contribution_id;
+        $premiumParams['oldPremium']['product_id'] = $ContributionProduct->product_id;
+        $premiumParams['oldPremium']['contribution_id'] = $ContributionProduct->contribution_id;
       }
-      CRM_Core_BAO_FinancialTrxn::createPremiumTrxn($params);
+      CRM_Core_BAO_FinancialTrxn::createPremiumTrxn($premiumParams);
     }
   }
 
@@ -260,7 +261,7 @@ class CRM_Contribute_Form_AdditionalInfo {
    *
    * @return void
    */
-  public static function processNote(&$params, $contactID, $contributionID, $contributionNoteID = NULL) {
+  public static function processNote($params, $contactID, $contributionID, $contributionNoteID = NULL) {
     //process note
     $noteParams = array(
       'entity_table' => 'civicrm_contribution',
@@ -321,7 +322,6 @@ class CRM_Contribute_Form_AdditionalInfo {
       )
     );
     $formatted['custom'] = CRM_Core_BAO_CustomField::postProcess($params,
-      $customFields,
       CRM_Utils_Array::value('id', $params, NULL),
       'Contribution'
     );
@@ -372,12 +372,13 @@ class CRM_Contribute_Form_AdditionalInfo {
       ) {
         $productDAO = new CRM_Contribute_DAO_Product();
         $productDAO->id = $params['product_name'][0];
+        $productOptionID = $params['product_name'][1];
         $productDAO->find(TRUE);
         $params['product_name'] = $productDAO->name;
         $params['product_sku'] = $productDAO->sku;
 
-        if (empty($params['product_option']) && !empty($form->_options[$params['product_name'][0]])) {
-          $params['product_option'] = $form->_options[$params['product_name'][0]][$params['product_name'][1]];
+        if (empty($params['product_option']) && !empty($form->_options[$productDAO->id])) {
+          $params['product_option'] = $form->_options[$productDAO->id][$productOptionID];
         }
       }