Import loan account data using XLS template
Import loan account data
Release | Release J |
Current Owners: |
|
Status (Draft, In Review, Stable / Approved): | In Review |
Contents:
- 1 Import loan account data
- 2 Introduction
- 2.1 Goals
- 2.2 Non-Goals
- 2.3 Definitions and Terminology
- 3 User Stories
- 4 Use Cases
- 5 Functional Requirements
- 6 XLS Template Descritpion
- 6.1 Error messages
- 7 Standard Considerations
- 7.1 Security
- 7.2 Impacts to System
- 7.3 Globalization/Localization
- 7.4 Logging
- 7.5 Performance
- 7.6 Setup and Installation
- 8 Open Issues
- 9 Reviews and Approvals
Introduction
This feature allows to create new loan accounts through importing .xls fle.
Goals
Basic goals:
Allow to import loan accounts data in .xls file based on provided template.
Allow bulk creation of new account with imported .xls file.
Non-Goals
Bulk edit of existing loan accounts
Definitions and Terminology
Term | Definitions |
|---|---|
User | User of Mifos system with appropriate rights |
Customer | A group or client, recipent of loan account. |
XLS Template | A spreadsheet template use for importing accounts. |
Loan account | A account of type loan, opened for client or group. Account is instance of Loan product. |
Loan product | A basic definition of available loan. |
XLS document | An instance of XLS template. |
User Stories
Priority | User Stories | Section in FR |
|---|---|---|
1 | As an User, I want to be able to import XLS document with loan accounts, so that accounts |
|
Use Cases
User import loan accounts data
Actors
User - a Mifos system user
Preconditions
User is logged.
User has permissions to import new loans data.
User has permissions to create new loan accounts.
User created XLS document using provided XLS template.
Basic Flow
User go to Administration page ("Admin").
User clicks on link "Import Loans"
System open new page "Import Loans".
User selects document with loans data (XLS Document) and uploads it to Mifos server.
System parse uploaded document and shows to user how many rows were parsed successfully and which rows were not. Each row with errors has explanation.
User clicks "Save" button to save imported rows if any of them were parsed successfully.
No rows were parsed successfully: see alternative flow: "No rows parsed successfully".
System saves data and present a simple summary to user.
Post-conditions
System displays page with short summary.
All imported and parsed successfully rows are persisted in database.
Alternative Flows
No rows parsed successfully
System displays 0 successfully parsed rows.
"Save" button is inactive.
User corrects his XLS Document and clicks on button "Edit".
System open page "Import Loans"
User redoes import procedure from step 3 from basic flow.
Validations
Functional Requirements
FR# | Description | Comments/Mockups |
|---|---|---|
1 | Loans import data is an Excel (97) file. |
|
2 | Excel file is checked against set of basic rules:
|
|
3 | Excel file is checked against Mifos' restrictions |
|
4 | For account without number a one should be generated by system. |
|
5 | Each row error message should contain row and cell number and error explanation. |
|
XLS Template Descritpion
First row of template contains name/description of a file. Second row contains column headers. Both rows are ignored by parser.
Actual data begins in the third row. Each row contains information for one loan account. Order of columns is important and cannot be changed.
Column name | Column description | Is Mandatory | Comment |
|---|---|---|---|
Account Number | Contains a text representation of loan account global identification number. | No. | For empty column parser with create new account and generate number. If column is not empty parser will check for duplicates and create account with provided number. |
Customer Global ID | Contains a text representation of global identification for customer for which we create new account. Customer must exist in the system. | Yes. | Customer must be in state "Active". |
Product Name | Contains a name of loan product which will be used as a base for new loan account. Product must exist in the system. | Yes. | This is a full name of a product. Parser won't accept short name or product number. |
Status Name | Contains a text representation of account status. | Yes. | Allowed values are:
|
Cancel Flag Reason | Contains a text representation of reason for cancelling account. | Only if Status Name is set to "Cancelled" | Allowed values are:
|
Loan Amount | Contains a decimal representation of a loan amount. | Yes. | Loan amount must conform to loan product requirements and Mifos restrictions on decimal values. |
Interest Rate | Contains a decimal representation of interest rate. | Yes. | Interest rate must conform to loan product requirements and Mifos restrictions on decimal values. |
No. Of Installments | Contains a integer representation of number of installments. | Yes. | Number of installments must conform to loan product definition. |
Disbursal Date | Contains a date representation of disbursal date for account. | Yes. | Default date format is: D.MM.YYYY where D is day, MM is month (always two digits) and YYYY is year (always four digits). |
Grace Period | Contains an integer representation of grace period. | Depends on loan product. | This column is mandatory if loan products allows for grace period. Otherwise this column is ignored. |
Source Of Fund | Contains a text representation of source of found for loan account. | No. | Must conform to values defined in Mifos. |
Purpose | Contains a text representation of loan account purpose. | No. | Must conform to values defined in Mifos. |
Collateral Type | Contains a text representation of collateral type. | No. | Must conform to values defined in Mifos. |
Collateral Notes | Contains a text representation of collateral notes. | No. | Must conform to values defined in Mifos. |
External ID | Contains a text representation of external id. | No. | Must conform to values defined in Mifos. |
Error messages
Here is a list of errors messages. Each message that applies to either specific column or row is preceded by row number and column number.
Error | Applies to | Description |
|---|---|---|
Missing account number | Column: Account Number | Account number was expected, but application didn't found any in data file. |
Customer with global id # not found | Column: Customer Global ID | Provided customer global ID was not found in Mifos database. '#' is replaced with provided customer global ID. |
Missing product name | Column: Product Name | Product name was expected, but application didn't found any in data file. |
Active and applicable product with name # not found | Column: Product Name | System didn't find loan product definition with provided name that is active and applicable to provided customer. |
Cannot add new loan to inactive customer | Column: Customer Global ID | Provided customer is inactive, so no new loans can be added. |
Missing account status name | Column: Status Name | Account status name was expected, but application didn't found any in data file. |
Loan status is incorrect; | Column: Status Name | Provided status name is not applicable to loan account. |
Missing reason for cancellation | Column: Cancel Flag Reason | Account status required status explanation flag, application didn't found any in data file. |
Wrong reason for cancelled account | Column: Cancel Flag Reason | Provided cancellation status is not applicable to this account. |
Product's frequency of installments is different than customer's meeting schedule. | Column: Product Name | Provided product's frequency of installments is different than provided customer's meeting schedule so account cannot be created. |
Missing loan amount | Column: Loan Amount | Loan amount was expected, but application didn't found any in data file. |
Loan amount is out of allowed range | Column: Loan Amount | Loan amount is out of range specified by loan product. |
The amount is invalid because the number of digits before the decimal separator exceeds the allowed number of #. | Column: Loan Amount | Loan amount violates number of digits before decimal separator in defined in system configuration. '#' is replaced by allowed number of digits. |
The amount is invalid because the number of digits after the decimal separator exceeds the allowed number of #. | Column: Loan Amount | Loan amount violates number of digits after decimal separator in defined in system configuration. '#' is replaced by allowed number of digits. |
Missing interest rate | Column: Interest Rate | Interest rate was expected, but application didn't found any in data file. |
Interest rate is out of allowed range | Column: Interest Rate | Interest rate is out of range specified by loan product. |
The interest rate is invalid as the number of digits after the decimal separator exceeds the allowed number of #. | Column: Interest Rate | Interest rate violates number of digits after decimal separator in defined in system configuration. '#' is replaced by allowed number of digits. |
The interest rate is invalid as the number of digits before the decimal separator exceeds the allowed number of #. | Column: Interest Rate | Interest rate violates number of digits before decimal separator in defined in system configuration. '#' is replaced by allowed number of digits. |
Missing number of installments | Column: No. Of Installments | Number of installments was expected, but application didn't found any in data file. |
Number of installments is out of allowed range | Column: No. Of Installments | Number of installments is out of range specified by loan product. |
Missing disbursal date | Column: Disbursal Date | Disbursal date was expected, but application didn't found any in data file. |
Invalid date: # | Column: Disbursal Date | Provided date cannot be parsed by application or was invalid by Mifos restriction. In latter case error details are shown. |
The disbursement date is invalid. Disbursement date must be on or after todays date. | Column: Disbursal Date | One of error details for Disbursal Date error. |
The disbursement date is invalid. It cannot be before the customers activation date # | Column: Disbursal Date | One of error details for Disbursal Date error. '#' is replaced by customer activation date. |
The disbursement date is invalid. It cannot be before the product start date #. | Column: Disbursal Date | One of error details for Disbursal Date error. '#' is replaced by product start date. |
The disbursement date is invalid. It must fall on a valid customer meeting schedule. | Column: Disbursal Date | One of error details for Disbursal Date error. |
Missing grace period | Column: Grace Period | Grace period was expected, but application didn't found any in data file. |
Grace period for repayments must be less than number of loan installments | Column: Grace Period | Provided grace period value is greater then provided number of loan installments. |
The Grace period cannot be greater than in loan product definition | Column: Grace Period | Provided grace period value is greater then value defined in loan product definition. |
Unknown source of fund: # | Column: Source Of Fund | Provided source of fund wasn't found in Mifos database. '# ' is replaced with provided source of fund. |
Not enough input rows | File | Provided file doesn't have expected minimal number of rows |
Unknown loan purpose: # | Column: Purpose | Provided loan purpose wasn't found in Mifos database. '# ' is replaced with provided loan purpose. |
Unknown collateral type: # | Column: Collateral Type | Provided collateral type wasn't found in Mifos database. |
Standard Considerations
Security
Security (Permissions, Roles, and Data Scope) | Yes/No | Comments |
|---|---|---|
Does the user need to be in a particular user hierarchy to use this feature? | No |
|
Does the office hierarchy affect use of this feature? | No |
|
Are you using any existing permissions to control this feature? | Yes | Permission to add new loan accounts |
Are you adding any new permissions or changing existing permission to control this feature? | Yes | Permission to import new loan accounts |
Are you using any existing activities to control this feature? | No |
|
Are you adding any new activities or changing existing activities to control this feature? | No |
|
Are there any special considerations for upgrade scenarios? What will be the default value for new permissions? | No. | Default values will be set to true. |
What will be the default values for default roles in a new installation? | -- | Default is true for admin role. |
Impacts to System
Impacts to System | Yes/No | Comments |
|---|