CRM-17951 modify transaction view to show the financial account of the transaction
authoreileen <emcnaughton@wikimedia.org>
Thu, 4 Feb 2016 11:33:33 +0000 (00:33 +1300)
committereileen <emcnaughton@wikimedia.org>
Thu, 4 Feb 2016 11:46:41 +0000 (00:46 +1300)
Previously it was showing the financial type of the contribution - but the payment could have a different financial account, although that would not be the norm and for most users no difference would be apparent. I added a group_concat in case there are multiple accounts associated with a transaction now, or in the future.

Note we have separately discussed exposing line item detail - this got stalled on how to make it look tidy in the UI

CRM/Contribute/BAO/Contribution.php
templates/CRM/Contribute/Form/AdditionalPayment.tpl

index e49d8a7b87b849940a7ca27306f52fcbd4b4a7e3..3dd26426616bcb5598ddbe3673691d845bfc38aa 100644 (file)
@@ -3959,12 +3959,22 @@ WHERE eft.financial_trxn_id IN ({$trxnId}, {$baseTrxnId['financialTrxnId']})
     if ($getTrxnInfo && $baseTrxnId) {
       // Need to exclude fee trxn rows so filter out rows where TO FINANCIAL ACCOUNT is expense account
       $sql = "
-SELECT ft.total_amount, con.financial_type_id, ft.payment_instrument_id, ft.trxn_date, ft.trxn_id, ft.status_id, ft.check_number
-FROM civicrm_contribution con
-  LEFT JOIN civicrm_entity_financial_trxn eft ON (eft.entity_id = con.id AND eft.entity_table = 'civicrm_contribution')
-  INNER JOIN civicrm_financial_trxn ft ON ft.id = eft.financial_trxn_id AND ft.to_financial_account_id != {$feeFinancialAccount}
-WHERE con.id = {$contributionId}
-";
+        SELECT GROUP_CONCAT(fa.`name`) as financial_account,
+          ft.total_amount,
+          ft.payment_instrument_id,
+          ft.trxn_date, ft.trxn_id, ft.status_id, ft.check_number
+
+        FROM civicrm_contribution con
+          LEFT JOIN civicrm_entity_financial_trxn eft ON (eft.entity_id = con.id AND eft.entity_table = 'civicrm_contribution')
+          INNER JOIN civicrm_financial_trxn ft ON ft.id = eft.financial_trxn_id
+            AND ft.to_financial_account_id != {$feeFinancialAccount}
+          INNER JOIN civicrm_entity_financial_trxn ef ON (ef.financial_trxn_id = ft.id AND ef.entity_table = 'civicrm_financial_item')
+          LEFT JOIN civicrm_financial_item fi ON fi.id = ef.entity_id
+          INNER JOIN civicrm_financial_account fa ON fa.id = fi.financial_account_id
+
+        WHERE con.id = {$contributionId}
+        GROUP BY ft.id
+      ";
 
       // conditioned WHERE clause
       if ($isBalance) {
@@ -3974,13 +3984,13 @@ WHERE con.id = {$contributionId}
       $resultDAO = CRM_Core_DAO::executeQuery($sql);
 
       $statuses = CRM_Contribute_PseudoConstant::contributionStatus();
-      $financialTypes = CRM_Contribute_PseudoConstant::financialType();
+
       while ($resultDAO->fetch()) {
         $paidByLabel = CRM_Core_PseudoConstant::getLabel('CRM_Core_BAO_FinancialTrxn', 'payment_instrument_id', $resultDAO->payment_instrument_id);
         $paidByName = CRM_Core_PseudoConstant::getName('CRM_Core_BAO_FinancialTrxn', 'payment_instrument_id', $resultDAO->payment_instrument_id);
         $val = array(
           'total_amount' => $resultDAO->total_amount,
-          'financial_type' => $financialTypes[$resultDAO->financial_type_id],
+          'financial_type' => $resultDAO->financial_account,
           'payment_instrument' => $paidByLabel,
           'receive_date' => $resultDAO->trxn_date,
           'trxn_id' => $resultDAO->trxn_id,
index 2619a88aa93bc8157bee148bf11e96c102e1f0a6..b28af1edfe6a0f4e2fa2351ee525276e4d3826ff 100644 (file)
      {else}
        {assign var='entity' value=$component}
      {/if}
-    {if $suppressPaymentFormButtons}
-      {ts 1=$entity}No payments found for this %1 record{/ts}
-    {else}
-      {* Am unsure where this appears so unsure if above text could apply *}
-      {ts 1=$entity}No Additional payments found for this %1 record{/ts}
-    {/if}
+     {ts 1=$entity}No payments found for this %1 record{/ts}
   {/if}
   {if !$suppressPaymentFormButtons}
     <div class="crm-submit-buttons">