Bug 14395: Add new syspref NoRenewalBeforePrecision
authorHolger Meißner <h.meissner.82@web.de>
Wed, 15 Jul 2015 08:49:41 +0000 (10:49 +0200)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 26 Feb 2016 14:28:40 +0000 (14:28 +0000)
Currently the 'NoRenwalBefore' setting is always based on the exact
DateTime of the due date. This patch introduces a new global syspref for
choosing if 'NoRenewalBefore' should instead be calculated based on date
only. This is only relevant for loans caluclated in days. Hourly loans
are not affected.

To test:

1) Apply bug 14101, then apply this patch.

2) Run installer/data/mysql/updatedatabase.pl

3) Confirm that a new syspref NoRenewalBeforePrecision is available
   in administration. It should let you choose between 'date' (default)
   and 'exact time'.

Sponsored-by: Hochschule für Gesundheit (hsg), Germany
Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com>
installer/data/mysql/atomicupdate/bug_14395-add-NoRenewalBeforePrecision-syspref.sql [new file with mode: 0644]
installer/data/mysql/kohastructure.sql
koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref

diff --git a/installer/data/mysql/atomicupdate/bug_14395-add-NoRenewalBeforePrecision-syspref.sql b/installer/data/mysql/atomicupdate/bug_14395-add-NoRenewalBeforePrecision-syspref.sql
new file mode 100644 (file)
index 0000000..e292252
--- /dev/null
@@ -0,0 +1,2 @@
+INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type)
+VALUES ('NoRenewalBeforePrecision', 'date', 'Calculate "No renewal before" based on date or exact time. Only relevant for loans calculated in days, hourly loans are not affected.', 'date|exact_time', 'Choice');
index 866e1ea..39fc0b0 100644 (file)
@@ -1204,7 +1204,7 @@ CREATE TABLE `issuingrules` ( -- circulation and fine rules
   `hardduedatecompare` tinyint NOT NULL default "0", -- type of hard due date (1 = after, 0 = on, -1 = before)
   `renewalsallowed` smallint(6) NOT NULL default "0", -- how many renewals are allowed
   `renewalperiod` int(4) default NULL, -- renewal period in the unit set in issuingrules.lengthunit
-  `norenewalbefore` int(4) default NULL, -- no renewal allowed until X days or hours before due date. In the unit set in issuingrules.lengthunit
+  `norenewalbefore` int(4) default NULL, -- no renewal allowed until X days or hours before due date.
   `auto_renew` BOOLEAN default FALSE, -- automatic renewal
   `reservesallowed` smallint(6) NOT NULL default "0", -- how many holds are allowed
   `branchcode` varchar(10) NOT NULL default '', -- the branch this rule is for (branches.branchcode)
index a5d69ab..3bfc8ab 100644 (file)
@@ -253,6 +253,13 @@ Circulation:
                   Days: circulation rules only.
                   Calendar: the calendar to skip all days the library is closed.
                   Datedue: the calendar to push the due date to the next open day
+        -
+            - Calculate "No renewal before" based on
+            - pref: NoRenewalBeforePrecision
+              choices:
+                  date: date.
+                  exact_time: exact time.
+            - Only relevant for loans calculated in days, hourly loans are not affected.
         -
             - When renewing checkouts, base the new due date on
             - pref: RenewalPeriodBase