From fab15a3e499bbad67f89e1dda2a6d5c58566524f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Holger=20Mei=C3=9Fner?= <h.meissner.82@web.de>
Date: Wed, 12 Feb 2014 16:53:06 +0100
Subject: [PATCH] Bug 7413: Add issuingrules.norenewalbefore to database
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Currently multiple renewals can be done in immediate succsession.
To optionally prevent this, a new parameter "No renewal before"
is introduced.

This patch adds issuingrules.norenewalbefore to the database.
Default value is NULL.

To test:
1) Run installer/data/mysql/updatedatabase.pl
2) Create a SQL report like:
   SELECT * FROM issuingrules
3) Confirm that norenewalbefore was added after renewalperiod.

Sponsored-by: Hochschule für Gesundheit (hsg), Germany
---
 installer/data/mysql/kohastructure.sql |    1 +
 installer/data/mysql/updatedatabase.pl |    9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
index 363217b..a1031e2 100644
--- a/installer/data/mysql/kohastructure.sql
+++ b/installer/data/mysql/kohastructure.sql
@@ -1155,6 +1155,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
   `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)
   overduefinescap decimal(28,6) default NULL, -- the maximum amount of an overdue fine
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index f043d0b..8da1a94 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -7953,6 +7953,15 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
     SetVersion($DBversion);
 }
 
+$DBversion = "3.15.00.XXX";
+if(CheckVersion($DBversion)) {
+    $dbh->do(q{
+        ALTER TABLE issuingrules ADD norenewalbefore int(4) default NULL AFTER renewalperiod
+    });
+    print "Upgrade to $DBversion done (Bug 7413: Allow OPAC renewal x days before due date)\n";
+    SetVersion($DBversion);
+}
+
 =head1 FUNCTIONS
 
 =head2 TableExists($table)
-- 
1.7.10.4