Adding some new fields to biblioitems:
[koha_fer] / updater / updatedatabase
index 361674f..26606ed 100755 (executable)
@@ -52,27 +52,12 @@ $|=1; # flushes output
 
 # Tables to add if they don't exist
 my %requiretables = (
-    categorytable       => "(categorycode char(5) NOT NULL default '',
-                             description text default '',
-                             itemtypecodes text default '',
-                             PRIMARY KEY (categorycode)
-                            )",
-    subcategorytable       => "(subcategorycode char(5) NOT NULL default '',
-                             description text default '',
-                             itemtypecodes text default '',
-                             PRIMARY KEY (subcategorycode)
-                            )",
-    mediatypetable       => "(mediatypecode char(5) NOT NULL default '',
-                             description text default '',
-                             itemtypecodes text default '',
-                             PRIMARY KEY (mediatypecode)
-                            )",
     action_logs     => "(
                     `timestamp` TIMESTAMP NOT NULL ,
                     `user` INT( 11 ) NOT NULL ,
                     `module` TEXT default '',
                     `action` TEXT default '' ,
-                    `object` INT(11) default '' ,
+                    `object` INT(11) NULL ,
                     `info` TEXT default '' ,
                     PRIMARY KEY ( `timestamp` , `user` )
                 )",
@@ -175,10 +160,6 @@ my %requiretables = (
                             datereviewed datetime,
                             PRIMARY KEY (reviewid)
                             )",
-    borrowers_to_borrowers  => "(
-                            borrower1 integer,
-                            borrower2 integer
-                            )",
     subscriptionroutinglist=>"(
                              routingid integer NOT NULL auto_increment,
                              borrowernumber integer,
