Late Payment explained
Table of Contents
Overview
There are late payment charges when the fee is overdue (i.e. when Student Fee's Due Date has passed and there is still Outstanding Amount that has yet to be settled).
It is fair to say that different schools/universities/organizations may have different late payment calculation and processes. In this case, RIO Education does not have a definite calculation or approach on this. But RIO Education does have components available for handling late payment scenario (see technical section below).
Technical background
Following are the RIO Education components available for handling late payment related scenario.
- Within RIO Education Settings (Custom Settings):
- Late Payment Repeat Days/Months - Define the integer value, based on the "Late Payment Repeat Setting" (Days or Months setting).
- Late Payment Repeat Setting - Choice of Once, Days and Months.
- Define how often the late payment logic should run per every Student Fee record.
- When Days or Months is selected, the logic will run based on the integer define in "Late Payment Repeat Days/Months".
- Late Payment Batch Size - Default being 200. Defines the number of Student Fee records to be executed with the late payment processing per batch. Consider lowering this value if error such as CPU Timeout is observed.
- Late Payment Repeat Days/Months - Define the integer value, based on the "Late Payment Repeat Setting" (Days or Months setting).
- Apex Class:
- SFEE_LatePayment_SCHED.
- Schedule this Apex Class to enable the setup in #1 to be executed based on what has been defined.
- Schedule this Apex Class to enable the setup in #1 to be executed based on what has been defined.
- SFEE_LatePayment_SCHED.
-
Student Fee (rio_ed__Student_Fee__c) object:
- Late Processed Status (rio_ed__Late_Processed_Status__c).
- Needs Processing - This will be automatically assigned by the scheduled Apex class when the Student Fee is overdue.
- Processed - An additional value available. Note that there is no RIO Education component that control switching to this value.
- Last Processed Date (rio_ed__Last_Processed_Date__c).
- This will be populated as today's date as of when the Late Processed Status is switch to "Needs Processing" by the Apex Class scheduled.
- Late Processed Status (rio_ed__Late_Processed_Status__c).
Approach
With the RIO Education out-of-the-box components available, the school/university/organization can configure the late payment processing logic accordingly.
With Salesforce automation component such as Process Builder, Flow, Apex Trigger, etc. the school/university/organization can consider using the "Late Processed Status" as a trigger point to further handle any late payment calculation and rule handling.
Example
RIO University imposes late payment interest of 0.5% every month if there is still outstanding amount on Tuition fee.
In this case, the following were configured and developed:
- Configure "Late Payment Repeat Days/Months" as 1 and "Late Payment Repeat Setting" as Months.
- This would then indicate that the late payment process is to be executed every 1 month.
- This would then indicate that the late payment process is to be executed every 1 month.
- Schedule the SFEE_LatePayment_SCHED to run daily.
- Provision a Process Builder at Student Fee level.
- One of the trigger criteria being "Late Processed Status" = "Needs Processing".
- Create an additional fee line item against the Student Fee with 0.5% of the Student Fee's "Outstanding Amount" value.
- NOTE: In case if the late payment fee line scenario is needed to be inserted even when the Student Fee has passed the census date, it is also worth ensuring that the "Manual Unlock" is checked. More information around the "Manual Unlock" field can be found here.
- NOTE: In case if the late payment fee line scenario is needed to be inserted even when the Student Fee has passed the census date, it is also worth ensuring that the "Manual Unlock" is checked. More information around the "Manual Unlock" field can be found here.
- Also update the "Late Processed Status" = "Processed".
- One of the trigger criteria being "Late Processed Status" = "Needs Processing".
See also: