feat(chequebook): per-leaf issuance charge with balance validation and fund hold
Requesting a cheque book now computes a per-leaf charge (reusing the existing "Cheque Book Charge" facility mapping) and blocks the request at submit time if the account can't absorb it without breaching its minimum required balance. The charge amount is reserved via Fineract's native hold-amount mechanism when the request is submitted, released and actually deducted (with GL posting) on checker approval, or released back to the customer on rejection — so funds are never left dangling on hold regardless of outcome. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
3bb7fc8050
commit
fde670e644
@@ -409,4 +409,5 @@
|
||||
<include file="parts/0386_enable_global_maker_checker.xml" relativeToChangelogFile="true"/>
|
||||
<include file="parts/0387_chequeleaf_serial_unique_per_lot.xml" relativeToChangelogFile="true"/>
|
||||
<include file="parts/0388_chequeleaf_returned_status.xml" relativeToChangelogFile="true"/>
|
||||
<include file="parts/0389_chequebook_pending_request_hold.xml" relativeToChangelogFile="true"/>
|
||||
</databaseChangeLog>
|
||||
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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.1.xsd">
|
||||
|
||||
<!--
|
||||
Tracks the hold-amount transaction (m_savings_account_transaction / m_current_account_transaction id)
|
||||
placed on the account when a REQUEST_BOOK pending request is submitted, so the reserved cheque-book
|
||||
issuance charge can be released cleanly at approval (then charged) or at rejection (returned to the
|
||||
customer) without ever leaving funds stuck on hold.
|
||||
-->
|
||||
|
||||
<changeSet id="0389-chequebook-pending-request-hold-column" author="CBS">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<not><columnExists tableName="m_chequebook_pending_request" columnName="hold_transaction_id"/></not>
|
||||
</preConditions>
|
||||
<addColumn tableName="m_chequebook_pending_request">
|
||||
<column name="hold_transaction_id" type="BIGINT"/>
|
||||
</addColumn>
|
||||
</changeSet>
|
||||
|
||||
</databaseChangeLog>
|
||||
Reference in New Issue
Block a user