Fix for test
authorSudha Bisht <sudha.bisht@webaccessglobal.com>
Thu, 11 Jun 2015 06:56:31 +0000 (12:26 +0530)
committerSudha Bisht <sudha.bisht@webaccessglobal.com>
Thu, 11 Jun 2015 06:56:31 +0000 (12:26 +0530)
CRM/Contribute/BAO/Contribution/Utils.php
CRM/Member/BAO/Membership.php
api/v3/examples/ContributionPage/Submit.php
tests/phpunit/api/v3/ContributionPageTest.php

index b3449beac12beeff42a9af64526980c91032126c..1df72627a67be6c30b970d36455fe81884cb438a 100644 (file)
@@ -226,8 +226,8 @@ class CRM_Contribute_BAO_Contribution_Utils {
         // cache the is_recur values so we can process the additional gift as a
         // one-off payment.
         $pending = FALSE;
-        if ($form->_membershipBlock['is_separate_payment']) {
-          if (!empty($form->_params['auto_renew'])) {
+        if (!empty($form->_values['is_recur'])) {
+          if ($form->_membershipBlock['is_separate_payment'] && !empty($form->_params['auto_renew'])) {
             $cachedFormValue = CRM_Utils_Array::value('is_recur', $form->_values);
             $cachedParamValue = CRM_Utils_Array::value('is_recur', $paymentParams);
             unset($form->_values['is_recur']);
index b3d1ff9df98420230b3c6b139394a48cce1d86e5..13c2ca8c83516cb3b9bf80849513868c1cc4213a 100644 (file)
@@ -1541,7 +1541,8 @@ AND civicrm_membership.is_test = %2";
     $modifiedID = NULL,
     $customFieldsFormatted = NULL,
     $numRenewTerms = 1,
-    $membershipID = NULL
+    $membershipID = NULL,
+    $pending = FALSE
   ) {
     $statusFormat = '%Y-%m-%d';
     $format = '%Y%m%d';
@@ -1557,7 +1558,7 @@ AND civicrm_membership.is_test = %2";
     $membershipTypeDetails = CRM_Member_BAO_MembershipType::getMembershipTypeDetails($membershipTypeID);
 
     // check is it pending. - CRM-4555
-    list($pending, $contributionRecurID, $changeToday, $membershipSource, $isPayLater, $campaignId) = self::extractFormValues($form, $changeToday, $membershipTypeDetails);
+    list($pending, $contributionRecurID, $changeToday, $membershipSource, $isPayLater, $campaignId) = self::extractFormValues($form, $changeToday, $membershipTypeDetails, $pending);
     list($membership, $renewalMode, $dates) = self::renewMembership($contactID, $membershipTypeID, $is_test, $changeToday, $modifiedID, $customFieldsFormatted, $numRenewTerms, $membershipID, $pending, $allStatus, $membershipTypeDetails, $contributionRecurID, $format, $membershipSource, $ids, $statusFormat, $isPayLater, $campaignId);
     $form->set('renewal_mode', $renewalMode);
     if (!empty($dates)) {
@@ -2307,11 +2308,14 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = membership.contact_id AND
    * @return array
    */
   public static function createOrRenewMembership($membershipParams, $contactID, $customFieldsFormatted, $membershipID, $memType, $isTest, $numTerms, $membershipContribution, &$form) {
+    if (!empty($membershipContribution)) {
+      $pending = ($membershipContribution->contribution_status_id == 2) ? TRUE : FALSE;
+    }
     $membership = self::renewMembershipFormWrapper($contactID, $memType,
       $isTest, $form, NULL,
       CRM_Utils_Array::value('cms_contactID', $membershipParams),
       $customFieldsFormatted, $numTerms,
-      $membershipID
+      $membershipID, $pending
     );
 
     if (!empty($membershipContribution)) {
@@ -2348,8 +2352,7 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = membership.contact_id AND
    *
    * @return array
    */
-  public static function extractFormValues($form, $changeToday, $membershipTypeDetails) {
-    $pending = FALSE;
+  public static function extractFormValues($form, $changeToday, $membershipTypeDetails, $pending = FALSE) {
     //@todo this is a BAO function & should not inspect the form - the form should do this
     // & pass required params to the BAO
     if (CRM_Utils_Array::value('minimum_fee', $membershipTypeDetails) > 0.0) {
index e48416e567883baa7283a179c0054feb0f6230bf..aa5605270316a256be91287c85971e083115a95a 100644 (file)
@@ -30,7 +30,6 @@ function contribution_page_submit_example() {
     'is_recur' => 1,
     'frequency_interval' => 1,
     'frequency_unit' => 'month',
-    'is_pay_later' => 1,
   );
 
   try{
index 2051df4ee90503db4ffd2c803633dd82aefaa2e9..62267179d0563b61dbc90da30e0716e5fbe8e43d 100644 (file)
@@ -349,7 +349,6 @@ class api_v3_ContributionPageTest extends CiviUnitTestCase {
       'is_recur' => 1,
       'frequency_interval' => 1,
       'frequency_unit' => 'month',
-      'is_pay_later' => 1,
     );
 
     $this->callAPIAndDocument('contribution_page', 'submit', $submitParams, __FUNCTION__, __FILE__, 'submit contribution page', NULL);