Bug 11144: Fix sequence of cronjobs: automatic renewal - fines - overdue notices
authorKatrin Fischer <Katrin.Fischer.83@web.de>
Tue, 9 Jun 2015 21:13:15 +0000 (23:13 +0200)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 2 Sep 2016 13:51:32 +0000 (13:51 +0000)
The patch changes the sequence of cronjobs in the crontab example
file and in the cron.daily file of the packages.

This is why:
1) Renew automatically
   ... only when we can't renew, we want to
2) Calculate fines
   ... once the fine are calculated and charged
   we can print the amount into the
3) Overdue notices

Before the change it could happen that you'd charge for an item,
that would then be renewed. Or that you'd try to print fine
amounts into the overdue notices, when they would only be
charged moments later.

To test:
- configure your system so you have items that should
  - be charged with fines
  - renew automatically
- configure your crontabs according to the example file
  or switch the cron.daily in your package installation with
  the new one
- configure your overdue notices so that one should be generated
  <<items.fine>>
- Wait for the cronjobs or schedule them to run earlier
- Verify all is well and as it should be

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
debian/koha-common.cron.daily
misc/cronjobs/crontab.example

index cbd7eed..b33036b 100644 (file)
@@ -15,8 +15,9 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-koha-foreach --enabled --email /usr/share/koha/bin/cronjobs/overdue_notices.pl -t
+koha-foreach --enabled /usr/share/koha/bin/cronjobs/automatic_renewals.pl
 koha-foreach --enabled /usr/share/koha/bin/cronjobs/fines.pl
+koha-foreach --enabled --email /usr/share/koha/bin/cronjobs/overdue_notices.pl -t
 koha-foreach --enabled --email /usr/share/koha/bin/cronjobs/advance_notices.pl -c
 koha-foreach --enabled /usr/share/koha/bin/cronjobs/membership_expiry.pl -c
 koha-foreach --enabled /usr/share/koha/bin/cronjobs/holds/cancel_expired_holds.pl >/dev/null 2>&1
@@ -24,5 +25,4 @@ koha-foreach --enabled /usr/share/koha/bin/cronjobs/services_throttle.pl > /dev/
 koha-foreach --enabled /usr/share/koha/bin/cronjobs/cleanup_database.pl --sessions --zebraqueue 10 --list-invites
 koha-foreach --enabled --noemail /usr/share/koha/bin/cronjobs/cleanup_database.pl --mail
 koha-foreach --enabled /usr/share/koha/bin/cronjobs/holds/auto_unsuspend_holds.pl > /dev/null 2>&1
-koha-foreach --enabled /usr/share/koha/bin/cronjobs/automatic_renewals.pl
 koha-run-backups --days 2 --output /var/spool/koha
index cef4740..66d075c 100644 (file)
@@ -45,11 +45,10 @@ KOHA_CRON_PATH = /usr/share/koha/bin/cronjobs
 # SCHEDULED JOBS:
 # m h  dom mon dow   user command
 
-# OVERDUE NOTICES
-0    1 * * *  __KOHA_USER__  $KOHA_CRON_PATH/overdue_notices.pl -t
 
-# FINES
-5    1 * * *  __KOHA_USER__  $KOHA_CRON_PATH/fines.pl
+# AUTOMATIC RENEWAL + FINES + OVERDUE NOTICES
+# Sequence is important - renew what can be renewed, charge fines for the rest, print fine amount into overdue notices
+5    1 * * *  __KOHA_USER__ $KOHA_CRON_PATH/automatic_renewals.pl && $KOHA_CRON_PATH/fines.pl && $KOHA_CRON_PATH/overdue_notices.pl -t
 
 # ADVANCE NOTICES
 10   1 * * *  __KOHA_USER__  $KOHA_CRON_PATH/advance_notices.pl -c
@@ -90,8 +89,5 @@ KOHA_CRON_PATH = /usr/share/koha/bin/cronjobs
 # delete old purchase suggestions weekly. Replace XX with a number to define the age of suggestions to delete.
 @weekly        __KOHA_USER__  $KOHA_CRON_PATH/purge_suggestions.pl --days XX > /dev/null 2>&1
 
-# every day at 3AM renew all issues scheduled for automatic renewal
-0 3 * * *  __KOHA_USER__ $KOHA_CRON_PATH/automatic_renewals.pl
-
 # share_usage_with_koha_community.pl every months
 0 0 1 * *  __KOHA_USER__ $KOHA_CRON_PATH/share_usage_with_koha_community.pl