Currency-Denominated Loan Products
Introduction
An MFI could currently have loan products in 2 currencies. They need a way to track both in their own currencies. This feature implements basic multicurrency support and also sets the basis for full multicurrency support in the future.
User Stories (Epics)
Priority | User Story | Section in FR |
|---|---|---|
1 | As an Administrator at an MFI, I want to be able to disburse loans of different currencies to my clients. |
|
Goals
Ability to configure Mifos to have a default currency and additional currency
Ability to select a currency when creating loan products.
Ability to set appropriate rounding rules per currency
Loans will inherit currency definition from the loan product it's created from.
Ability to select a currency for fees created for loans only.
Non-Goals
The following items will not be addressed in this release:
Support for 2 currencies with performance history - if Performance History involves rolling up values in 2 different currencies, then that item will not be displayed
Support multiple currencies for client, group, or centers - they will all use default currency (fees)
Support multiple currencies for savings
Support multiple currencies in Collection Sheet Entry
Displaying additional currency labels anywhere in Mifos
Support for multiple currencies in fees other than loan fees
Definitions and Terminology
Term | Definitions |
|---|---|
|
|
Mandatory fields will be preceded by *
Links are italicized
Buttons are Button
Currency Denominated Loan Products
This feature will allow minimal multiple currency support in Mifos.
Use Cases
Administrator configures Mifos for multiple currencies
Actors
Administrator
Preconditions
None
Basic Flow
Administrator edits the configuration file and sets the default currency to USD and additional currency to LBP.
Administrator updates relevant accounting settings such as rounding amount for each currency accordingly. Administrator updates settings for the additional currency that differ from the settings for the default currency.
Post-conditions
Mifos can have 2 currencies now.
Alternative Flows
Administrator does not configure Mifos for multiple currencies.
Administrator does not have additional currency set in configuration file.
Post-conditions
There are no options for currencies in Mifos. The user has no knowledge that Mifos can have 2 currencies.
Validations
None
Administrator creates a loan product in a currency other than the Default
Actors
Administrator
Preconditions
Mifos has been configured to have a default currency of USD and an additional currency of LBP.
Basic Flow
Administrator logs onto Mifos and navigates to creating loan products.
Administrator creates new Loan Product A and specifies LBP as the currency for the loan product.
Mifos saves Loan Product A.
Post-conditions
All loans created from Loan Product A use LBP.
Alternative Flows
None
Administrator creates a loan fee in the secondary currency and attaches to Loan Product A.
Actors
Administrator
Preconditions
Mifos has been configured to have a default currency of USD and an additional currency of LBP.
Loan Product A has LBP as its currency defined.
Basic Flow
Administrator logs onto Mifos and navigates to creating fees.
Administrator creates new loan fee Fee A and specifies LBP as the currency for the loan fee if the loan fee is a specific amount, not a % of calculation.
Mifos saves Fee A.
Administrator navigates to edit Loan Product A and is able to attach Fee A to the loan product.
Post-conditions
None
Alternative Flows
Administrator tries to attach a loan fee in different currency than Loan Product A.
Administrator goes to edit Loan Product A. Administrator adds Fee B of a different currency to Loan Product A. Administrator hits Preview.
Mifos displays error message - A fee of a different currency cannot be attached to this loan product.
Loan Officer creates a loan account in secondary currency
Actors
Loan Officer
Preconditions
Mifos has been configured to have a default currency of USD and an additional currency of LBP.
Basic Flow
LO logs onto Mifos and navigates to create a new loan account.
LO selects a loan product of the secondary currency. LO saves the new loan.
Post-conditions
New loan account is in secondary currency.
Alternative Flows
Loan Officer attaches a loan fee of secondary currency to a loan account
At step 2 of workflow, LO attaches new loan fee also of the same currency to the loan account. Options under Fees available only include fees of the same currency as the loan account.
Mifos saves the loan. The loan has a fee in the same currency attached.
Loan Officer applies charges to an existing loan account
LO navigates to an existing loan account and clicks on Apply Charges.
LO chooses a fee to attach. The only options available are those of the same currency.
Loan Officer disburses and repays loan in secondary currency
Actors
Loan Officer
Preconditions
Mifos has been configured to have a default currency of USD and an additional currency of LBP.
Loan accounts in secondary currency have been created.
Basic Flow
LO logs onto Mifos and navigates to an existing loan that hasn't been disbursed.
LO disburses loan.
Post-conditions
Loan disbursal is in secondary currency
Repayment schedule is all in secondary currency
Alternative Flows
LO enters in values for amounts that do not correspond to the settings in Configuration
Preconditions
Mifos has been configured to have a default currency of USD and an additional currency of LBP.
Loan accounts in secondary currency have been created.
Mifos has been configured to have digits after decimal for LBP to be 0.
Alternate Flow
At step 2 of Basic Flow, LO tries to enter a value for loan disbursal that has more digits after decimal than 0.
Mifos throws an error message that this is invalid.
Accountant imports file of transactions in secondary currency
Actors
Accountant
Preconditions
Mifos has been configured to have a default currency of USD and an additional currency of LBP.
Loan products and accounts in secondary currency have been created.
Basic Flow
Accountant logs onto Mifos and navigates to Import Bank Transactions.
Accountaint imports a file with all loan transactions for loans in LBP.
Mifos imports the file of transactions.
Post-conditions
All loan accounts in that file have been updated accordingly with the transactions in that currency.
Alternative Flows
User Stories
Priority | Size | User Stories | Mingle card # |
|---|---|---|---|
1 | Small | As a User, I configure Mifos to have multiple currencies |
|
1 | Small | As a User, I can select a currency when defining a loan product |
|
1 | Small | As a User, I can select a currency when defining a loan fee. |
|
1 | Small | As a User, I can attach a loan fee of the same currency to a loan product. |
|
1 | Small | As a User, I can attach a loan fee of the same currency to a loan account. |
|
1 | Small | As a User, I can disburse and repay loans of that currency |
|
Currency Denominated Loan Products Functional Requirements
Update configuration settings
FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
1.1 | P1 | Add new setting for setting additional currencies in custom properties file. See properties file for examples => | |
1.2 | P1 | Additional currencies should only be applicable to loan repayments and loan fees |
|
1.3 | P1 | Update View Organizational Settings in Admin section of Mifos to show the new and updated configuration settings. | |
1.4 | P1 | By default there should be no additional currencies set |
|
1.5 | P1 | Certain rounding rules can be set different than the default for additional currenices. If those settings are not set for the additional currency, the default setting is used. If it is set, it overrides the default. | Rounding Modes are P2 |
|
|
|
|
1.7 | P1 | Currencies can be added at any time during Mifos deployment, but once a currency has been set, it cannot be removed. | Document in Configuration Guide |
Add ability to define a new loan product of secondary currency
FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
2.1 | P1 | In Define New loan product pipeline, User now has a new Currency dropdown to choose the currency from default and additional currencies set in configuration file. |
|
2.2 | P1 | The options are the 2 currency codes the Administrator set in the custom properties file. |
|
2.3 | P1 | The Default currency code is first in the list of options for Currency and should be defaulted to it in the dropdown |
|
2.4 | P1 | When editing a loan product, the Currency option should be displayed but uneditable. |
|
2.5 | P1 | When defining a new loan product, if the User tries to attach a loan fee of a different currency, the following error message is displayed upon the User trying to Preview |
|
Add ability to define a loan fee of secondary currency
FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
3.1 | P1 | In Define New Fee pipeline, when User selects "Loan" under Fee Applies To:, the option to select a currency should be dynamically displayed next to Amount calculation. |
|
3.2 | P1 | A new Currency dropdown should be displayed after the Amount field in Calculation - which should be the 2 currency codes the Administrator set in the custom properties file. The Currency is only set for loan fees with specific amount, not % of calculation. A loan fee with % of calculation can be of any currency. |
|
3.3 | P1 | The Default currency code is first in the list of options for Currency and should be defaulted to it in the dropdown |
|
3.4 | P1 | This option should only be added for defining new fees and cannot be changed when editing the fee. |
|
3.5 | P2 | When viewing a loan fee, currency should be displayed if the User has set additional currencies in the custom properties file |
|
Create new Loan account with Loan Product with a different Currency
FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
4.1 | P1 | When creating a new loan account, the User should be able to select a loan product that has a secondary currency set as its currency |
|
4.2 | P1 | Should work with GLIM on or off |
|
4.3 | P1 | Should work with LSIM on or off |
|
4.4 | P1 | All loans under that Loan Product should take currency and rounding rules from the custom properties file set for that currency. |
|
Attach loan fee of secondary currency to loan account
FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
5.1 | P1 | When creating a new loan account, the list of fees available under Apply Additional Fees should only be loan fees of the same currency set as the loan product of the loan account. |
|
5.2 | P1 | The User can also apply charges for an existing loan account. The available fees listed under "Select charge type" should only be fees of the same currency |
|
Disabled Functionality
FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
6.1 | P1 | Collection Sheet Entry will not work if there are loans of multiple currencies under the center. There will be no changes to accommodate this, the feature will remain but advise to use with caution (or not use at all). (P2) When a user does use CSE and selects a center with more than 1 currency, warning text is displayed at the top. |
|
6.2 | P1 | Certain parts of Performance History will not be shown for a Center, Group, or Client that has loans of more than one currency under it. Instead of a value, the following string will be displayed in the field <Multiple Currencies> |
|
6.3 | P1 | For a client's performance history, Amount of last loan and Delinquent Portfolio will not be displayed. |
|
6.4 | P1 | For a group's performance history, the following will not be displayed |
|
6.5 | P1 | For a center's performance history, Total Loan portfolio will not be displayed |
|
Reports
FR# | Pri | Description | Comments / Mockups |
|---|