Details
-
Type: Sub-task
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 5.2.0-b1
-
Component/s: Client Interface, Staff Interface
-
Labels:None
Description
Add a new item to the drop down for services on the client profile page called "Invoice Renewal".
When selected, an option called "Number of Cycles" will appear and default to 1. This will generate 1 invoice per-service, regardless of the # of cycles set.
When submitted we should:
- Loop through each selected service
- Calculate the new renew date (perhaps using the Services::getNextRenewDate() method a number of times equal the the cycle # selected, )
- Create an invoice based on the new renewal date (see Core/Automation/Tasks/Task/CreateInvoices.php and Invoices::createFromServices())
- We may want to change the renew date immediately, or we may want to respect the "Queue Service Changes Until Paid" setting and do it as a ServiceChange
The renewal by the module will be handled by Core/Automation/Tasks/Task/ProcessRenewingServices.php task just like automated renewals. We should check our module to make sure they do not assume single term renewal.
We should also be aware that domains can only be renewed for up to ten years. So if the user has a domain valid for 5 years and then tried to push out the renew date 6 more years, they should be rejected.