Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

#TitleUser StoryImportanceNotes
1Associate loan provisioning to a loan productAs a user I want to enable loan loss provision and should be able to add loan provision categories while creating a loan productMust Have 
2Update provisioning categories for a existing loan productAs a user I should be able to update loan provision categories for a given loan productMust Have 
3Manual provisioning triggerAs a user I should be able to generate provision data manually on a selected dateMust Have 
4Different reports for provisioning dataAs a user I want to see the loan loss data by branch, provision categories wise for all loan productsMust Have 
5Batch job configurationAs a user I should be able to have loan loss provision generation for a given intervalsMust Have 
6Provision historyAs a user I should be able to see the history of the provision dataMust Have 

Business Rules

Any loan can be categorized into 4 types and the definition of these categories changes country to country. For example

...

AttributeDescriptionNotes
   
   
   

Security and Permissions

No new permissions need to be defined

Mifos Functionality Enhancements

...

NameDatatypeLengthRemarks
idBIGINT20Primary Key & Auto Increment
category_nameVARCHAR100Not Null
DescriptionVARCHAR200 

By default Mifos X Mifos  system will create and insert the following categories into this table based on customer requirements. So the data will look like below.

idcategory_nameDescription
1STANDARDPunctual Payment without any dues
2SUB-STANDARDPrincipal and/or Interest overdue by x days
3DOUBTFUL

Principal and/or Interest overdue by y days with 1 year original term (or)

Principal and/or Interest overdue by z days with more than 1 year term

 

4LOSSPrincipal and/or Interest overdue by t1 days with 1 year original term (or)
Principal and/or Interest overdue by t2 days with more than 1 year term

 Note: We can provide a GUI in client to add these categories into this table which is not covered in this specification.

Now how to associate loan provision to  a product? In create loan product screen, we have the option to enable loan loss provision as shown in mock up screen below

...

  • While creating any loan product template, provision categories should be added to the response object. For this
    • org.mifosplatform.portfolio.loanproduct.data.LoanProductData should have one more instance variable to hold provision categories
    • New interface org.mifosplatform.organisation.provisioning.service.ProvisionCategoriesReadPlatformService should have a method to retrieve all provision categories.
      • The method name is List<EnumOptionData> retrieveProvisionCategories() ;
    • Provision Categories should retrieved and set to LoanProductData in org.mifosplatform.LoanProductsApiResource.handleTemplate(final LoanProductData productData)
    • Client application should read response param "provisioncategoies" if available it should display provision categories as shown in create product mock up screen
  • While creating a loan product, the provision categories along with min age, max age, percentage to provision should be read and saved into DB. For this
    • New entity class org.mifosplatform.organisation.provisioning.domain.LoanProductProvision for 'm_loanproduct_provision_category' should be added
    • org.mifosplatform.portfolio.loanproduct.domain.LoanProduct should have set of LoanProductProvision
    • Client application should send loan product provision categories as part of the request params while creating a loan product. The parameter name is 'loanproductprovisons'
    • Provision categories should be read and added in org.mifosplatform.portfolio.loanproduct.domain.LoanProduct.assembleFromJson(...)
  • While retrieving a loan product (s), we need to retrieve the provision categories and associate with the Loan Product object (s). For this
    • org.mifosplatform.portfolio.loanproduct.service.LoanProductReadPlatformServiceImpl.retrieveLoanProduct(Long loanProductId) should be modified to associate provision categories
    • org.mifosplatform.portfolio.loanproduct.service.LoanProductReadPlatformServiceImpl.retrieveAllLoanProducts() should be modified to associate provision categories
    • org.mifosplatform.organisation.provisioning.service.ProvisionCategoriesReadPlatformService should expose a method to retrieve the provision categories based on loan product id
  • While updating a loan product (s), we need to update the provision categories associated to that loan product (s). For this
    • org.mifosplatform.portfolio.loanproduct.service.LoanProductWritePlatformServiceJpaRepositoryImpl.updateLoanProduct(...) should be modified to validate and update loan product provision categories

...

 

New Screens

  • Provisioning New screen "Provisioning History Screen" should be added to show list of provisioning history data
  • New screen "Provisioning Screen" should be added to show different provisioning data for a selected date

Changes to Existing Screens

  • Loan Product ScreenCreate loan product screen should be enhanced to capture loan provision categories along with minimum age, maximum age, provision percentage, liable account, expense account

Changes/Enhancements to Batch Jobs

A new batch job should be defined to generate provisioning data. The suggested interval is 90 days once.days once. This batch job should perform following tasks

  • Calculate provisioning amount for all products branch wise and provisioning category wise
  • Create journal entries to define the loss amount and amount to be provisioned

Changes/Enhancements to Accounting Entries

To differentiate with provision entries, we need to add another portfolio product type

Code Block
PROVISIONING(2, "productType.provision")

 

User interaction and design

...

QuestionOutcome

Out of Scope

  • We can provide a GUI in client to add these categories into this table which is not covered in this specification.