Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Currently Fineract supports 6 loan transaction processing strategies:
- standard
- heavens family
- early payment
- creocore
- Indian RBI
- principal/interest/penalty/fees order (default)
The strategy is loaded/instantiated via a factory class "LoanRepaymentScheduleTransactionProcessor" and it's only method "determineProcessor" by passing a "LoanTransactionProcessingStrategy" object. "LoanTransactionProcessingStrategy" is effectively treated like an enum (only its "code" attribute is used). The other attributes "LoanTransactionProcessingStrategy" seem to be only for display purposes in a UI.
Proposed improvements:
- remove hardcoded instantiations of processors
- remove "LoanTransactionProcessingStrategy" and avoid storing this information in the database (table "ref_loan_transaction_processing_strategy") in the first place. This would also remove some unnecessary constraints/joins to this table.
- use dependency injection to make loan transaction processing customizable
- provide possibility to list all available processors for display in a UI
Attachments
Issue Links
- is a child of
-
FINERACT-1874 Release Apache Fineract 1.9.0
- In Progress
- links to