Skip to content

Commit

Permalink
Merge pull request #9327 from eileenmcnaughton/pradeep
Browse files Browse the repository at this point in the history
Fix line item fetch on membership template with priceset.
  • Loading branch information
eileenmcnaughton authored Oct 31, 2016
2 parents 7cc3e40 + 270ff67 commit aab35da
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 16 deletions.
19 changes: 10 additions & 9 deletions CRM/Contribute/BAO/Contribution.php
Original file line number Diff line number Diff line change
Expand Up @@ -2640,20 +2640,24 @@ public function _gatherMessageValues($input, &$values, $ids = array()) {
}
// set lineItem for contribution
if ($this->id) {
$lineItem = CRM_Price_BAO_LineItem::getLineItems($this->id, 'contribution', 1);
if (!empty($lineItem)) {
$itemId = key($lineItem);
foreach ($lineItem as &$eachItem) {
$lineItems = CRM_Price_BAO_LineItem::getLineItemsByContributionID($this->id);
if (!empty($lineItems)) {
$firstLineItem = reset($lineItems);
$priceSet = civicrm_api3('PriceSet', 'getsingle', array('id' => $firstLineItem['price_set_id'], 'return' => 'is_quick_config, id'));
$values['priceSetID'] = $priceSet['id'];
foreach ($lineItems as &$eachItem) {
if (isset($this->_relatedObjects['membership'])
&& is_array($this->_relatedObjects['membership'])
&& array_key_exists($eachItem['membership_type_id'], $this->_relatedObjects['membership'])) {
$eachItem['join_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->join_date);
$eachItem['start_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->start_date);
$eachItem['end_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->end_date);
}
// This is actually used in conjunction with is_quick_config in the template & we should deprecate it.
// However, that does create upgrade pain so would be better to be phased in.
$values['useForMember'] = !$priceSet['is_quick_config'];
}
$values['lineItem'][0] = $lineItem;
$values['priceSetID'] = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $lineItem[$itemId]['price_field_id'], 'price_set_id');
$values['lineItem'][0] = $lineItems;
}
}

Expand Down Expand Up @@ -2807,9 +2811,6 @@ public function _assignMessageVariablesToTemplate(&$values, $input, &$template,
$billingMode = empty($this->_relatedObjects['paymentProcessor']) ? CRM_Core_Payment::BILLING_MODE_NOTIFY : $this->_relatedObjects['paymentProcessor']['billing_mode'];
$template->assign('contributeMode', CRM_Utils_Array::value($billingMode, CRM_Core_SelectValues::contributeMode()));

if (!empty($values['lineItem']) && !empty($this->_relatedObjects['membership'])) {
$values['useForMember'] = TRUE;
}
//assign honor information to receipt message
$softRecord = CRM_Contribute_BAO_ContributionSoft::getSoftContribution($this->id);

Expand Down
13 changes: 7 additions & 6 deletions CRM/Contribute/Form/ContributionView.php
Original file line number Diff line number Diff line change
Expand Up @@ -151,14 +151,15 @@ public function preProcess() {
}

$lineItems = array();
$displayLineItems = FALSE;
if ($id) {
$lineItem = CRM_Price_BAO_LineItem::getLineItems($id, 'contribution', 1, TRUE, TRUE);
if (!empty($lineItem)) {
$lineItems[] = $lineItem;
}

$lineItems = array(CRM_Price_BAO_LineItem::getLineItemsByContributionID(($id)));
$firstLineItem = reset($lineItems[0]);
$priceSet = civicrm_api3('PriceSet', 'getsingle', array('id' => $firstLineItem['price_set_id'], 'return' => 'is_quick_config, id'));
$displayLineItems = !$priceSet['is_quick_config'];
}
$this->assign('lineItem', empty($lineItems) ? FALSE : $lineItems);
$this->assign('lineItem', $lineItems);
$this->assign('displayLineItems', $displayLineItems);
$values['totalAmount'] = $values['total_amount'];

//do check for campaigns
Expand Down
2 changes: 2 additions & 0 deletions CRM/Price/BAO/LineItem.php
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ public static function getLineItems($entityId, $entity = 'participant', $isQuick
li.entity_id,
pf.label as field_title,
pf.html_type,
pf.price_set_id,
pfv.membership_type_id,
pfv.membership_num_terms,
li.price_field_id,
Expand Down Expand Up @@ -298,6 +299,7 @@ public static function getLineItems($entityId, $entity = 'participant', $isQuick
'membership_type_id' => $dao->membership_type_id,
'membership_num_terms' => $dao->membership_num_terms,
'tax_amount' => $dao->tax_amount,
'price_set_id' => $dao->price_set_id,
);
$lineItems[$dao->id]['tax_rate'] = CRM_Price_BAO_LineItem::calculateTaxRate($lineItems[$dao->id]);
$lineItems[$dao->id]['subTotal'] = $lineItems[$dao->id]['qty'] * $lineItems[$dao->id]['unit_price'];
Expand Down
2 changes: 1 addition & 1 deletion templates/CRM/Contribute/Form/ContributionView.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
<td class="label">{ts}Financial Type{/ts}</td>
<td>{$financial_type}{if $is_test} {ts}(test){/ts} {/if}</td>
</tr>
{if $lineItem}
{if $displayLineItems}
<tr>
<td class="label">{ts}Contribution Amount{/ts}</td>
<td>{include file="CRM/Price/Page/LineItem.tpl" context="Contribution"}
Expand Down

0 comments on commit aab35da

Please sign in to comment.