existing account saving and current add or remove nominee and digital & account features and also FE & RD nominee add or remove
This commit is contained in:
+2
@@ -51,4 +51,6 @@
|
||||
<include file="parts/2027_add_pending_edit_satellite_tables.xml" relativeToChangelogFile="true" />
|
||||
<include file="parts/2028_update_saving_product_temp_table.xml" relativeToChangelogFile="true" />
|
||||
<include file="parts/2029_remove_proposed_payload_json.xml" relativeToChangelogFile="true" />
|
||||
<include file="parts/2030_add_savings_account_pending_edit_table.xml" relativeToChangelogFile="true" />
|
||||
<include file="parts/2031_add_savings_account_edit_approval_permissions.xml" relativeToChangelogFile="true" />
|
||||
</databaseChangeLog>
|
||||
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
<?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.1.xsd">
|
||||
|
||||
<!--
|
||||
Holds a pending edit request for an ACTIVE savings account's Nominee + Digital & Account
|
||||
Features, mirroring the m_savings_product_temp maker-checker pattern: presence of a row here
|
||||
with status=PENDING (enforced via the unique pending_lock_key) is itself the lock, and nothing
|
||||
is applied to the real m_savings_account_facility_config / m_client_nominee rows until a
|
||||
checker approves (see SavingsAccountEditWritePlatformServiceImpl). One row per request; only
|
||||
one nominee change (add/update/delete) can be proposed per request, so its fields are kept as
|
||||
flat typed columns on this same table rather than a satellite table.
|
||||
-->
|
||||
<changeSet author="fineract" id="2030-1">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<not>
|
||||
<tableExists tableName="m_savings_account_pending_edit" />
|
||||
</not>
|
||||
</preConditions>
|
||||
<createTable tableName="m_savings_account_pending_edit">
|
||||
<column name="id" type="BIGINT" autoIncrement="true">
|
||||
<constraints primaryKey="true" nullable="false" />
|
||||
</column>
|
||||
<column name="savings_account_id" type="BIGINT">
|
||||
<constraints nullable="false" foreignKeyName="fk_saoe_savings_account_id" references="m_savings_account(id)" />
|
||||
</column>
|
||||
<column name="createdby_id" type="BIGINT">
|
||||
<constraints nullable="false" foreignKeyName="fk_saoe_maker_id" references="m_appuser(id)" />
|
||||
</column>
|
||||
<column name="lastmodifiedby_id" type="BIGINT">
|
||||
<constraints nullable="true" foreignKeyName="fk_saoe_checker_id" references="m_appuser(id)" />
|
||||
</column>
|
||||
<column name="created_date" type="DATETIME">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="lastmodified_date" type="DATETIME">
|
||||
<constraints nullable="true" />
|
||||
</column>
|
||||
<column name="status" type="VARCHAR(20)" defaultValue="PENDING">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="reject_reason" type="VARCHAR(500)" />
|
||||
<column name="pending_lock_key" type="VARCHAR(40)">
|
||||
<constraints nullable="true" unique="true" uniqueConstraintName="saoe_unq_pending_lock_key" />
|
||||
</column>
|
||||
<column name="command_source_id" type="BIGINT">
|
||||
<constraints nullable="true" foreignKeyName="fk_saoe_command_source_id" references="m_portfolio_command_source(id)" />
|
||||
</column>
|
||||
|
||||
<!-- Hold placed at submission time for the total charge of newly-enabled facilities; released
|
||||
(no charge) on reject, released-then-converted-to-a-posted-charge on approve. -->
|
||||
<column name="hold_transaction_id" type="BIGINT">
|
||||
<constraints nullable="true" foreignKeyName="fk_saoe_hold_txn_id" references="m_savings_account_transaction(id)" />
|
||||
</column>
|
||||
<column name="hold_amount" type="DECIMAL(19,6)" />
|
||||
|
||||
<!-- Digital & Account Features - same 16 columns/names as m_savings_account_facility_config.
|
||||
NULL = maker did not touch this toggle; facility_config_submitted tells approve()/UI
|
||||
whether this block was submitted at all. -->
|
||||
<column name="facility_config_submitted" type="BOOLEAN" defaultValueBoolean="false">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="atm_facility" type="BOOLEAN" />
|
||||
<column name="atm_withdrawal_facility" type="BOOLEAN" />
|
||||
<column name="upi_facility" type="BOOLEAN" />
|
||||
<column name="pos_transactions_facility" type="BOOLEAN" />
|
||||
<column name="cheque_book" type="BOOLEAN" />
|
||||
<column name="imps_facility" type="BOOLEAN" />
|
||||
<column name="sms_alerts" type="BOOLEAN" />
|
||||
<column name="bbps_facility" type="BOOLEAN" />
|
||||
<column name="insurance_cover" type="BOOLEAN" />
|
||||
<column name="bepg_facility" type="BOOLEAN" />
|
||||
<column name="neft_facility" type="BOOLEAN" />
|
||||
<column name="rtgs_facility" type="BOOLEAN" />
|
||||
<column name="inter_bank_total_cap_facility" type="BOOLEAN" />
|
||||
<column name="withdrawal_facility" type="BOOLEAN" />
|
||||
<column name="deposit_facility_kyc" type="BOOLEAN" />
|
||||
<column name="virtual_debit_card" type="BOOLEAN" />
|
||||
|
||||
<!-- Nominee change - one per request (add / update / delete), same fields as m_client_nominee. -->
|
||||
<column name="nominee_submitted" type="BOOLEAN" defaultValueBoolean="false">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="nominee_operation" type="VARCHAR(10)" />
|
||||
<column name="nominee_id" type="BIGINT">
|
||||
<constraints nullable="true" foreignKeyName="fk_saoe_nominee_id" references="m_client_nominee(id)" />
|
||||
</column>
|
||||
<column name="nominee_client_id" type="BIGINT">
|
||||
<constraints nullable="true" foreignKeyName="fk_saoe_nominee_client_id" references="m_client(id)" />
|
||||
</column>
|
||||
<column name="relationship_cv_id" type="BIGINT" />
|
||||
<column name="percentage_share" type="DECIMAL(5,2)" />
|
||||
<column name="nominee_is_active" type="BOOLEAN" />
|
||||
<column name="nominee_is_minor" type="BOOLEAN" />
|
||||
<column name="guardian_client_id" type="BIGINT">
|
||||
<constraints nullable="true" foreignKeyName="fk_saoe_guardian_client_id" references="m_client(id)" />
|
||||
</column>
|
||||
<column name="guardian_relationship_cv_id" type="BIGINT" />
|
||||
<column name="effective_date" type="DATE" />
|
||||
<column name="nominee_remarks" type="VARCHAR(500)" />
|
||||
</createTable>
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
<?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.1.xsd">
|
||||
|
||||
<!--
|
||||
Permissions gating the Nominee + Digital & Account Features maker-checker edit flow for
|
||||
savings accounts. SUBMITEDIT lets a maker propose the edit (this is the "Edit" action shown
|
||||
on the account view); APPROVEEDIT/REJECTEDIT let a checker resolve it. The _CHECKER permission
|
||||
follows the "<ACTION>_<ENTITY>_CHECKER" convention (see 2022_add_product_checker_permissions.xml)
|
||||
so the pending request also surfaces in the generic Checker Inbox for limited checkers.
|
||||
-->
|
||||
<changeSet author="fineract" id="2031-1">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM m_permission WHERE code = 'SUBMITEDIT_SAVINGSACCOUNT'</sqlCheck>
|
||||
</preConditions>
|
||||
<insert tableName="m_permission">
|
||||
<column name="grouping" value="transaction_savings" />
|
||||
<column name="code" value="SUBMITEDIT_SAVINGSACCOUNT" />
|
||||
<column name="entity_name" value="SAVINGSACCOUNT" />
|
||||
<column name="action_name" value="SUBMITEDIT" />
|
||||
<column name="can_maker_checker" valueBoolean="false" />
|
||||
</insert>
|
||||
</changeSet>
|
||||
|
||||
<changeSet author="fineract" id="2031-2">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM m_permission WHERE code = 'APPROVEEDIT_SAVINGSACCOUNT'</sqlCheck>
|
||||
</preConditions>
|
||||
<insert tableName="m_permission">
|
||||
<column name="grouping" value="transaction_savings" />
|
||||
<column name="code" value="APPROVEEDIT_SAVINGSACCOUNT" />
|
||||
<column name="entity_name" value="SAVINGSACCOUNT" />
|
||||
<column name="action_name" value="APPROVEEDIT" />
|
||||
<column name="can_maker_checker" valueBoolean="false" />
|
||||
</insert>
|
||||
</changeSet>
|
||||
|
||||
<changeSet author="fineract" id="2031-3">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM m_permission WHERE code = 'REJECTEDIT_SAVINGSACCOUNT'</sqlCheck>
|
||||
</preConditions>
|
||||
<insert tableName="m_permission">
|
||||
<column name="grouping" value="transaction_savings" />
|
||||
<column name="code" value="REJECTEDIT_SAVINGSACCOUNT" />
|
||||
<column name="entity_name" value="SAVINGSACCOUNT" />
|
||||
<column name="action_name" value="REJECTEDIT" />
|
||||
<column name="can_maker_checker" valueBoolean="false" />
|
||||
</insert>
|
||||
</changeSet>
|
||||
|
||||
<changeSet author="fineract" id="2031-4">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM m_permission WHERE code = 'APPROVEEDIT_SAVINGSACCOUNT_CHECKER'</sqlCheck>
|
||||
</preConditions>
|
||||
<insert tableName="m_permission">
|
||||
<column name="grouping" value="transaction_savings" />
|
||||
<column name="code" value="APPROVEEDIT_SAVINGSACCOUNT_CHECKER" />
|
||||
<column name="entity_name" value="SAVINGSACCOUNT" />
|
||||
<column name="action_name" value="APPROVEEDIT_CHECKER" />
|
||||
<column name="can_maker_checker" valueBoolean="false" />
|
||||
</insert>
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
Reference in New Issue
Block a user