The current logic exists to prevent customers from receiving the service for free for a period of time. The cutoff for voiding the invoice is when it is past due since that is the point we can reasonably assume the customer is entirely liable to pay the invoice for services rendered. If a customer has a service, but does not pay the invoice for it, it will become canceled after a period of time. During that time, they have received the service for free, but you are still due the amount of the invoice for having rendered the service to the customer.
If, instead, you void the invoice at that point, you accept that you are letting the customer have the service for free for that period. This behavior can be taken advantage of by customers to repeatedly receive free services for a length of time. For example, they can purchase a service, not pay for the renewal, and get the service for free until it's canceled and the invoice is voided. Then they can re-purchase it and repeat the process to get some time for free without worrying about paying an open invoice.
If you would like to offer free service time to customers in such cases, that sounds like it would be a business decision on your part, and we could add a new option to allow past due invoices to be voided upon cancellation, e.g.
Open Invoices that are X Days Past Due Will be Voided
Options:
- Any - (always void a past due invoice on cancellation)
0 Days (default, current behavior)
1 Day
2 Days
3 Days
...
60 Days