$entityTable = 'civicrm_participant';
$additionalParticipantId = CRM_Event_BAO_Participant::getAdditionalParticipantIds($entityId);
}
+ elseif (!empty($params['membership_id'])) {
+ //so far $params['membership_id'] should only be set coming in from membershipBAO::create so the situation where multiple memberships
+ // are created off one contribution should be handled elsewhere
+ $entityId = $params['membership_id'];
+ $entityTable = 'civicrm_membership';
+ }
else {
$entityId = $params['contribution']->id;
$entityTable = 'civicrm_contribution';
'contact_id', 'total_amount', 'receive_date', 'financial_type_id',
'payment_instrument_id', 'trxn_id', 'invoice_id', 'is_test',
'contribution_status_id', 'check_number', 'campaign_id', 'is_pay_later',
+ 'membership_id',
);
foreach ($recordContribution as $f) {
$contributionParams[$f] = CRM_Utils_Array::value($f, $params);
$lineItems[$itemId]['line_total'] = $params['total_amount'];
$lineItems[$itemId]['id'] = $itemId;
$lineItem[$priceSetId] = $lineItems;
- CRM_Price_BAO_LineItem::processPriceSet($params['contribution_id'], $lineItem);
+ $contributionBAO = new CRM_Contribute_BAO_Contribution();
+ $contributionBAO->id = $params['contribution_id'];
+ $contributionBAO->find();
+ CRM_Price_BAO_LineItem::processPriceSet($params['contribution_id'], $lineItem, $contributionBAO, 'civicrm_membership');
//create new soft-credit record, CRM-13981
$softParams['contribution_id'] = $params['contribution_id'];
- $dao = new CRM_Contribute_DAO_Contribution();
- $dao->id = $params['contribution_id'];
- $dao->find();
- while ($dao->fetch()) {
- $softParams['currency'] = $dao->currency;
- $softParams['amount'] = $dao->total_amount;
+
+ while ($contributionBAO->fetch()) {
+ $softParams['currency'] = $contributionBAO->currency;
+ $softParams['amount'] = $contributionBAO->total_amount;
}
CRM_Contribute_BAO_ContributionSoft::add($softParams);
}
foreach ($values as $line) {
$line['entity_table'] = $entityTable;
$line['entity_id'] = $entityId;
+ if(!empty($line['membership_type_id'])) {
+ $entityTable == 'civicrm_membership';
+ $line['contribution_id'] = $contributionDetails->id;
+ }
if ($entityTable == 'civicrm_contribution') {
$line['contribution_id'] = $entityId;
}