CRM-20283 Added credit card type field for PCP report (#9996)
authorEdsel Roque Lopez <edsel.lopez@jmaconsulting.biz>
Thu, 23 Mar 2017 21:44:37 +0000 (03:14 +0530)
committerEileen McNaughton <eileen@mcnaughty.com>
Thu, 23 Mar 2017 21:44:37 +0000 (10:44 +1300)
* CRM-20283 Added credit card type field to PCP report

----------------------------------------
* CRM-19997: Add Credit card type fields in contribution related reports
  https://issues.civicrm.org/jira/browse/CRM-19997

----------------------------------------
* CRM-20283:
  https://issues.civicrm.org/jira/browse/CRM-20283

CRM-20283 Added credit card type field for PCP report

----------------------------------------
* CRM-20283: Add credit card type field for PCP report
  https://issues.civicrm.org/jira/browse/CRM-20283

CRM-20283 Bug fixes

----------------------------------------
* CRM-20283: Add credit card type field for PCP report
  https://issues.civicrm.org/jira/browse/CRM-20283

CRM-20283 Fixed report to read from card type rather than credit card type

----------------------------------------
* CRM-20283: Add credit card type field for PCP report
  https://issues.civicrm.org/jira/browse/CRM-20283

CRM-20283 Removed line break

----------------------------------------
* CRM-20283:
  https://issues.civicrm.org/jira/browse/CRM-20283

* QA fixes

CRM/Report/Form.php
CRM/Report/Form/Contribute/PCP.php

index 62000041db32e7f4b3748c17b5ad4c551c237da7..a8d4a1f7cd8542c4c699db53d978bfce04665f33 100644 (file)
@@ -4335,8 +4335,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
    */
   public function addPhoneFromClause() {
     // include address field if address column is to be included
-    if ($this->isTableSelected('civicrm_phone')
-    ) {
+    if ($this->isTableSelected('civicrm_phone')) {
       $this->_from .= "
       LEFT JOIN civicrm_phone {$this->_aliases['civicrm_phone']}
       ON ({$this->_aliases['civicrm_contact']}.id =
@@ -4345,6 +4344,20 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
     }
   }
 
+  /**
+   * Add Financial Transaction into From Table if required.
+   */
+  public function addFinancialTrxnFromClause() {
+    if ($this->isTableSelected('civicrm_financial_trxn')) {
+      $this->_from .= "
+         LEFT JOIN civicrm_entity_financial_trxn eftcc
+           ON ({$this->_aliases['civicrm_contribution']}.id = eftcc.entity_id AND
+             eftcc.entity_table = 'civicrm_contribution')
+         LEFT JOIN civicrm_financial_trxn {$this->_aliases['civicrm_financial_trxn']}
+           ON {$this->_aliases['civicrm_financial_trxn']}.id = eftcc.financial_trxn_id \n";
+    }
+  }
+
   /**
    * Get phone columns to add to array.
    *
index c43c5b1bab787b1319142d1793f37b3988005b85..6a137a1b15db8589931e4bca31ffdad5893a9e14 100644 (file)
@@ -166,6 +166,24 @@ class CRM_Report_Form_Contribute_PCP extends CRM_Report_Form {
         ),
         'grouping' => 'pcp-fields',
       ),
+      'civicrm_financial_trxn' => array(
+        'dao' => 'CRM_Financial_DAO_FinancialTrxn',
+        'fields' => array(
+          'card_type' => array(
+            'title' => ts('Credit Card Type'),
+            'dbAlias' => 'GROUP_CONCAT(financial_trxn_civireport.card_type SEPARATOR ",")',
+          ),
+        ),
+        'filters' => array(
+          'card_type' => array(
+            'title' => ts('Credit Card Type'),
+            'operatorType' => CRM_Report_Form::OP_MULTISELECT,
+            'options' => CRM_Financial_DAO_FinancialTrxn::buildOptions('card_type'),
+            'default' => NULL,
+            'type' => CRM_Utils_Type::T_STRING,
+          ),
+        ),
+      ),
     );
 
     parent::__construct();
@@ -190,6 +208,9 @@ LEFT JOIN civicrm_contact {$this->_aliases['civicrm_contact']}
 LEFT JOIN civicrm_contribution_page {$this->_aliases['civicrm_contribution_page']}
           ON {$this->_aliases['civicrm_pcp']}.page_id =
              {$this->_aliases['civicrm_contribution_page']}.id";
+
+    // for credit card type
+    $this->addFinancialTrxnFromClause();
   }
 
   public function groupBy() {
@@ -355,6 +376,11 @@ LEFT JOIN civicrm_contribution_page {$this->_aliases['civicrm_contribution_page'
         $entryFound = TRUE;
       }
 
+      if (!empty($row['civicrm_financial_trxn_card_type'])) {
+        $rows[$rowNum]['civicrm_financial_trxn_card_type'] = $this->getLabels($row['civicrm_financial_trxn_card_type'], 'CRM_Financial_DAO_FinancialTrxn', 'card_type');
+        $entryFound = TRUE;
+      }
+
       if (!$entryFound) {
         break;
       }