h4. The proposed technical design for mandatory savings. The scaled down version of recurring deposit (RD) is used with following enhancements to implement mandatory savings.
* The withdrawal from mandatory savings account is allowed. * All mandatory savings should deposit for a fixed term. * Provide a rollover facility to continue with new deposit term period for same the account after account maturity. * Generate deposit schedule (similar to loan repayment schedule) for complete period. * Allow to attach a Calendar to define the recurring deposit frequency. The calendar can be inherited from center/group to which client belongs to or copy from product with option to modify the frequency.
Following are the data base changes proposed for implementing mandatory savings on top of RD.
# Add following fields to m_savings_product m_deposit_product_recurring_detail #* Capture savings type Volunteer/ Mandatory (Volunteer = 1, Mandatory=2): is_mandatory TINYINT(1) NOT NULL DEFAULT ' 0 1 ' #* Mandatory recommended Deposit Amount: mandatory_recommended_deposit_amount DECIMAL(19,6) NULL DEFAULT NULL #* Allow RD accounts to withdraw the amount. allow_withdrawal TINYINT(1) NOT NULL DEFAULT ' 0' #* Adjust advance payments towards future installments. adjust_advance_towards_future_payments TINYINT( 1 ) NOT NULL DEFAULT ' 1'
# Add following fields to m_savings_account m_deposit_account_recurring_detail (inherit from savings product if not provided) #* Capture savings type Volunteer/ Mandatory (Volunteer = 1, Mandatory=2): is_mandatory TINYINT(1) NOT NULL DEFAULT '0' #* Mandatory recommended Deposit Amount: mandatory_recommended_deposit_amount DECIMAL(19,6) NULL DEFAULT NULL # * Allow RD accounts to withdraw the amount. allow_withdrawal TINYINT(1) NOT NULL DEFAULT '0' #* Adjust advance payments towards future installments. adjust_advance_towards_future_payments TINYINT(1) NOT NULL DEFAULT '1'
# Create a new table m_mandatory_savings_overdue _*total_overdue_amount*_: ??The total overdue amount to be payable towards mandatory savings account.?? _*no_of_overdue_installments*_: ??The total number of installments which are not paid towards mandatory savings account.?? {noformat} CREATE TABLE `m_mandatory_savings_overdue` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `savings_account_id` BIGINT(20) NOT NULL, `total_overdue_amount` DECIMAL(19,6) NULL DEFAULT NULL, `no_of_overdue_installments` INT(11) NULL DEFAULT NULL, PRIMARY KEY (`id`), INDEX `FKMSO00000000000001` (`savings_account_id`), CONSTRAINT `FKMSO00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) {noformat}
# Create a new table m_mandatory_savings_schedule _*deposit_amount*_: ??The recommended mandatory deposit amount.?? _*duedate*_: ??The date on which the recommended mandatory deposit amount to be deposited?? _*installment*_: ??The deposit installment?? _*deposit_amount_completed_derived*_: ??The deposit amount derived?? _*total_paid_in_advance_derived*_: ??The deposit amount paid in advance derived?? _*total_paid_late_derived*_: ??The deposit amount paid late derived?? {noformat} CREATE TABLE `m_mandatory_savings_schedule` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `savings_account_id` BIGINT(20) NOT NULL, `fromdate` DATE NULL DEFAULT NULL, `duedate` DATE NOT NULL, `installment` SMALLINT(5) NOT NULL, `deposit_amount` DECIMAL(19,6) NULL DEFAULT NULL, `deposit_amount_completed_derived` DECIMAL(19,6) NULL DEFAULT NULL, `total_paid_in_advance_derived` DECIMAL(19,6) NULL DEFAULT NULL, `total_paid_late_derived` DECIMAL(19,6) NULL DEFAULT NULL, `completed_derived` BIT(1) NOT NULL, `obligations_met_on_date` DATE NULL DEFAULT NULL, `createdby_id` BIGINT(20) NULL DEFAULT NULL, `created_date` DATETIME NULL DEFAULT NULL, `lastmodified_date` DATETIME NULL DEFAULT NULL, `lastmodifiedby_id` BIGINT(20) NULL DEFAULT NULL, PRIMARY KEY (`id`), INDEX `FKMSS0000000001` (` savings_id savings_account_id `), CONSTRAINT `FKMSS0000000001` FOREIGN KEY (` savings_id savings_account_id `) REFERENCES `m_savings_account` (`id`) ) COLLATE='utf8_general_ci'; {noformat}
-Right now the mandatory savings are supported only for clients who are part of group/center to follow the meeting frequency for collecting mandatory savings.-
-Link the savings account with Calendar instance of group/center to which client belongs to. A batch job should calculate the overdue amount based on inherited calendar frequency to maintain an overdue details.-
-The collection sheet should display the overdue amount/due amount for a meeting but allow to deposit any amount (less/more than actual due amount).-
|