We should have a way to make auto-renewals and manual renewals follow different RenewalPeriodBase behavior. I'm working with a library that uses a mix of manual and automatic renewals. For items that auto-renew, the renewal happens two days before the item is due, so they want RenewalPeriodBase set to add time on to the existing due date so the patron gets their full renewal period. But for items renewed manually, they want RenewalPeriodBase set to calculate from the renewal date, though, so patrons can't renew early and lock in extra time with the item.
Created attachment 187537 [details] [review] Bug 30331: Rename RenewalPeriodBase as ManualRenewalPeriodBase and add AutomaticRenewalPeriodBase sys pref
Created attachment 187543 [details] [review] Bug 30331: Implement manual and automatic renewal base period To test: 1. APPLY PATCH, updatedatabase, restart_all 2. Go to your circulation rules and do the following: -Automatic renewal: Yes -No renewal before: 5 -No automatic renewal before: 5 -Renewal period: 5 3. Set ManualRenewalPeriodBase to "the old due date of the checkout". 4. Set AutomaticRenewalPeriodBase to "current date". 5. Check out an item and set the due date to 2 days from today 6. Attempt to manually renewal the item. 7. Notice the new date is calculated based on the old checkout date. 8. Check out an item another item and set the due date to 2 days from today. 9. Run `perl /kohadevbox/koha/misc/cronjobs/automatic_renewals.pl -c -v` 10. Notice the new date is calculated based on the current date. 11. Set ManualRenewalPeriodBase to "current date". 12. Set AutomaticRenewalPeriodBase to "the old due date of the checkout". 13. Check out an item and set the due date to 2 days from today 14. Attempt to manually renewal the item. 15. Notice the new date is calculated based on the current date. 16. Check out an item another item and set the due date to 2 days from today. 17. Run `perl /kohadevbox/koha/misc/cronjobs/automatic_renewals.pl -c -v` 18. Notice the new date is calculated based on the old checkout date.
Created attachment 187552 [details] [review] Bug 30331: Unit tests
Created attachment 187553 [details] [review] Bug 30331: Update system preference descriptions
Created attachment 187757 [details] [review] Bug 30331: Rename RenewalPeriodBase as ManualRenewalPeriodBase and add AutomaticRenewalPeriodBase sys pref
Created attachment 187758 [details] [review] Bug 30331: Implement manual and automatic renewal base period To test: 1. APPLY PATCH, updatedatabase, restart_all 2. Go to your circulation rules and do the following: -Automatic renewal: Yes -No renewal before: 5 -No automatic renewal before: 5 -Renewal period: 5 3. Set ManualRenewalPeriodBase to "the old due date of the checkout". 4. Set AutomaticRenewalPeriodBase to "current date". 5. Check out an item and set the due date to 2 days from today 6. Attempt to manually renewal the item. 7. Notice the new date is calculated based on the old checkout date. 8. Check out an item another item and set the due date to 2 days from today. 9. Run `perl /kohadevbox/koha/misc/cronjobs/automatic_renewals.pl -c -v` 10. Notice the new date is calculated based on the current date. 11. Set ManualRenewalPeriodBase to "current date". 12. Set AutomaticRenewalPeriodBase to "the old due date of the checkout". 13. Check out an item and set the due date to 2 days from today 14. Attempt to manually renewal the item. 15. Notice the new date is calculated based on the current date. 16. Check out an item another item and set the due date to 2 days from today. 17. Run `perl /kohadevbox/koha/misc/cronjobs/automatic_renewals.pl -c -v` 18. Notice the new date is calculated based on the old checkout date.
Created attachment 187759 [details] [review] Bug 30331: Unit tests
Created attachment 187760 [details] [review] Bug 30331: Update system preference descriptions
Created attachment 187761 [details] [review] Bug 30331: Rename RenewalPeriodBase as ManualRenewalPeriodBase and add AutomaticRenewalPeriodBase sys pref Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>
Created attachment 187762 [details] [review] Bug 30331: Implement manual and automatic renewal base period To test: 1. APPLY PATCH, updatedatabase, restart_all 2. Go to your circulation rules and do the following: -Automatic renewal: Yes -No renewal before: 5 -No automatic renewal before: 5 -Renewal period: 5 3. Set ManualRenewalPeriodBase to "the old due date of the checkout". 4. Set AutomaticRenewalPeriodBase to "current date". 5. Check out an item and set the due date to 2 days from today 6. Attempt to manually renewal the item. 7. Notice the new date is calculated based on the old checkout date. 8. Check out an item another item and set the due date to 2 days from today. 9. Run `perl /kohadevbox/koha/misc/cronjobs/automatic_renewals.pl -c -v` 10. Notice the new date is calculated based on the current date. 11. Set ManualRenewalPeriodBase to "current date". 12. Set AutomaticRenewalPeriodBase to "the old due date of the checkout". 13. Check out an item and set the due date to 2 days from today 14. Attempt to manually renewal the item. 15. Notice the new date is calculated based on the current date. 16. Check out an item another item and set the due date to 2 days from today. 17. Run `perl /kohadevbox/koha/misc/cronjobs/automatic_renewals.pl -c -v` 18. Notice the new date is calculated based on the old checkout date. Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>
Created attachment 187763 [details] [review] Bug 30331: Unit tests Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>
Created attachment 187764 [details] [review] Bug 30331: Update system preference descriptions Signed-off-by: Trevor Diamond <trevor.diamond@mainlib.org>