Refactored out of CRM_Core_PseudoConstant: websiteType(), fromEmailAddress(), honorTy...
[civicrm-core.git] / CRM / Contribute / Form / Contribution / Confirm.php
index 6e3af38f578a778549499ba6fb00bb3906f6d1be..dd751378f19d8c4e7fed76559e20709bbfbc3385 100644 (file)
@@ -46,6 +46,15 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
    */
   public $_contactID;
 
+
+  /**
+   * The id of the contribution object that is created when the form is submitted
+   *
+   * @var int
+   * @public
+   */
+  public $_contributionID;
+
   /**
    * Function to set variables up before form is built
    *
@@ -378,8 +387,8 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
       $this->assign('honor_block_is_active', $honor_block_is_active);
       $this->assign('honor_block_title', CRM_Utils_Array::value('honor_block_title', $this->_values));
 
-      $prefix = CRM_Core_PseudoConstant::individualPrefix();
-      $honor = CRM_Core_PseudoConstant::honor();
+      $prefix = CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'prefix_id');
+      $honor = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'honor_type_id');
       $this->assign('honor_type', CRM_Utils_Array::value($params['honor_type_id'], $honor));
       $this->assign('honor_prefix', CRM_Utils_Array::value($params['honor_prefix_id'], $prefix));
       $this->assign('honor_first_name', $params['honor_first_name']);
@@ -1084,7 +1093,8 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
    * @return CRM_Contribute_DAO_Contribution
    * @access public
    */
-  static function processContribution(&$form,
+  static function processContribution(
+    &$form,
     $params,
     $result,
     $contactID,
@@ -1253,7 +1263,8 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
 
     $ids = array();
     if (isset($contribParams['invoice_id'])) {
-      $contribID = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution',
+      $contribID = CRM_Core_DAO::getFieldValue(
+        'CRM_Contribute_DAO_Contribution',
         $contribParams['invoice_id'],
         'id',
         'invoice_id'
@@ -1266,9 +1277,10 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
 
 
     //create an contribution address
-    if ($form->_contributeMode != 'notify'
-      && !CRM_Utils_Array::value('is_pay_later', $params)
-      && CRM_Utils_Array::value('is_monetary', $form->_values)
+    if (
+      $form->_contributeMode != 'notify' &&
+      !CRM_Utils_Array::value('is_pay_later', $params) &&
+      CRM_Utils_Array::value('is_monetary', $form->_values)
     ) {
       $contribParams['address_id'] = CRM_Contribute_BAO_Contribution::createAddress($params, $form->_bltID);
     }
@@ -1303,6 +1315,13 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
       $contribParams['line_item'] = $form->_lineItem;
       //add contribution record
       $contribution = CRM_Contribute_BAO_Contribution::add($contribParams, $ids);
+      if (is_a($contribution, 'CRM_Core_Error')) {
+        $message = CRM_Core_Error::getMessages($contribution);
+        CRM_Core_Error::fatal($message);
+      }
+
+      // lets store it in the form variable so postProcess hook can get to this and use it
+      $form->_contributionID = $contribution->id;
     }
 
     // process soft credit / pcp pages
@@ -1447,7 +1466,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
 
     // create an activity record
     if ($contribution) {
-    CRM_Activity_BAO_Activity::addActivity($contribution, NULL, $targetContactID);
+      CRM_Activity_BAO_Activity::addActivity($contribution, NULL, $targetContactID);
     }
 
     $transaction->commit();
@@ -1553,8 +1572,8 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
     $this->assign('honor_block_is_active', $honor_block_is_active);
     $this->assign('honor_block_title', CRM_Utils_Array::value('honor_block_title', $this->_values));
 
-    $prefix = CRM_Core_PseudoConstant::individualPrefix();
-    $honorType = CRM_Core_PseudoConstant::honor();
+    $prefix = CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'prefix_id');
+    $honorType = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'honor_type_id');
     $this->assign('honor_type', CRM_Utils_Array::value(CRM_Utils_Array::value('honor_type_id', $params), $honorType));
     $this->assign('honor_prefix', CRM_Utils_Array::value(CRM_Utils_Array::value('honor_prefix_id', $params), $prefix));
     $this->assign('honor_first_name', CRM_Utils_Array::value('honor_first_name', $params));
@@ -1700,7 +1719,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
       // add pcp id
       $contribSoftParams['pcp_id'] = $params['pcp_made_through_id'];
 
-      $softContribution = CRM_Contribute_BAO_Contribution::addSoftContribution($contribSoftParams);
+      $softContribution = CRM_Contribute_BAO_ContributionSoft::add($contribSoftParams);
     }
   }