There is a requirement to put all open orders in Order Management on Hold by putting a Credit Hold on customer under the following two conditions:
1. Customer exceeds the Credit limit set
2. Cutomer has not paid an invoice even after 'x' days of the invoice due date on invoice. However, this customer may not have exceeded the credit limit.
The solution to the first scenario is to enable the Credit Check for the customer and put an amount in the Credit Limit field for the customer. Oracle Order Management would use this information to place an order on hold.
However, for the second scenario there is no standard solution. We have to create custom program to put the customer on a 'Credit Hold'.
Step1: Enable a DFF (we can name it as say 'Over Due Days') for the customer which would hold the maximum number of days the payment is overdue that is accecptable to the business.
Step2: Write a small program that would check daily for all customers where the system date is greater than the due date by the number of days specified in the DFF. A report would also be an output of the program which is something very similar to the standard report "Past Due Invoice Report" with a couple of additional fields to capture the days beyond the maximum number of days after due date as per DFF. This program would put all customer on a Credit Hold where the invoice Due date is greater than 'Due Date + No of days in DFF'.
Ensure that the program is scheduled to run just after midnight to so that the program does not miss out on any new invoices created.