Merge pull request #9337 from eileenmcnaughton/line_item
authorYashodha Chaku <yashodha.chaku@webaccessglobal.com>
Wed, 2 Nov 2016 14:57:20 +0000 (20:27 +0530)
committerGitHub <noreply@github.com>
Wed, 2 Nov 2016 14:57:20 +0000 (20:27 +0530)
CRM-19583 show financial type of line items whenbackoffice users view…

1  2 
CRM/Contribute/Form/ContributionView.php
CRM/Price/BAO/LineItem.php

index f21e4d219c778bb41f26fb3dbcea0a26cd25bcc1,78ac04e1dc5f192c52552ad7f153445eb304a97e..0f282c97a3f7ca3b1b6f251be962107a08cc82d6
@@@ -151,16 -151,16 +151,17 @@@ class CRM_Contribute_Form_ContributionV
      }
  
      $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)) {
index 08305b7b67b831cd9055ea195aac5d4948407ca3,0511af4b10cf703e572d9480bffef024b9fbcae8..9b9b458306c91e7c721090ed5f0839cc9e2a8484
@@@ -188,15 -188,20 +188,15 @@@ AND li.entity_id = {$entityId
     * @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');