From 866f6e8ef85010053040d0ce48a43a2ce522b114 Mon Sep 17 00:00:00 2001 From: Pradeep Nayak Date: Wed, 3 Sep 2014 19:40:18 +0530 Subject: [PATCH] -- CRM-15055, fixed code for message template as the line item was not rendered properly ---------------------------------------- * CRM-15055: Line item for membership entity should be created even when Record Payment is not checked https://issues.civicrm.org/jira/browse/CRM-15055 --- CRM/Member/BAO/Membership.php | 46 +++------------------------- CRM/Member/BAO/MembershipPayment.php | 1 - CRM/Member/Form/Membership.php | 10 +----- 3 files changed, 5 insertions(+), 52 deletions(-) diff --git a/CRM/Member/BAO/Membership.php b/CRM/Member/BAO/Membership.php index 195e80d771..b0833e8e94 100644 --- a/CRM/Member/BAO/Membership.php +++ b/CRM/Member/BAO/Membership.php @@ -340,14 +340,7 @@ class CRM_Member_BAO_Membership extends CRM_Member_DAO_Membership { //insert payment record for this membership if (!empty($params['relate_contribution_id'])) { - $mpDAO = new CRM_Member_DAO_MembershipPayment(); - $mpDAO->membership_id = $membership->id; - $mpDAO->contribution_id = $params['relate_contribution_id']; - if (!($mpDAO->find(TRUE))) { - CRM_Utils_Hook::pre('create', 'MembershipPayment', NULL, $mpDAO); - $mpDAO->save(); - CRM_Utils_Hook::post('create', 'MembershipPayment', $mpDAO->id, $mpDAO); - } + CRM_Member_BAO_MembershipPayment::create(array('membership_id' => $membership->id, 'contribution_id' => $params['relate_contribution_id'])); } // add activity record only during create mode and renew mode @@ -1282,25 +1275,7 @@ AND civicrm_membership.is_test = %2"; $result = $membershipContribution = NULL; $isTest = CRM_Utils_Array::value('is_test', $membershipParams, FALSE); $errors = $createdMemberships = array(); - - $membershipLineItem = array(); - if (is_array($membershipTypeID)) { - $lineItems = $form->_lineItem; - if ($isProcessSeparateMembershipTransaction) { - $lineItems[$form->_priceSetId] = array_merge($lineItems[$form->_priceSetId], $membershipLineItems[$form->_priceSetId]); - } - foreach ($lineItems[$form->_priceSetId] as $key => $line) { - if (!empty($line['membership_type_id'])) { - $membershipLineItem[$line['membership_type_id']] = $line; - unset($lineItems[$form->_priceSetId][$key]); - } - } - if (empty($lineItems[$form->_priceSetId])) { - $membershipParams['skipLineItem'] = TRUE; - } - $form->_lineItem = $lineItems; - } - + if ($isPaidMembership) { $result = CRM_Contribute_BAO_Contribution_Utils::processConfirm($form, $membershipParams, $premiumParams, $contactID, @@ -1321,7 +1296,7 @@ AND civicrm_membership.is_test = %2"; if ($isProcessSeparateMembershipTransaction) { try { - $membershipParams['skipLineItem'] = TRUE; + $lineItems = $form->_lineItem = $membershipLineItems; $membershipContribution = self::processSecondaryFinancialTransaction($contactID, $form, $membershipParams, $isTest, $membershipLineItems, CRM_Utils_Array::value('minimum_fee', $membershipDetails, 0), CRM_Utils_Array::value('financial_type_id', $membershipDetails)); } catch (CRM_Core_Exception $e) { @@ -1345,10 +1320,6 @@ AND civicrm_membership.is_test = %2"; foreach ($membershipTypeID as $memType) { $numTerms = CRM_Utils_Array::value($memType, $typesTerms, 1); $createdMemberships[$memType] = self::createOrRenewMembership($membershipParams, $contactID, $customFieldsFormatted, $membershipID, $memType, $isTest, $numTerms, $membershipContribution, $form); - if (CRM_Utils_Array::value($memType, $membershipLineItem)) { - CRM_Price_BAO_LineItem::processPriceSet($createdMemberships[$memType]->id, array($form->_priceSetId => array($membershipLineItem[$memType])), $membershipContribution); - $form->_lineItem[$form->_priceSetId][] = $membershipLineItem[$memType]; - } } if ($form->_priceSetId && !empty($form->_useForMember) && !empty($form->_lineItem)) { foreach ($form->_lineItem[$form->_priceSetId] as & $priceFieldOp) { @@ -2879,16 +2850,7 @@ WHERE civicrm_membership.is_test = 0"; //insert payment record for this membership if (empty($ids['contribution']) || !empty($params['is_recur'])) { - $mpDAO = new CRM_Member_DAO_MembershipPayment(); - $mpDAO->membership_id = $membershipId; - $mpDAO->contribution_id = $contribution->id; - if (!empty($params['is_recur'])) { - $mpDAO->find(); - } - - CRM_Utils_Hook::pre('create', 'MembershipPayment', NULL, $mpDAO); - $mpDAO->save(); - CRM_Utils_Hook::post('create', 'MembershipPayment', $mpDAO->id, $mpDAO); + CRM_Member_BAO_MembershipPayment::create(array('membership_id' => $membershipId, 'contribution_id' => $contribution->id)); } return $contribution; } diff --git a/CRM/Member/BAO/MembershipPayment.php b/CRM/Member/BAO/MembershipPayment.php index f83dbc1a59..373db3e2cd 100644 --- a/CRM/Member/BAO/MembershipPayment.php +++ b/CRM/Member/BAO/MembershipPayment.php @@ -72,7 +72,6 @@ class CRM_Member_BAO_MembershipPayment extends CRM_Member_DAO_MembershipPayment LEFT JOIN civicrm_price_field_value pv ON pv.id = li.price_field_value_id SET entity_table = 'civicrm_membership', entity_id = %1 WHERE pv.membership_type_id = %2 - AND entity_table = 'civicrm_contribution' AND entity_id = contribution_id AND contribution_id = %3"; CRM_Core_DAO::executeQuery($sql, array(1 => array($dao->membership_id, 'Integer'), 2 => array($membershipTypeID, 'Integer'), 3 => array($dao->contribution_id, 'Integer'))); return $dao; diff --git a/CRM/Member/Form/Membership.php b/CRM/Member/Form/Membership.php index 018978e6d1..bf182330c9 100644 --- a/CRM/Member/Form/Membership.php +++ b/CRM/Member/Form/Membership.php @@ -1297,13 +1297,7 @@ WHERE id IN ( ' . implode(' , ', array_keys($membershipType)) . ' )'; $formValues['financial_type_id'] ); } - $membershipLineItems = array(); - foreach ($lineItem[$this->_priceSetId] as $key => $value) { - if (!empty($value['membership_type_id'])) { - $membershipLineItems[$value['membership_type_id']] = $value; - unset($lineItem[$this->_priceSetId][$key]); - } - } + // process line items, until no previous line items. if (!empty($lineItem)) { $params['lineItems'] = $lineItem; @@ -1529,7 +1523,6 @@ WHERE id IN ( ' . implode(' , ', array_keys($membershipType)) . ' )'; } $membershipParams = array_merge($membershipTypeValues[$memType], $params); - $membershipParams['lineItems'][$this->_priceSetId][] = $membershipLineItems[$memType]; $membership = CRM_Member_BAO_Membership::create($membershipParams, $ids); $params['contribution'] = CRM_Utils_Array::value('contribution', $membershipParams); unset($params['lineItems']); @@ -1632,7 +1625,6 @@ WHERE id IN ( ' . implode(' , ', array_keys($membershipType)) . ' )'; $membershipParams['soft_credit'] = $softParams; } - $membershipParams['lineItems'][$this->_priceSetId][] = $membershipLineItems[$memType]; $membership = CRM_Member_BAO_Membership::create($membershipParams, $ids); $params['contribution'] = CRM_Utils_Array::value('contribution', $membershipParams); unset($params['lineItems']); -- 2.25.1