This is an automated email from the ASF dual-hosted git repository.
adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new b96e2417e FINERACT-1853: Fix accounting transaction summary report
b96e2417e is described below
commit b96e2417edf8f08ae52d584f8f4089bab26fe335
Author: Jose Alberto Hernandez <[email protected]>
AuthorDate: Thu Mar 30 17:25:21 2023 -0600
FINERACT-1853: Fix accounting transaction summary report
---
.../db/changelog/tenant/changelog-tenant.xml | 1 +
...101_update_transaction_summary_table_report.xml | 638 +++++++++++++++++++++
2 files changed, 639 insertions(+)
diff --git
a/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
b/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
index bcc49f35a..ab937e3c0 100644
---
a/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
+++
b/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
@@ -120,4 +120,5 @@
<include file="parts/0098_update_transaction_summary_table_report.xml"
relativeToChangelogFile="true" />
<include
file="parts/0099_add_accrual_transaction_external_event_configuration.xml"
relativeToChangelogFile="true" />
<include file="parts/0100_new_repayment_strategy.xml"
relativeToChangelogFile="true" />
+ <include file="parts/0101_update_transaction_summary_table_report.xml"
relativeToChangelogFile="true" />
</databaseChangeLog>
diff --git
a/fineract-provider/src/main/resources/db/changelog/tenant/parts/0101_update_transaction_summary_table_report.xml
b/fineract-provider/src/main/resources/db/changelog/tenant/parts/0101_update_transaction_summary_table_report.xml
new file mode 100644
index 000000000..1dc012245
--- /dev/null
+++
b/fineract-provider/src/main/resources/db/changelog/tenant/parts/0101_update_transaction_summary_table_report.xml
@@ -0,0 +1,638 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.3.xsd">
+ <!-- Transaction Summary Report -->
+ <changeSet author="fineract" id="1">
+ <update tableName="stretchy_report">
+ <column name="report_sql" value="SELECT
+ '${endDate}' AS TransactionDate,
+ a.product AS Product,
+ (
+ SELECT
+ enum_message_property
+ FROM
+ r_enum_value
+ WHERE
+ enum_name = 'transaction_type_enum'
+ and enum_id = a.transaction_type
+ ) TransactionType_Name,
+ (
+ select
+ value
+ from
+ m_payment_type
+ where
+ id = a.payment_type_id
+ ) as PaymentType_Name,
+ a.chargetype as chargetype,
+ a.reversal_indicator AS Reversed,
+ a.Allocation_Type AS Allocation_Type,
+ '' AS Chargeoff_ReasonCode,
+ case when a.transaction_type IN (2, 23, 21, 22, 24, 4, 5, 8, 6,
27, 9, 26)
+ AND a.reversal_indicator = false then sum(a.amount) * -1 when
a.transaction_type IN (2, 23, 21, 22, 24, 4, 5, 8, 6, 27, 9, 26)
+ AND a.reversal_indicator = true then sum(a.amount) * + 1 when
a.transaction_type IN (1, 10, 25, 20)
+ AND a.reversal_indicator = false then sum(a.amount) * + 1 when
a.transaction_type IN (1, 10, 25, 20)
+ AND a.reversal_indicator = true then sum(a.amount) * -1 end AS
Transaction_Amount
+ FROM
+ (
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ false AS reversal_indicator,
+ 'Principal' AS Allocation_Type,
+ CASE when t.transaction_type_enum in (1) then (
+ case when t.amount is null then 0 else t.amount end
+ ) else (
+ case when t.principal_portion_derived is null then 0 else
t.principal_portion_derived end
+ ) end amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum not in (10, 26)
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ false AS reversal_indicator,
+ 'Interest' AS Allocation_Type,
+ case when t.interest_portion_derived is null then 0 else
t.interest_portion_derived end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum not in (10, 26)
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ false AS reversal_indicator,
+ 'Fees' AS Allocation_Type,
+ case when t.fee_charges_portion_derived is null then 0 else
t.fee_charges_portion_derived end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum not in (10, 26)
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ false AS reversal_indicator,
+ 'Penalty' AS Allocation_Type,
+ case when t.penalty_charges_portion_derived is null then 0
else t.penalty_charges_portion_derived end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum not in (10, 26)
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ false AS reversal_indicator,
+ 'Unallocated Credit (UNC)' AS Allocation_Type,
+ case when t.overpayment_portion_derived is null then 0 else
t.overpayment_portion_derived end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum not in (10, 26)
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ null,
+ mc.name,
+ false AS reversal_indicator,
+ 'Fees' AS Allocation_Type,
+ case when pd.amount is null then 0 else pd.amount end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ join m_loan_charge_paid_by pd on pd.loan_transaction_id = t.id
+ join m_loan_charge c on c.id = pd.loan_charge_id
+ join m_charge mc on mc.id = c.charge_id
+ and mc.is_penalty = false
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum = 10
+ and t.is_reversed = false
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ null,
+ mc.name,
+ false AS reversal_indicator,
+ 'Penalty' AS Allocation_Type,
+ case when pd.amount is null then 0 else pd.amount end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ join m_loan_charge_paid_by pd on pd.loan_transaction_id = t.id
+ join m_loan_charge c on c.id = pd.loan_charge_id
+ join m_charge mc on mc.id = c.charge_id
+ and mc.is_penalty = true
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum = 10
+ and t.is_reversed = false
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ null,
+ '' as chargetype,
+ false AS reversal_indicator,
+ 'Interest' AS Allocation_Type,
+ case when t.interest_portion_derived is null then 0 else
t.interest_portion_derived end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum = 10
+ and t.is_reversed = false
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ mc.name,
+ false AS reversal_indicator,
+ 'Fees' AS Allocation_Type,
+ case when pd.amount is null then 0 else pd.amount end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ join m_loan_charge_paid_by pd on pd.loan_transaction_id = t.id
+ join m_loan_charge c on c.id = pd.loan_charge_id
+ join m_charge mc on mc.id = c.charge_id
+ and mc.is_penalty = false
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum = 26
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ mc.name,
+ false AS reversal_indicator,
+ 'Penalty' AS Allocation_Type,
+ case when pd.amount is null then 0 else pd.amount end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ join m_loan_charge_paid_by pd on pd.loan_transaction_id = t.id
+ join m_loan_charge c on c.id = pd.loan_charge_id
+ join m_charge mc on mc.id = c.charge_id
+ and mc.is_penalty = true
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum = 26
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ false AS reversal_indicator,
+ 'Interest' AS Allocation_Type,
+ case when t.interest_portion_derived is null then 0 else
t.interest_portion_derived end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum = 26
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ false AS reversal_indicator,
+ 'Principal' AS Allocation_Type,
+ case when t.principal_portion_derived is null then 0 else
t.principal_portion_derived end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum = 26
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ false AS reversal_indicator,
+ 'Unallocated Credit (UNC)' AS Allocation_Type,
+ case when t.overpayment_portion_derived is null then 0 else
t.overpayment_portion_derived end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.submitted_on_date = '${endDate}'
+ and t.transaction_type_enum = 26
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ true AS reversal_indicator,
+ 'Principal' AS Allocation_Type,
+ CASE when t.transaction_type_enum in (1) then (
+ case when t.amount is null then 0 else t.amount end
+ ) else (
+ case when t.principal_portion_derived is null then 0 else
t.principal_portion_derived end
+ ) end amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum not in (10, 26)
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ true AS reversal_indicator,
+ 'Interest' AS Allocation_Type,
+ case when t.interest_portion_derived is null then 0 else
t.interest_portion_derived end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum not in (10, 26)
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ true AS reversal_indicator,
+ 'Fees' AS Allocation_Type,
+ case when t.fee_charges_portion_derived is null then 0 else
t.fee_charges_portion_derived end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum not in (10, 26)
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ true AS reversal_indicator,
+ 'Penalty' AS Allocation_Type,
+ case when t.penalty_charges_portion_derived is null then 0
else t.penalty_charges_portion_derived end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum not in (10, 26)
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ true AS reversal_indicator,
+ 'Unallocated Credit (UNC)' AS Allocation_Type,
+ case when t.overpayment_portion_derived is null then 0 else
t.overpayment_portion_derived end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum not in (10, 26)
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ null,
+ mc.name,
+ true AS reversal_indicator,
+ 'Fees' AS Allocation_Type,
+ case when pd.amount is null then 0 else pd.amount end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ join m_loan_charge_paid_by pd on pd.loan_transaction_id = t.id
+ join m_loan_charge c on c.id = pd.loan_charge_id
+ join m_charge mc on mc.id = c.charge_id
+ and mc.is_penalty = false
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum = 10
+ and t.is_reversed = true
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ null,
+ mc.name,
+ true AS reversal_indicator,
+ 'Penalty' AS Allocation_Type,
+ case when pd.amount is null then 0 else pd.amount end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ join m_loan_charge_paid_by pd on pd.loan_transaction_id = t.id
+ join m_loan_charge c on c.id = pd.loan_charge_id
+ join m_charge mc on mc.id = c.charge_id
+ and mc.is_penalty = true
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum = 10
+ and t.is_reversed = true
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ null,
+ '' as chargetype,
+ true AS reversal_indicator,
+ 'Interest' AS Allocation_Type,
+ case when t.interest_portion_derived is null then 0 else
t.interest_portion_derived end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum = 10
+ and t.is_reversed = true
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ mc.name,
+ true AS reversal_indicator,
+ 'Fees' AS Allocation_Type,
+ case when pd.amount is null then 0 else pd.amount end as amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ join m_loan_charge_paid_by pd on pd.loan_transaction_id = t.id
+ join m_loan_charge c on c.id = pd.loan_charge_id
+ join m_charge mc on mc.id = c.charge_id
+ and mc.is_penalty = false
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum = 26
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ mc.name,
+ true AS reversal_indicator,
+ 'Penalty' AS Allocation_Type,
+ case when pd.amount is null then 0 else pd.amount end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ join m_loan_charge_paid_by pd on pd.loan_transaction_id = t.id
+ join m_loan_charge c on c.id = pd.loan_charge_id
+ join m_charge mc on mc.id = c.charge_id
+ and mc.is_penalty = true
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum = 26
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ true AS reversal_indicator,
+ 'Interest' AS Allocation_Type,
+ case when t.interest_portion_derived is null then 0 else
t.interest_portion_derived end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum = 26
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ true AS reversal_indicator,
+ 'Principal' AS Allocation_Type,
+ case when t.principal_portion_derived is null then 0 else
t.principal_portion_derived end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum = 26
+ and (t.office_id = ${officeId})
+ UNION ALL
+ SELECT
+ '${endDate}' AS transactiondate,
+ t.id,
+ l.name AS product,
+ t.transaction_type_enum AS transaction_type,
+ d.payment_type_id,
+ '' as chargetype,
+ true AS reversal_indicator,
+ 'Unallocated Credit (UNC)' AS Allocation_Type,
+ case when t.overpayment_portion_derived is null then 0 else
t.overpayment_portion_derived end AS amount
+ FROM
+ m_loan_transaction t
+ JOIN m_loan m ON m.id = t.loan_id
+ JOIN m_product_loan l ON l.id = m.product_id
+ left join m_payment_detail d on d.id = t.payment_detail_id
+ WHERE
+ t.reversed_on_date = '${endDate}'
+ and t.transaction_type_enum = 26
+ and (t.office_id = ${officeId})
+ ) a
+ GROUP BY
+ a.transactiondate,
+ a.product,
+ a.transaction_type,
+ a.payment_type_id,
+ a.chargetype,
+ a.reversal_indicator,
+ a.Allocation_Type
+ order by
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7 "/>
+ <where>report_name='Transaction Summary Report'</where>
+ </update>
+ </changeSet>
+</databaseChangeLog>