// 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']);
$modifiedID = NULL,
$customFieldsFormatted = NULL,
$numRenewTerms = 1,
- $membershipID = NULL
+ $membershipID = NULL,
+ $pending = FALSE
) {
$statusFormat = '%Y-%m-%d';
$format = '%Y%m%d';
$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)) {
* @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)) {
*
* @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) {