Yes.
According to “add_seconds START, SECONDS” section at Business::Hours:
Returns -1 if it can’t find any business hours within thirty days.
So, for a 24/7 service, it fails if the date is set 31 days later or more. For a 5/7 service, it fails if you set it 22 days or later (working days) because it will try to set the date to more than 30 natural days later.
As said in @knation’s suggestion you must patch lib/RT/SLA.pm
to use add_seconds
several times. Instead of 4 (as in @knation’s patch):
- If date is set before 30 days you don’t need to do anything.
- If date is set between 30 days and 60, you need to use
add_seconds
two times, I presume it’s enough for you. - If date is set between 60 days and 90, you need to use
add_seconds
three times. - …
For a generic patch, it would be a better approach to calculate the number of loops needed in some way.