}
$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'];
+ $this->assign('displayLineItemFinancialType', TRUE);
//do check for campaigns
if ($campaignId = CRM_Utils_Array::value('campaign_id', $values)) {
* @param string $entity
* participant/contribution.
*
- * @param null $isQuick
+ * @param bool $isQuick
* @param bool $isQtyZero
* @param bool $relatedEntity
*
- * @param string $overrideWhereClause
- * E.g "WHERE contribution id = 7 " per the getLineItemsByContributionID wrapper.
- * this function precedes the convenience of the contribution id but since it does quite a bit more than just a db retrieval we need to be able to use it even
- * when we don't want it's entity-id magix
- *
* @param bool $invoice
* @return array
* Array of line items
*/
- public static function getLineItems($entityId, $entity = 'participant', $isQuick = NULL, $isQtyZero = TRUE, $relatedEntity = FALSE, $overrideWhereClause = '', $invoice = FALSE) {
+ public static function getLineItems($entityId, $entity = 'participant', $isQuick = FALSE, $isQtyZero = TRUE, $relatedEntity = FALSE, $invoice = FALSE) {
$whereClause = $fromClause = NULL;
$selectClause = "
SELECT li.id,
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,
$getTaxDetails = FALSE;
$invoiceSettings = Civi::settings()->get('contribution_invoice_settings');
$invoicing = CRM_Utils_Array::value('invoicing', $invoiceSettings);
- if ($overrideWhereClause) {
- $whereClause = $overrideWhereClause;
- }
$dao = CRM_Core_DAO::executeQuery("$selectClause $fromClause $whereClause $orderByClause", $params);
while ($dao->fetch()) {
'field_title' => $dao->field_title,
'html_type' => $dao->html_type,
'description' => $dao->description,
- // the entity id seems prone to randomness but not sure if it has a reason - so if we are overriding the Where clause we assume
- // we also JUST WANT TO KNOW the the entity_id in the DB
- 'entity_id' => empty($overrideWhereClause) ? $entityId : $dao->entity_id,
+ 'entity_id' => $dao->entity_id,
'entity_table' => $dao->entity_table,
'contribution_id' => $dao->contribution_id,
'financial_type_id' => $dao->financial_type_id,
+ 'financial_type' => CRM_Core_PseudoConstant::getLabel('CRM_Contribute_BAO_Contribution', 'financial_type_id', $dao->financial_type_id),
'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'];
$isRelatedID = TRUE;
}
foreach ($entityId as $id) {
- $lineItems = CRM_Price_BAO_LineItem::getLineItems($id, $entityTable, NULL, TRUE, $isRelatedID);
+ $lineItems = CRM_Price_BAO_LineItem::getLineItems($id, $entityTable, FALSE, TRUE, $isRelatedID);
foreach ($lineItems as $key => $values) {
if (!$setID && $values['price_field_id']) {
$setID = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $values['price_field_id'], 'price_set_id');