@@ -246,6 +227,7 @@ my @TableToDelete = qw(
     additionalauthors
     bibliosubject
     bibliosubtitle
+    bibliothesaurus
 );
 
 my %uselessfields = (
@@ -427,7 +409,7 @@ my %tabledata = (
             value               => '1',
             forceupdate         => { 'explanation' => 1,
                                      'type' => 1},
-            explanation         => 'Enable / Disable cloud link on OPAC',
+            explanation         => 'Enable / Disable cloud link on OPAC (Require to run misc/cronjobs/build_browser_and_cloud.pl on the server)',
             type                => 'YesNo',
         },
        {
@@ -436,7 +418,7 @@ my %tabledata = (
             value               => '1',
             forceupdate         => { 'explanation' => 1,
                                      'type' => 1},
-            explanation         => 'Enable/Disable browser link on OPAC (needs to set misc/cronjob/build_browser.pl)',
+            explanation         => 'Enable/Disable browser link on OPAC (Require to run misc/cronjobs/build_browser_and_cloud.pl on the server)',
             type                => 'YesNo',
         },
        {
@@ -497,6 +479,14 @@ my %tabledata = (
             explanation         => 'Active this if you want to log the circulation return',
             type                => 'YesNo',
         },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'Version',
+            value               => '3.0',
+            forceupdate         => {'explanation' => 1, 'type' => 1},
+            explanation         => 'Koha Version',
+            type                => 'Free',
+        },
         {   
             uniquefieldrequired => 'variable',
             variable            => 'LetterLog',
@@ -513,6 +503,30 @@ my %tabledata = (
             explanation         => 'Active this if you want to log fines',
             type                => 'YesNo',
         },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'NoZebra',
+            value               => '0',
+            forceupdate         => {'explanation' => 1, 'type' => 1},
+            explanation         => 'Active this if you want NOT to use zebra (large libraries should avoid this parameters)',
+            type                => 'YesNo',
+        },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'NoZebraIndexes',
+            value               => '0',
+            forceupdate         => {'explanation' => 1, 'type' => 1},
+            explanation         => "Enter a specific hash for NoZebra indexes. Enter : 'indexname' => '100a,245a,500*','index2' => '...'",
+            type                => 'Free',
+        },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'uppercasesurnames',
+            value               => '0',
+            forceupdate         => {'explanation' => 1, 'type' => 1},
+            explanation         => "Force Surnames to be uppercase",
+            type                => 'YesNo',
+        },
     ],
     userflags => [
         {
@@ -541,10 +555,10 @@ my %tabledata = (
         {
             uniquefieldrequired => 'id',
             category            => 'SUGGEST',
-            authorised_value    => 'Not enoug budget',
+            authorised_value    => 'Not enough budget',
             lib                 => 'This book it too much expensive',
         }
-    ]
+    ],
 );
 
 my %fielddefinitions = (
@@ -571,7 +585,7 @@ my %fielddefinitions = (
             field    => 'id',
             type    => 'int(11)',
             null    => 'NOT NULL',
-            key        => '',
+            key        => 'PRI',
             default    => '',
             extra    => 'auto_increment',
         },
@@ -718,6 +732,65 @@ my %fielddefinitions = (
             default    => '',
             extra    => '',
         },
+        {
+            field   => 'dewey',
+            type    => 'varchar(30)',
+            null    => 'null',
+            default => '',
+            extra   => '',
+        },
+        {
+            field   => 'publicationyear',
+            type    => 'text',
+            null    => 'null',
+            default => '',
+            extra   => '',
+        },
+        {
+            field   => 'collectiontitle',
+            type    => 'mediumtext',
+            null    => 'null',
+            default => '',
+            extra   => '',
+        },
+        {
+            field   => 'collectionissn',
+            type    => 'mediumtext',
+            null    => 'null',
+            default => '',
+            extra   => '',
+        },
+        {
+            field   => 'collectionvolume',
+            type    => 'mediumtext',
+            null    => 'null',
+            default => '',
+            extra   => '',
+        },
+        {
+            field   => 'editionstatement',
+            type    => 'text',
+            null    => 'null',
+            default => '',
+            extra   => '',
+        },
+        {
+            field   => 'editionresponsability',
+            type    => 'text',
+            null    => 'null',
+            default => '',
+            extra   => '',
+        },
+              
+    ],
+    deletedbiblioitems => [
+        {
+            field   => 'dewey',
+            type    => 'varchar(30)',
+            null    => 'null',
+            default => '',
+            extra   => '',
+        },
     ],
     branches =>  [
         {
@@ -916,6 +989,14 @@ my %fielddefinitions = (
             extra    => '',
         },
         {
+            field    => 'homebranch',
+            type    => 'varchar(10)',
+            null    => 'NULL',
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+        {
             field    => 'holdingbranch',
             type    => 'varchar(10)',
             null    => 'NULL',
@@ -949,6 +1030,24 @@ my %fielddefinitions = (
             extra  => '',
         },
     ],
+    marc_breeding => [
+        {
+            field => 'marc',
+            type  => 'LONGBLOB',
+            null  => 'NULL',
+            key    => '',
+            extra  => '',
+        }
+    ],
+    marc_subfield_structure => [
+        {
+            field => 'defaultvalue',
+            type  => 'TEXT',
+            null  => 'NULL',
+            key    => '',
+            extra  => '',
+        }
+    ],
     opac_news => [
         {
             field  => 'expirationdate',
@@ -1064,7 +1163,26 @@ my %indexes = (
         {
             indexname => 'branchcode',
             content   => 'branchcode',
-    
+            type => 'PRI',
+        }
+    ],
+    branchrelations => [
+        {
+            indexname => 'PRIMARY',
+            content => 'categorycode',
+            type => 'PRI',
+        }
+    ],
+    branchrelations => [
+        {    indexname => 'PRIMARY',
+            content => 'branchcode,categorycode',
+            type => 'PRI',
+        },
+        {    indexname => 'branchcode',
+            content => 'branchcode',
+        },
+        {    indexname => 'categorycode',
+            content => 'categorycode',
         }
     ],
     currency => [
@@ -1101,6 +1219,12 @@ my %indexes = (
             content => 'itemnumber',
         }
     ],
+       userflags => [
+               {       indexname => 'PRIMARY',
+                       content => 'bit',
+                       type => 'PRI',
+               }
+       ]
 );
 
 my %foreign_keys = (
@@ -1112,6 +1236,20 @@ my %foreign_keys = (
 #            onDelete => 'CASCADE|SET NULL|NO ACTION| RESTRICT',
 #         }
 #    ],
+    branchrelations => [
+        {    key => 'branchcode',
+            foreigntable => 'branches',
+            foreignkey => 'branchcode',
+            onUpdate => 'CASCADE',
+            onDelete => 'CASCADE',
+        },
+        {    key => 'categorycode',
+            foreigntable => 'branchcategories',
+            foreignkey => 'categorycode',
+            onUpdate => 'CASCADE',
+            onDelete => 'CASCADE',
+        },
+    ],
     shelfcontents => [
         {    key => 'shelfnumber',
             foreigntable => 'bookshelf',
@@ -1498,14 +1636,14 @@ my %column_change = (
 $sth = $dbh->prepare("show table status");
 $sth->execute;
 while ( my $table = $sth->fetchrow_hashref ) {
-     if ($table->{Engine} ne 'InnoDB') {
-         $dbh->do("ALTER TABLE $table->{Name} TYPE = innodb");
-         print "moving $table->{Name} to InnoDB\n";
-     }
     next if $table->{Name} eq 'marc_word';
     next if $table->{Name} eq 'marc_subfield_table';
     next if $table->{Name} eq 'auth_word';
     next if $table->{Name} eq 'auth_subfield_table';
+     if ($table->{Engine} ne 'InnoDB') {
+         $dbh->do("ALTER TABLE $table->{Name} TYPE = innodb");
+         print "moving $table->{Name} to InnoDB\n";
+     }
     unless ($table->{Collation} =~ /^utf8/) {
          print "moving $table->{Name} to utf8\n";
         $dbh->do("ALTER TABLE $table->{Name} CONVERT TO CHARACTER SET utf8");
@@ -1689,22 +1827,21 @@ foreach $table ( keys %fielddefinitions ) {
                 $action="add";
             }
 # if it's a primary key, drop the previous pk, before altering the table
-            my $sth;
+            print "  alter or create $field in $table\n" unless $silent;
+            my $query;
             if ($key ne 'PRIMARY KEY') {
 #                 warn "alter table $table $action $field $type $null $key $extra default $default $after";
-                $sth =$dbh->prepare("alter table $table $action $field $type $null $key $extra default ? $after");
+                $query = "alter table $table $action $field $type $null $key $extra ".($default?"default ".$dbh->quote($default):"")." $after";
             } else {
 #             warn "alter table $table drop primary key, $action $field $type $null $key $extra default $default $after";
                  # something strange : for indexes UNIQUE, they are reported as primary key here.
                  # but if you try to run with drop primary key, it fails.
                  # thus, we run the query twice, one will fail, one will succeed.
                  # strange...
-                $sth =$dbh->prepare("alter table $table drop primary key, $action $field $type $null $key $extra default ? $after");
-                $sth =$dbh->prepare("alter table $table $action $field $type $null $key $extra default ? $after");
+                $query="alter table $table drop primary key, $action $field $type $null $key $extra ".($default?"default ".$dbh->quote($default):"")." $after";
+                $query="alter table $table $action $field $type $null $key $extra ".($default?"default ".$dbh->quote($default):"")." $after";
             }
-# ALTER TABLE `borrowers` CHANGE `branchcode` `branchcode` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL 
-            print "  alter or create $field in $table\n" unless $silent;
-            $sth->execute($default);
+            $dbh->do($query);
         }
     }
 }
@@ -1962,6 +2099,72 @@ $sth->finish;
 exit;
 
 # $Log$
+# Revision 1.172  2007/07/19 10:21:22  hdl
+# Adding some new fields to biblioitems:
+# collectiontitle
+# collectionissn
+# collectionvolume
+#
+#
+# Changing publicationyear to text.
+#
+# Revision 1.171  2007/07/02 02:30:16  rangi
+# Fix for bug 1296, making surnames uppercase a systems preference
+#
+# Revision 1.170  2007/06/26 13:25:37  tipaul
+# removing some useless tables from updatedatabase
+#
+# Revision 1.169  2007/06/26 09:23:26  tipaul
+# improving OpacBrowser systempref explanation
+#
+# Revision 1.168  2007/06/25 15:02:31  tipaul
+# missing field declaration
+#
+# Revision 1.167  2007/06/15 13:09:08  toins
+# bugfix : bibliotitems.dewey & deletedbiblioitems.dewey mustn't be double(8,6).
+#
+# Revision 1.166  2007/06/08 09:40:12  toins
+# bug fix : items.homebranch must be VARCHAR(10)
+#
+# Revision 1.165  2007/05/23 16:33:10  tipaul
+# skip move to innoDB for the 4 22 tables, that are used to store MARC records, are useless in Koha 3.0 The process is very very long, so the updatedatabase should speed up a lot (by long I mean 1 hour on my Dual core with SCSI disk, for a 50 000 biblios long table
+#
+# Revision 1.164  2007/05/04 16:24:09  tipaul
+# various bugfixes on parameters modules + adding default NoZebraIndexes systempreference if it's empty
+#
+# Revision 1.163  2007/05/02 16:44:31  tipaul
+# NoZebra SQL index management :
+# * adding 3 subs in Biblio.pm
+# - GetNoZebraIndexes, that get the index structure in a new systempreference (added with this commit)
+# - _DelBiblioNoZebra, that retrieve all index entries for a biblio and remove in a variable the biblio reference
+# - _AddBiblioNoZebra, that add index entries for a biblio.
+# Note that the 2 _Add and _Del subs work only in a hash variable, to speed up things in case of a modif (ie : delete+add). The effective SQL update is done in the ModZebra sub (that existed before, and dealed with zebra index).
+# I think the code has to be more deeply tested, but it works at least partially.
+#
+# Revision 1.162  2007/04/30 16:16:50  tipaul
+# bugfix for updatedatabase : when there is no default value (NULL fields) + removing bibliothesaurus table+adding NoZebra systempref (False by default)
+#
+# Revision 1.161  2007/04/13 16:27:55  hdl
+# Adding Version variable to systempreferences.
+#
+# Revision 1.160  2007/03/19 18:35:13  toins
+#  - adding default value in marc_subfield_structure.
+#  - now marc_subfields_structure displays subfields in tab view.
+#
+# Revision 1.159  2007/03/16 01:25:09  kados
+# Using my precrash CVS copy I did the following:
+#
+# cvs -z3 -d:ext:kados@cvs.savannah.nongnu.org:/sources/koha co -P koha
+# find koha.precrash -type d -name "CVS" -exec rm -v {} \;
+# cp -r koha.precrash/* koha/
+# cd koha/
+# cvs commit
+#
+# This should in theory put us right back where we were before the crash
+#
+# Revision 1.159  2007/03/12 17:52:30  rych
+# add pri key to userflags
+#
 # Revision 1.158  2007/03/09 15:14:57  tipaul
 # rel_3_0 moved to HEAD
 #
@@ -2044,469 +2247,3 @@ exit;
 #
 # Revision 1.157.2.42  2007/01/09 14:09:01  toins
 # 2 field added to opac_news.('expirationdate' and 'displayed').
-#
-# Revision 1.157.2.41  2006/12/22 17:11:33  tipaul
-# adding 3 systempreferences for opac features & a new systempref tab where all systempreferences are located
-#
-# Revision 1.157.2.40  2006/12/20 16:45:59  tipaul
-# ZEBRA update :
-# - adding a new table : when a biblio is added/modified/ deleted, an entry is entered in this table
-# - the zebraqueue_start.pl script read it & does the stuff.
-#
-# code coming from head (tumer). it can be run every minut instead of once every day for dev_week code.
-#
-# I just have commented the previous code (=real time update) in Biblio.pm, we will be able to reactivate it once indexdata fixes zebra update bug !
-#
-# Revision 1.157.2.39  2006/12/20 11:42:17  toins
-# adding table "tags"
-#
-# Revision 1.157.2.38  2006/12/19 12:06:53  alaurin
-# adding a new system preference : RequestOnOpac ;
-#
-# adding update database
-#
-# Revision 1.157.2.37  2006/12/19 10:49:21  toins
-# fix a minor bug in syspref "expandedSearchOption" and adding it on updatedatabase.
-#
-# Revision 1.157.2.36  2006/12/13 19:48:09  hdl
-# Adding claimdate to serials.
-# (Needed to record claimdate
-#
-# Revision 1.157.2.35  2006/12/08 15:36:57  hdl
-# Adding issuedate to issues table.
-#
-# Revision 1.157.2.34  2006/12/07 16:00:41  hdl
-# Adding issuedate to table issues.
-# Modifying issuedate on issue (Circ2.pm)
-# Modifying report issue_avg_stats to take this change into account. (Need TESTING)
-#
-# Revision 1.157.2.33  2006/12/06 14:12:18  btoumi
-# add BorrowersTitles systempreferences to setup borrowers title
-#
-# Revision 1.157.2.32  2006/12/06 13:49:41  toins
-# deleting additionalauthors, bibliosubjects, bibliosubtitles.
-#
-# Revision 1.157.2.31  2006/12/05 15:07:16  tipaul
-# NEW FEATURE :
-# a column (itemtypes.summary) has been added.
-#
-# If it is empty, no changes at all.
-# In admin/itemtypes.pl, the librarian can go and define what (and how) the record appeard below the title.
-# The summary must be entered exactly as the authority summary.
-# An example is provided in admin/itemtypes.pl add/modify itemtype.
-#
-# This feature had been requested for a while by my librarians. The 2 uses we can imagine are :
-# - for websites => show the link directly in the result list, to avoid 1 clic (& there is no need for a size/editor/publicationyear for web sites)
-# - for serial publications => show some serial specific informations.
-#
-# This commit should do everything that is needed for this feature.
-#
-# Revision 1.157.2.30  2006/11/29 11:58:18  toins
-# re indenting with space.
-#
-# Revision 1.157.2.29  2006/11/24 21:58:35  kados
-# changing items.itemtype to items.itype to avoid problems with
-# joins with biblioitems. NOTE: I don't think updatedatabase will remove the
-# items.itemtype from your db so you must do that manually if you updated
-# from an earlier version of updatedatabase.
-#
-# Revision 1.157.2.28  2006/11/24 13:54:55  hdl
-# Adding serialsadditem
-#
-# Revision 1.157.2.27  2006/11/24 11:07:09  alaurin
-# bug sanop #74 :
-#
-# Add a new system prefence "AutoLocation"
-#  this fonction  switching activation or not Autolocation, if Yes, the Librarian can't change his location, it's defined by branchip,
-# if autolocation is setting to "NO", librarian can change his settings ....
-#
-#
-# warn, if autolocation is setting "on", on circulation.pl we don't have anymore the choice to change your library and branchprinter,
-# defined on branches : branchip and branchprinter ....
-#
-# this function could be improved
-#
-# Revision 1.157.2.26  2006/11/23 11:01:06  toins
-# branchtransfers.frombranch & branchtransfers.tobranch must be VARCHAR(10)
-#
-# Revision 1.157.2.25  2006/11/23 09:05:33  tipaul
-# reintroducing move to innoDB (as only innoDB supports extended features like foreign keys)
-#
-# Revision 1.157.2.24  2006/11/21 09:15:23  toins
-# better userflag description
-#
-# Revision 1.157.2.23  2006/11/21 08:51:01  toins
-# 2 new userflags: serials & reports.
-#
-# Revision 1.157.2.22  2006/11/20 16:59:09  toins
-# adding a userflags: 'editauthorities'.
-#
-# Revision 1.157.2.21  2006/11/17 10:53:04  hdl
-# Changing
-# - subscription detail :
-#     adding manual history (in subscription table)
-#     addind subscription summary.
-# - menu-serials.inc deleting old link
-# - adapting serials-collection.pl
-#
-# TODO List :
-# - Some values are hard coded in subscription-detail
-# - subscription-detail.pl relies on subscription-add for edition BUT subscription-add transmits back data to subscription-detail in order to save data back into database. This is a bit odd enough and should not occur.
-# - Some more tests on numberlength which doesnot seem to be kept.
-#
-# Revision 1.157.2.20  2006/11/15 15:15:50  hdl
-# Final First Version for New Facility for subscription management.
-#
-# Now
-# use serials-collection.pl for history display
-# and serials-edit.pl for serial edition
-# subscription add and detail adds a new branch information to help IndependantBranches Library to manage different subscriptions for a serial
-#
-# This is aimed at replacing serials-receive and statecollection.
-#
-# Revision 1.157.2.19  2006/11/14 16:28:01  rych
-# Adding itemtype field to items
-#
-# Revision 1.157.2.18  2006/11/14 16:16:58  rych
-# fix mysql syntax
-#
-# Revision 1.157.2.17  2006/11/14 14:39:31  toins
-# * delete the userflags "reservforself" which is unused.
-# * some new function not use at the moment.
-#
-# Revision 1.157.2.16  2006/11/02 09:27:30  toins
-# issue.branchcode must be varchar(10).
-#
-# Revision 1.157.2.15  2006/10/31 17:41:51  toins
-# items.holdingbranch must be varchar(10)
-#
-# Revision 1.157.2.14  2006/10/30 09:41:45  btoumi
-# remove auto increment for accountno in accountlines table
-#
-# Revision 1.157.2.13  2006/10/20 10:35:05  alaurin
-# new program : branchoverdues.pl
-#
-# with this program, the librararians will can check , and specify the method of notification of documents in overdue
-#
-# little explanation :
-#
-#     - At first, the datas come from accountlines, generated by accounlines (type 'FU')
-#     - There is three levels of notification (come from overduerules ....)
-#     - there is four methods of notification :
-#         - letter (for us, use an openoffice program ....)
-#         - Mail (use a batch program)
-#         - Phone (simple Method, if this method is selected, we consider that the borrower as been notified)
-#         - Considered Lost (For us the third level)
-#
-#     - At this time we have some parameters hardcoded (Must be improve later)
-#
-#     - the choice of methods is hardcoded :
-#         - for the first overduelevel : three methods : mail,letter,phone
-#         -For the second overduelevel :only one method : letter
-#         - For the Third Overdue level : only one method : Considered Lost
-#
-#
-# this program will be heavy tested next week ....
-#
-# Revision 1.157.2.12  2006/10/19 09:04:07  toins
-# itemtypes.itemtype is a primary key.
-#
-# Revision 1.157.2.11  2006/10/18 13:31:13  toins
-# Borrowers.categorycode must have 10 chars lenght & categories.categorycode must be a primary key.
-#
-# Revision 1.157.2.10  2006/10/17 16:18:14  hdl
-# Changing primary key in aqbookfund.
-# Making it branchcode+aqbookfundid rather than simple aqbookfundid.
-#
-# Revision 1.157.2.9  2006/10/16 14:23:47  toins
-# Borrowers.branchcode must be varchar(10) too.
-#
-# Revision 1.157.2.7  2006/10/11 15:22:23  tipaul
-# - adding some missing fields, coming from dev_week :
-# * lcsort & ccode in biblioitems table. lcsort is used for loc callnumbers & ccode is used to have a item level circulation rules. Ccode means C<irc>code
-# * onloan & issue_date in items table. They are filled by the misc/update_items.pl script, with circulation values. NOW, onloan & issue_date in items are NOT set by circulation, this decision speed up a lot the circulation rate (with the Date::Manip removal). The price for this is to have the status of the item not real time updated in zebra, but that's worth the price.
-# * cutterextra in items, that we should ask tumer to understand what it does  ;-)
-#
-# Revision 1.157.2.6  2006/10/10 11:25:40  btoumi
-# add two tables : notifys , charges
-# modify accountlines tables add two fields (notify_id and notify_level)
-#
-# Revision 1.157.2.5  2006/10/02 09:15:44  hdl
-# Serials :
-# * synching with NZ-devs on Serials.
-# * adding routing lists support,
-# * adding serialsadditems support
-# * adding publisheddate management
-#
-# TODO :
-# Management for seasonal serials should be fixed in order to be language independant.
-#
-# Revision 1.157.2.4  2006/09/19 07:44:13  btoumi
-# bug fix : modify wrong field name BorrowerMandatoryField
-#
-# Revision 1.157.2.3  2006/09/18 14:00:24  btoumi
-# bug fix :wrond field name for opacnote and contactnote
-#
-# Revision 1.157.2.2  2006/09/11 13:24:03  alaurin
-# marcxml should be a longtext, some biblios can be more than 65535 char long
-#
-# Revision 1.157.2.1  2006/09/04 08:39:14  toins
-# sync with rel_2_2.
-#
-# Revision 1.157  2006/08/11 10:03:13  tipaul
-# the new "includes" features, for personalized templates. Look at koha-devel, i'll write a mail here (& something on the wiki)
-#
-# Revision 1.152  2006/06/27 09:26:37  btoumi
-# modify (initials,phone ) fields property in borrowers and deletedborrowers table
-#
-# Revision 1.151  2006/06/22 10:33:14  btoumi
-# sorry i forget deletedborrowers table
-# modify firstname field from deletedborrowers table
-#
-# Revision 1.149  2006/06/20 22:35:47  rangi
-# Code to allow the associated borrowers to work
-#
-# Revision 1.148  2006/06/17 22:12:01  rangi
-# Adding id field to reviews table
-#
-# Revision 1.147  2006/06/17 03:36:41  rangi
-# Table definition for the reviews table
-#
-# Revision 1.146  2006/06/17 03:29:41  rangi
-# Variable to allow librarians to switch reviews on or off
-#
-# Revision 1.145  2006/06/16 09:45:02  btoumi
-# updatedatabase.pl: add change of borrowers table to deletedborrowers table
-# deletemem.pl: delete use of warn function
-#
-# Revision 1.144  2006/06/08 15:36:31  alaurin
-# Add a new system preference 'AutomaticItemReturn' :
-#
-# if this prefence is switched on: the document returned in another library than homebranch, the system automaticly transfer the document to his homebranch (with notification for librarian in returns.tmpl) .
-#
-# switch off : the document stay in the holdingbranch ...
-#
-# correcting bugs :
-# - comment C4::acquisition (not using in request.pl).
-# - correcting date in request.pl
-# -add the new call of function getbranches in request.pl
-#
-# Revision 1.143  2006/06/07 02:02:47  bob_lyon
-# merging katipo changes...
-#
-# adding new preference IssuingInProcess
-#
-# Revision 1.142  2006/06/06 23:42:46  bob_lyon
-# Merging Katipo changes...
-#
-# Adding new system pref where one can still retrieve a correct reading
-# record history if one has moved older data from issues to oldissues table
-# to speed up issues speed
-#
-# Revision 1.141  2006/06/01 03:18:11  rangi
-# Adding a new column to the statistics table
-#
-# Revision 1.140  2006/05/22 22:40:45  rangi
-# Adding new systempreference allowing for the library to add borrowers to institutions (rest homes, parishes, schools, classes etc).
-#
-# Revision 1.139  2006/05/19 19:31:29  tgarip1957
-# Added new fields to auth_header and auth_subfield_table to allow ZEBRA use of authorities and new MARC framework like structure.
-# Authority tables are modified to be compatible with new MARC frameworks. This change is part of Authority Linking & Zebra authorities. Requires change in Mysql database. It will break head unless all changes regarding this is implemented. This warning will take place on all commits regarding this
-#
-# Revision 1.138  2006/05/19 16:51:44  alaurin
-# update database for :
-# - new feature ip and printer management
-# adding two fields in branches table (branchip,branchprinter)
-#
-# - waiting date : adding one field in reserves table(waiting date) to calculate the Maximum delay to pick up a reserved document when it's available
-#
-# new system preference :
-# - ReservesMaxPickUpDelay : Maximum delay to pick up a reserved document
-# TransfersMaxDaysWarning : Max delay before considering the transfer as potentialy a problem
-#
-# Revision 1.137  2006/04/18 09:36:36  plg
-# bug fixed: typo fixed in labels and labels_conf tables creation query.
-#
-# Revision 1.136  2006/04/17 21:55:33  sushi
-# Added 'labels' and 'labels_conf' tables, for spine lable tool.
-#
-# Revision 1.135  2006/04/15 02:37:03  tgarip1957
-# Marc record should be set to UTF-8 in leader.Force it.
-# XML should be with<record> wrappers
-#
-# Revision 1.134  2006/04/14 09:37:29  tipaul
-# improvements from SAN Ouest Provence :
-# * introducing a category_type into categories. It can be A (adult), C (children), P (Professionnal), I (institution/organisation).
-# * each category_type has it's own forms to create members.
-# * the borrowers table has been heavily modified (many fields changed), to get something more logic & readable
-# * reintroducing guarantor/guanrantee system that is now independant from hardcoded C/A for categories
-# * updating templates to fit template rules
-#
-# (see mail feb, 17 on koha-devel "new features for borrowers" for more details)
-#
-# Revision 1.133  2006/04/13 08:36:42  plg
-# new: function C4::Date::get_date_format_string_for_DHTMLcalendar based on
-# the system preference prefered date format.
-#
-# improvement: book fund list and budget list screen redesigned. Filters on
-# each field. Columns are not sortable yet. Using DHTML Calendar to fill date
-# fields instead of manual filling. Pagination system. From the book fund
-# list, you can reach the budget list, filtered on a book fund, or not. A
-# budget can be added only from book fund list screen.
-#
-# bug fixed: branchcode was missing in table aqbudget.
-#
-# bug fixed: when setting a branchcode to a book fund, all associated budgets
-# move to this branchcode.
-#
-# modification: when adding/modifying budget/fund, MySQL specific "REPLACE..."
-# statements replaced by standard SQL compliant statement.
-#
-# bug fixed: when adding/modifying a budget, if the book fund is associated to
-# a branch, the branch selection is disabled and set to the book fund branch.
-#
-# Revision 1.132  2006/04/06 12:37:05  hdl
-# Bugfixing : aqbookfund needed a field.
-#
-# Revision 1.131  2006/03/03 17:02:22  tipaul
-# commit for holidays and news management.
-# (some forgotten files)
-#
-# Revision 1.130  2006/03/03 16:35:21  tipaul
-# commit for holidays and news management.
-#
-# Contrib from Tmer Garip (from Turkey) :
-# * holiday :
-# in /tools/ the holiday.pl script let you define holidays (days where the library is closed), branch by branch. You can define 3 types of holidays :
-# - single day : only this day is closed
-# - repet weekly (like "sunday") : the day is holiday every week
-# - repet yearly (like "July, 4") : this day is closed every year.
-#
-# You can also put exception :
-# - sunday is holiday, but "2006 March, 5th" the library will be open
-#
-# The holidays are used for return date calculation : the return date is set to the next date where the library is open. A systempreference (useDaysMode) set ON (Calendar) or OFF (Normal) the calendar calculation.
-#
-# Revision 1.129  2006/02/27 18:19:33  hdl
-# New table used in overduerules.pl tools page.
-#
-# Revision 1.128  2006/01/25 15:16:06  tipaul
-# updating DB :
-# * removing useless tables
-# * adding useful indexes
-# * altering some columns definitions
-# * The goal being to have updater working fine for foreign keys.
-#
-# For me it's done, let me know if it works for you. You can see an updated schema of the DB (with constraints) on the wiki
-#
-# Revision 1.127  2006/01/24 17:57:17  tipaul
-# DB improvements : adding foreign keys on some tables. partial stuff done.
-#
-# Revision 1.126  2006/01/06 16:39:42  tipaul
-# synch'ing head and rel_2_2 (from 2.2.5, including npl templates)
-# Seems not to break too many things, but i'm probably wrong here.
-# at least, new features/bugfixes from 2.2.5 are here (tested on some features on my head local copy)
-#
-# - removing useless directories (koha-html and koha-plucene)
-#
-# Revision 1.125  2006/01/04 15:54:55  tipaul
-# utf8 is a : go for beta test in HEAD.
-# some explanations :
-# - updater/updatedatabase => will transform all tables in innoDB (not related to utf8, just to warn you) AND collate them in utf8 / utf8_general_ci. The SQL command is : ALTER TABLE tablename DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci.
-# - *-top.inc will show the pages in utf8
-# - THE HARD THING : for me, mysql-client and mysql-server were set up to communicate in iso8859-1, whatever the mysql collation ! Thus, pages were improperly shown, as datas were transmitted in iso8859-1 format ! After a full day of investigation, someone on usenet pointed "set NAMES 'utf8'" to explain that I wanted utf8. I could put this in my.cnf, but if I do that, ALL databases will "speak" in utf8, that's not what we want. Thus, I added a line in Context.pm : everytime a DB handle is opened, the communication is set to utf8.
-# - using marcxml field and no more the iso2709 raw marc biblioitems.marc field.
-#
-# Revision 1.124  2005/10/27 12:09:05  tipaul
-# new features for serial module :
-# - the last 5 issues are now shown, and their status can be changed (but not reverted to "waited", as there can be only one "waited")
-# - the library can create a "distribution list". this paper contains a list of borrowers (selected from the borrower list, or manually entered), and print it for a given issue. once printed, the sheet can be put on the issue and distributed to every reader on the list (one by one).
-#
-# Revision 1.123  2005/10/26 09:13:37  tipaul
-# big commit, still breaking things...
-#
-# * synch with rel_2_2. Probably the last non manual synch, as rel_2_2 should not be modified deeply.
-# * code cleaning (cleaning warnings from perl -w) continued
-#
-# Revision 1.122  2005/09/02 14:18:38  tipaul
-# new feature : image for itemtypes.
-#
-# * run updater/updatedatabase to create imageurl field in itemtypes.
-# * go to Koha >> parameters >> itemtypes >> modify (or add) an itemtype. You will see around 20 nice images to choose between (thanks to owen). If you prefer your own image, you also can type a complete url (http://www.myserver.lib/path/to/my/image.gif)
-# * go to OPAC, and search something. In the result list, you now have the picture instead of the text itemtype.
-#
-# Revision 1.121  2005/08/24 08:49:03  hdl
-# Adding a note field in serial table.
-# This will allow librarian to mention a note on a peculiar waiting serial number.
-#
-# Revision 1.120  2005/08/09 14:10:32  tipaul
-# 1st commit to go to zebra.
-# don't update your cvs if you want to have a working head...
-#
-# this commit contains :
-# * updater/updatedatabase : get rid with marc_* tables, but DON'T remove them. As a lot of things uses them, it would not be a good idea for instance to drop them. If you really want to play, you can rename them to test head without them but being still able to reintroduce them...
-# * Biblio.pm : modify MARCgetbiblio to find the raw marc record in biblioitems.marc field, not from marc_subfield_table, modify MARCfindframeworkcode to find frameworkcode in biblio.frameworkcode, modify some other subs to use biblio.biblionumber & get rid of bibid.
-# * other files : get rid of bibid and use biblionumber instead.
-#
-# What is broken :
-# * does not do anything on zebra yet.
-# * if you rename marc_subfield_table, you can't search anymore.
-# * you can view a biblio & bibliodetails, go to MARC editor, but NOT save any modif.
-# * don't try to add a biblio, it would add data poorly... (don't try to delete either, it may work, but that would be a surprise ;-) )
-#
-# IMPORTANT NOTE : you need MARC::XML package (http://search.cpan.org/~esummers/MARC-XML-0.7/lib/MARC/File/XML.pm), that requires a recent version of MARC::Record
-# Updatedatabase stores the iso2709 data in biblioitems.marc field & an xml version in biblioitems.marcxml Not sure we will keep it when releasing the stable version, but I think it's a good idea to have something readable in sql, at least for development stage.
-#
-# Revision 1.119  2005/08/04 16:07:58  tipaul
-# Synch really broke this script...
-#
-# Revision 1.118  2005/08/04 16:02:55  tipaul
-# oops... error in synch between 2.2 and head
-#
-# Revision 1.117  2005/08/04 14:24:39  tipaul
-# synch'ing 2.2 and head
-#
-# Revision 1.116  2005/08/04 08:55:54  tipaul
-# Letters / alert system, continuing...
-#
-# * adding a package Letters.pm, that manages Letters & alerts.
-# * adding feature : it's now possible to define a "letter" for any subscription created. If a letter is defined, users in OPAC can put an alert on the subscription. When an issue is marked "arrived", all users in the alert will recieve a mail (as defined in the "letter"). This last part (= send the mail) is not yet developped. (Should be done this week)
-# * adding feature : it's now possible to "put to an alert" in OPAC, for any serial subscription. The alert is stored in a new table, called alert. An alert can be put only if the librarian has activated them in subscription (and they activate it just by choosing a "letter" to sent to borrowers on new issues)
-# * adding feature : librarian can see in borrower detail which alerts they have put, and a user can see in opac-detail which alert they have put too.
-#
-# Note that the system should be generic enough to manage any type of alert.
-# I plan to extend it soon to virtual shelves : a borrower will be able to put an alert on a virtual shelf, to be warned when something is changed in the virtual shelf (mail being sent once a day by cron, or manually by the shelf owner. Anyway, a mail won't be sent on every change, users would be spammed by Koha ;-) )
-#
-# Revision 1.115  2005/08/02 16:15:34  tipaul
-# adding 2 fields to letter system :
-# * module (acquisition, catalogue...) : it will be usefull to show the librarian only letters he may be interested by.
-# * title, that will be used as mail subject.
-#
-# Revision 1.114  2005/07/28 15:10:13  tipaul
-# Introducing new "Letters" system : Letters will be used everytime you want to sent something to someone (through mail or paper). For example, sending a mail for overdues use letter that you can put as parameters. Sending a mail to a borrower when a suggestion is validated uses a letter too.
-# the letter table contains 3 fields :
-# * code => the code of the letter
-# * name => the complete name of the letter
-# * content => the complete text. It's a TEXT field type, so has no limits.
-#
-# My next goal now is to work on point 2-I "serial issue alert"
-# With this feature, in serials, a user can subscribe the "issue alert". For every issue arrived/missing, a mail is sent to all subscribers of this list. The mail warns the user that the issue is arrive or missing. Will be in head.
-# (see mail on koha-devel, 2005/04/07)
-#
-# The "serial issue alert" will be the 1st to use this letter system that probably needs some tweaking ;-)
-#
-# Once it will be stabilised default letters (in any languages) could be added during installer to help the library begin with this new feature.
-#
-# Revision 1.113  2005/07/28 08:38:41  tipaul
-# For instance, the return date does not rely on the borrower expiration date. A systempref will be added in Koha, to modify return date calculation schema :
-# * ReturnBeforeExpiry = yes => return date can't be after expiry date
-# * ReturnBeforeExpiry = no  => return date can be after expiry date
-#
-# Revision 1.112  2005/07/26 08:19:47  hdl
-# Adding IndependantBranches System preference variable in order to manage Branch independancy.
-#
-# Revision 1.111  2005/07/25 15:35:38  tipaul
-# we have decided that moving to Koha 3.0 requires being already in Koha 2.2.x
-# So, the updatedatabase script can highly be cleaned (90% removed).
-# Let's play with the new Koha DB structure now ;-)
-#