Credit management as factory

Description

Reference thread: https://mattermost.idempiere.org/idempiere/pl/tamrfhkngbd1jmq7zuscb81fah

As there are different credit management requirements, it is good to add support for extendability to credit management. Currently credit management is hard coded in model class which some time make to override entire class to support custom requirements.
I am proposing below design.
1. Create interface ICreditManager with method CheckCredit. This method take DocAction as argument to differentiate whether it called from PrepareIt or CompleteIt.

2. Creating interface ICreditManagerFactory with method getCreditManager accepting PO as arguments. This how credit manager factory can use any parameters of PO to decide which ICreditManager instance should be returned. Factory class can decide to use just table name or table name and isSoTrx or document type to decide ICreditManager implementors

3. Implement credit manager for MInout, Order, Invoice and Payments which perform credit check as well as update credits related parameter.

Environment

None

Activity

Carlos Ruiz 
December 23, 2023 at 12:12 PM

Thanks - label removed

Deepak Pansheriya 
December 22, 2023 at 4:59 PM

Deepak Pansheriya 
September 29, 2023 at 10:05 AM

Deepak Pansheriya 
August 23, 2023 at 1:41 PM

yes looks like due to unit test of credit manager. Let me take look sure will add it

Carlos Ruiz 
August 23, 2023 at 1:02 PM

Thanks , it worked, just pending the documentation.

Fixed

Details

Assignee

Reporter

Components

Fix versions

Priority

Created June 9, 2023 at 5:03 AM
Updated December 23, 2023 at 12:12 PM
Resolved December 23, 2023 at 12:12 PM