CRM-14197 towards refactoring form specific actions back onto the form as part of
authorEileen McNaughton <eileen@fuzion.co.nz>
Mon, 19 May 2014 11:03:20 +0000 (23:03 +1200)
committerEileen McNaughton <eileen@fuzion.co.nz>
Tue, 20 May 2014 22:26:14 +0000 (10:26 +1200)
figuring out how to set membership entity id on line item (preliminary simplication

CRM/Contribute/Form/Contribution/Confirm.php
CRM/Member/BAO/Membership.php

index ec675ef463fa49f20f44087184fd3bc92cdcfe3a..27c8953bd5b32ddcb69402b338d1923a9e495a75 100644 (file)
@@ -904,15 +904,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
           }
         }
 
-        try {
-          CRM_Member_BAO_Membership::postProcessMembership($membershipParams, $contactID,
-            $this, $premiumParams, $customFieldsFormatted,
-            $fieldTypes
-          );
-        } catch (CRM_Core_Exception $e) {
-          CRM_Core_Session::singleton()->setStatus($e->getMessage());
-          CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/contribute/transact', "_qf_Main_display=true&qfKey={$this->_params['qfKey']}"));
-        }
+        $this->processMembership($membershipParams, $contactID, $customFieldsFormatted, $fieldTypes, $premiumParams);
       }
     }
     else {
@@ -1704,4 +1696,34 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
 
     return $params;
   }
+
+  /**
+   * @param $membershipParams
+   * @param $contactID
+   * @param $customFieldsFormatted
+   * @param $fieldTypes
+   * @param $premiumParams
+   */
+  public function processMembership($membershipParams, $contactID, $customFieldsFormatted, $fieldTypes, $premiumParams)
+  {
+    try {
+
+      $singleMembershipTypeID = $membershipTypeID = $membershipParams['selectMembership'];
+      if (is_array($membershipTypeID) && count($membershipTypeID) == 1) {
+        $singleMembershipTypeID = $membershipTypeID[0];
+      }
+
+      $membershipDetails = CRM_Member_BAO_Membership::buildMembershipTypeValues($this, $singleMembershipTypeID);
+      $this->assign('membership_name', CRM_Utils_Array::value('name', $membershipDetails));
+      CRM_Member_BAO_Membership::postProcessMembership($membershipParams, $contactID,
+        $this, $premiumParams, $customFieldsFormatted, $fieldTypes, $membershipDetails,  $membershipTypeID
+      );
+      $this->assign('membership_assign', TRUE);
+      $this->set('membershipTypeID', $membershipParams['selectMembership']);
+    }
+    catch (CRM_Core_Exception $e) {
+      CRM_Core_Session::singleton()->setStatus($e->getMessage());
+      CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/contribute/transact', "_qf_Main_display=true&qfKey={$this->_params['qfKey']}"));
+    }
+  }
 }
index ae660e3c5bc65f4cd6a84b1fa9329add83253796..29b31c0b3eb6bf1a9b086b9ea9649dbc7d34c690 100644 (file)
@@ -1242,28 +1242,24 @@ AND civicrm_membership.is_test = %2";
    * @param null $customFieldsFormatted
    * @param null $includeFieldTypes
    *
+   * @param $membershipDetails
+   *
+   * @param $membershipTypeID
+   *
    * @throws CRM_Core_Exception
+   * @throws Exception
+   * @internal param $singleMembershipTypeID
+   *
    * @return void
    * @access public
    */
-  public static function postProcessMembership($membershipParams, $contactID, &$form, &$premiumParams,
-    $customFieldsFormatted = NULL, $includeFieldTypes = NULL
+  public static function postProcessMembership($membershipParams, $contactID, &$form, $premiumParams,
+    $customFieldsFormatted = NULL, $includeFieldTypes = NULL, $membershipDetails, $membershipTypeID
   ) {
     $tempParams  = $membershipParams;
     $paymentDone = FALSE;
     $result      = NULL;
     $isTest      = CRM_Utils_Array::value('is_test', $membershipParams, FALSE);
-    $form->assign('membership_assign', TRUE);
-
-    $form->set('membershipTypeID', $membershipParams['selectMembership']);
-
-    $singleMembershipTypeID = $membershipTypeID = $membershipParams['selectMembership'];
-    if (is_array($membershipTypeID) && count($membershipTypeID) == 1) {
-      $singleMembershipTypeID = $membershipTypeID[0];
-    }
-
-    $membershipDetails = self::buildMembershipTypeValues($form, $singleMembershipTypeID);
-    $form->assign('membership_name', CRM_Utils_Array::value('name', $membershipDetails));
 
     $minimumFee = CRM_Utils_Array::value('minimum_fee', $membershipDetails);
     $contributionTypeId = NULL;