From 0d6f29cdac276f161e58f55c4b9c6893d65540ac Mon Sep 17 00:00:00 2001 From: monishdeb Date: Thu, 24 Jul 2014 18:00:39 +0530 Subject: [PATCH] CRM-14875 fix - Related membership line_items missing from View Contribution page https://issues.civicrm.org/jira/browse/CRM-14875 --- CRM/Contribute/Form/ContributionView.php | 8 +++++--- CRM/Price/BAO/LineItem.php | 12 ++++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/CRM/Contribute/Form/ContributionView.php b/CRM/Contribute/Form/ContributionView.php index 23e08dd5b8..0fa8506c6f 100644 --- a/CRM/Contribute/Form/ContributionView.php +++ b/CRM/Contribute/Form/ContributionView.php @@ -130,8 +130,11 @@ class CRM_Contribute_Form_ContributionView extends CRM_Core_Form { $lineItems = array(); if ($id) { - $lineItem = CRM_Price_BAO_LineItem::getLineItems($id, 'contribution', 1); - empty($lineItem) ? null :$lineItems[] = $lineItem; + $lineItem = CRM_Price_BAO_LineItem::getLineItems($id, 'contribution', 1, TRUE, TRUE); + if (!empty($lineItem)) { + $lineItems[] = $lineItem; + } + } $this->assign('lineItem', empty($lineItems) ? FALSE : $lineItems); $values['totalAmount'] = $values['total_amount']; @@ -203,4 +206,3 @@ class CRM_Contribute_Form_ContributionView extends CRM_Core_Form { ); } } - diff --git a/CRM/Price/BAO/LineItem.php b/CRM/Price/BAO/LineItem.php index cb6e6f19e1..ae1637e076 100644 --- a/CRM/Price/BAO/LineItem.php +++ b/CRM/Price/BAO/LineItem.php @@ -117,10 +117,11 @@ AND li.entity_id = {$entityId} * * @param null $isQuick * @param bool $isQtyZero + * @param bool $relatedEntity * * @return array of line items */ - static function getLineItems($entityId, $entity = 'participant', $isQuick = NULL , $isQtyZero = TRUE) { + static function getLineItems($entityId, $entity = 'participant', $isQuick = NULL , $isQtyZero = TRUE, $relatedEntity = FALSE) { $selectClause = $whereClause = $fromClause = NULL; $selectClause = " SELECT li.id, @@ -139,11 +140,14 @@ AND li.entity_id = {$entityId} li.financial_type_id, pfv.description"; + $condition = "li.entity_id = %2.id AND li.entity_table = 'civicrm_%2'"; + if ($relatedEntity) { + $condition = "li.contribution_id = %2.id "; + } + $fromClause = " FROM civicrm_%2 as %2 - LEFT JOIN civicrm_line_item li ON (( li.entity_id = %2.id AND li.entity_table = 'civicrm_%2') - OR (li.contribution_id = %2.id AND li.entity_table = 'civicrm_membership') - OR (li.contribution_id = %2.id AND li.entity_table = 'civicrm_participant')) + LEFT JOIN civicrm_line_item li ON ({$condition}) LEFT JOIN civicrm_price_field_value pfv ON ( pfv.id = li.price_field_value_id ) LEFT JOIN civicrm_price_field pf ON (pf.id = li.price_field_id )"; $whereClause = " -- 2.25.1