From 32cb2feb8a91a1aec2098ffa22adc698945dec97 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Mon, 16 Sep 2013 11:19:29 -0700 Subject: [PATCH] CRM-13313 - Payments - prevent fatal error when line-item has no price set ---------------------------------------- * CRM-13313: "Pay Later" for Drupal Webforms http://issues.civicrm.org/jira/browse/CRM-13313 --- CRM/Contribute/Form/Contribution.php | 6 ++++-- CRM/Price/BAO/LineItem.php | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CRM/Contribute/Form/Contribution.php b/CRM/Contribute/Form/Contribution.php index 194b2c1944..7d567f7159 100644 --- a/CRM/Contribute/Form/Contribution.php +++ b/CRM/Contribute/Form/Contribution.php @@ -1029,8 +1029,10 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP } $lineItems[$itemId]['unit_price'] = $lineItems[$itemId]['line_total'] = CRM_Utils_Rule::cleanMoney(CRM_Utils_Array::value('total_amount', $submittedValues)); // 10117 update th line items for participants - $this->_priceSetId = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $lineItems[$itemId]['price_field_id'], 'price_set_id'); - $lineItem[$this->_priceSetId] = $lineItems; + if (!empty($lineItems[$itemId]['price_field_id'])) { + $this->_priceSetId = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $lineItems[$itemId]['price_field_id'], 'price_set_id'); + $lineItem[$this->_priceSetId] = $lineItems; + } } $isQuickConfig = 0; if ($this->_priceSetId && CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $this->_priceSetId, 'is_quick_config')) { diff --git a/CRM/Price/BAO/LineItem.php b/CRM/Price/BAO/LineItem.php index 839553b073..98a831ebc6 100644 --- a/CRM/Price/BAO/LineItem.php +++ b/CRM/Price/BAO/LineItem.php @@ -381,7 +381,7 @@ class CRM_Price_BAO_LineItem extends CRM_Price_DAO_LineItem { foreach ($entityId as $id) { $lineItems = CRM_Price_BAO_LineItem::getLineItems($id, $entityTable); foreach ($lineItems as $key => $values) { - if (!$setID) { + if (!$setID && $values['price_field_id']) { $setID = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $values['price_field_id'], 'price_set_id'); $params['is_quick_config'] = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $setID, 'is_quick_config'); } -- 2.25.1