koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha/updater updatedatabase


From: paul poulain
Subject: [Koha-cvs] koha/updater updatedatabase
Date: Fri, 09 Mar 2007 15:14:57 +0000

CVSROOT:        /sources/koha
Module name:    koha
Changes by:     paul poulain <tipaul>   07/03/09 15:14:57

Modified files:
        updater        : updatedatabase 

Log message:
        rel_3_0 moved to HEAD

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/updater/updatedatabase?cvsroot=koha&r1=1.157&r2=1.158

Patches:
Index: updatedatabase
===================================================================
RCS file: /sources/koha/koha/updater/updatedatabase,v
retrieving revision 1.157
retrieving revision 1.158
diff -u -b -r1.157 -r1.158
--- updatedatabase      11 Aug 2006 10:03:13 -0000      1.157
+++ updatedatabase      9 Mar 2007 15:14:57 -0000       1.158
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# $Id: updatedatabase,v 1.157 2006/08/11 10:03:13 tipaul Exp $
+# $Id: updatedatabase,v 1.158 2007/03/09 15:14:57 tipaul Exp $
 
 # Database Updater
 # This script checks for required updates to the database.
@@ -179,22 +179,73 @@
                                borrower1 integer,
                                borrower2 integer
                                )",
+    subscriptionroutinglist=>"(
+                             routingid integer NOT NULL auto_increment,
+                             borrowernumber integer,
+                             ranking integer,
+                             subscriptionid integer,
+                            PRIMARY KEY (routingid)
+                             )",
+
+    notifys    => "(
+              notify_id int(11) NOT NULL default '0',
+                `borrowernumber` int(11) NOT NULL default '0',
+              `itemnumber` int(11) NOT NULL default '0',
+              `notify_date` date NOT NULL default '0000-00-00',
+                      `notify_send_date` date default NULL,
+                      `notify_level` int(1) NOT NULL default '0',
+                      `method` varchar(20) NOT NULL default ''
+              )",
+
+   charges    => "(
+              `charge_id` varchar(5) NOT NULL default '',
+                `description` text NOT NULL,
+                `amount` decimal(28,6) NOT NULL default '0.000000',
+                          `min` int(4) NOT NULL default '0',
+                `max` int(4) NOT NULL default '0',
+                          `level` int(1) NOT NULL default '0',
+                          PRIMARY KEY  (`charge_id`)
+              )",
+    tags => "(
+        `entry` varchar(255) NOT NULL default '',
+        `weight` bigint(20) NOT NULL default '0',
+         PRIMARY KEY  (`entry`)
+    )
+    ",
+   zebraqueue    => "(
+                `id` int NOT NULL auto_increment,
+                `biblio_auth_number` int NOT NULL,
+                `operation` char(20) NOT NULL,
+                `server` char(20) NOT NULL ,
+                PRIMARY KEY  (`id`)
+              ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci 
AUTO_INCREMENT=1",
 
 );
 
 my %requirefields = (
-       subscription => { 'letter' => 'char(20) NULL', 'distributedto' => 'text 
NULL'},
+    subscription => { 'letter' => 'char(20) NULL', 'distributedto' => 'text 
NULL', 'firstacquidate'=>'date NOT NULL','irregularity'=>'TEXT NULL default 
\'\'','numberpattern'=>'TINYINT(3) NULL default 0', 'callnumber'=>'text NULL', 
'hemisphere' =>'TINYINT(3) NULL default 0', 'issuesatonce'=>'TINYINT(3) NOT 
NULL default 1',  'branchcode' =>'varchar(12) NOT NULL default \'\'', 
'manualhistory'=>'TINYINT(1) NOT NULL default 0','internalnotes'=>'LONGTEXT 
NULL default \'\''},
        itemtypes => { 'imageurl' => 'char(200) NULL'},
        aqbookfund => { 'branchcode' => 'varchar(4) NULL'},
        aqbudget => { 'branchcode' => 'varchar(4) NULL'},
        auth_header => { 'marc' => 'BLOB NOT NULL', 'linkid' => 'BIGINT(20) 
NULL'},
-       auth_subfield_structure =>{ 'hidden' => 'TINYINT(3) NOT NULL UNSIGNED 
ZEROFILL', 'kohafield' => 'VARCHAR(45) NOT NULL', 'linkid' =>  'TINYINT(1) NOT 
NULL UNSIGNED', 'isurl' => 'TINYINT(1) UNSIGNED'},
+    auth_subfield_structure =>{ 'hidden' => 'TINYINT(3) NOT NULL default 0', 
'kohafield' => 'VARCHAR(45) NOT NULL', 'linkid' =>  'TINYINT(1) NOT NULL 
default 0', 'isurl' => 'TINYINT(1)', 'frameworkcode'=>'VARCHAR(8) NOT  NULL'},
+    marc_breeding => { 'isbn' => 'varchar(13) NOT NULL'},
+    serial =>{ 'publisheddate' => 'date', 'claimdate' => 'date', 
'itemnumber'=>'text NULL','routingnotes'=>'text NULL',},
         statistics => { 'associatedborrower' => 'integer'},
+    z3950servers =>{  "name" =>"text",  "description" => "text NOT NULL",
+                    "position" =>"enum('primary','secondary','') NOT NULL 
default 'primary'",  "icon" =>"text",
+                    "type" =>"enum('zed','opensearch') NOT NULL default 'zed'",
+                    },
+    issues =>{ 'issuedate'=>"date NOT NULL default '0000-00-00'", },
+
 #    tablename        => { 'field' => 'fieldtype' },
 );
 
-my %dropable_table = (
-# tablename => 'tablename',
+# Enter here the table to delete.
+my @TableToDelete = qw(
+    additionalauthors
+    bibliosubject
+    bibliosubtitle
 );
 
 my %uselessfields = (
@@ -233,8 +284,17 @@
         },
         {
             uniquefieldrequired => 'variable',
-            variable            => 'borrowerMandatoryField',
-            value               => 'zipcode|surname',
+            variable            => 'BorrowersTitles',
+            value               => 'Mr|Mrs|Miss|Ms',
+            forceupdate         => { 'explanation' => 1,
+                                     'type' => 1},
+            explanation         => 'List all Titles for borrowers',
+            type                => 'free',
+        },
+       {
+            uniquefieldrequired => 'variable',
+            variable            => 'BorrowerMandatoryField',
+            value               => 'cardnumber|surname|address',
             forceupdate         => { 'explanation' => 1,
                                      'type' => 1},
             explanation         => 'List all mandatory fields for borrowers',
@@ -321,8 +381,170 @@
             explanation         => 'The includes directory you want for 
specific look of Koha (includes or includes_npl for example)',
             type                => 'Free',
         },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'AutoLocation',
+            value               => '0',
+            forceupdate         => { 'explanation' => 1,
+                                     'type' => 1},
+            explanation         => 'switch to activate or not Autolocation, if 
Yes, the Librarian can\'t change his location, it\'s defined by branchip',
+            type                => 'YesNo',
+        },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'serialsadditems',
+            value               => '0',
+            forceupdate         => {
+                'explanation' => 1,
+                'type' => 1
+            },
+            explanation => 'If set, a new item will be automatically added 
when receiving an issue',
+            type => 'YesNo',
+        },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'expandedSearchOption',
+            value               => '0',
+            forceupdate         => {
+                'explanation' => 1,
+                'type' => 1
+            },
+            explanation => 'search among marc field',
+            type => 'YesNo',
+        },
+       {
+            uniquefieldrequired => 'variable',
+            variable            => 'RequestOnOpac',
+            value               => '1',
+            forceupdate         => { 'explanation' => 1,
+                                     'type' => 1},
+            explanation         => 'option to allow reserves on opac',
+            type                => 'YesNo',
+        },
+       {
+            uniquefieldrequired => 'variable',
+            variable            => 'OpacCloud',
+            value               => '1',
+            forceupdate         => { 'explanation' => 1,
+                                     'type' => 1},
+            explanation         => 'Enable / Disable cloud link on OPAC',
+            type                => 'YesNo',
+        },
+       {
+            uniquefieldrequired => 'variable',
+            variable            => 'OpacBrowser',
+            value               => '1',
+            forceupdate         => { 'explanation' => 1,
+                                     'type' => 1},
+            explanation         => 'Enable/Disable browser link on OPAC (needs 
to set misc/cronjob/build_browser.pl)',
+            type                => 'YesNo',
+        },
+       {
+            uniquefieldrequired => 'variable',
+            variable            => 'OpacTopissue',
+            value               => '1',
+            forceupdate         => { 'explanation' => 1,
+                                     'type' => 1},
+            explanation         => 'Enable / Disable the top issue link on 
OPAC',
+            type                => 'YesNo',
+        },
+       {
+            uniquefieldrequired => 'variable',
+            variable            => 'OpacAuthorities',
+            value               => '1',
+            forceupdate         => { 'explanation' => 1,
+                                     'type' => 1},
+            explanation         => 'Enable / Disable the search authority link 
on OPAC',
+            type                => 'YesNo',
+        },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'CataloguingLog',
+            value               => '0',
+            forceupdate         => {'explanation' => 1, 'type' => 1},
+            explanation         => 'Active this if you want to log cataloguing 
action.',
+            type                => 'YesNo',
+        },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'BorrowersLog',
+            value               => '0',
+            forceupdate         => {'explanation' => 1, 'type' => 1},
+            explanation         => 'Active this if you want to log borrowers 
edition/creation/deletion...',
+            type                => 'YesNo',
+        },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'SubscriptionLog',
+            value               => '0',
+            forceupdate         => {'explanation' => 1, 'type' => 1},
+            explanation         => 'Active this if you want to log 
Subscription action',
+            type                => 'YesNo',
+        },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'IssueLog',
+            value               => '0',
+            forceupdate         => {'explanation' => 1, 'type' => 1},
+            explanation         => 'Active this if you want to log issue.',
+            type                => 'YesNo',
+        },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'ReturnLog',
+            value               => '0',
+            forceupdate         => {'explanation' => 1, 'type' => 1},
+            explanation         => 'Active this if you want to log the 
circulation return',
+            type                => 'YesNo',
+        },
+        {   
+            uniquefieldrequired => 'variable',
+            variable            => 'LetterLog',
+            value               => '0',
+            forceupdate         => {'explanation' => 1, 'type' => 1},
+            explanation         => 'Active this if you want to log all the 
letter sent',
+            type                => 'YesNo',
+        },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'FinesLog',
+            value               => '0',
+            forceupdate         => {'explanation' => 1, 'type' => 1},
+            explanation         => 'Active this if you want to log fines',
+            type                => 'YesNo',
+        },
     ],
-
+    userflags => [
+        {
+            uniquefieldrequired => 'bit',
+            bit                 => '14',
+            flag                => 'editauthorities',
+            flagdesc            => 'allow to edit authorities',
+            defaulton           => '0',
+        },
+        {
+            uniquefieldrequired => 'bit',
+            bit                 => '15',
+            flag                 => 'serials',
+            flagdesc            => 'allow to manage serials subscriptions',
+            defaulton           => '0',
+        },
+        {
+            uniquefieldrequired => 'bit',
+            bit                 => '16',
+            flag                 => 'reports',
+            flagdesc            => 'allow to access to the reports module',
+            defaulton           => '0',
+        },
+    ],
+    authorised_values => [
+        {
+            uniquefieldrequired => 'id',
+            category            => 'SUGGEST',
+            authorised_value    => 'Not enoug budget',
+            lib                 => 'This book it too much expensive',
+        }
+    ]
 );
 
 my %fielddefinitions = (
@@ -334,16 +556,6 @@
 #             default => ''
 #         },
 #     ],
-       serial => [
-        {
-            field   => 'notes',
-            type    => 'TEXT',
-            null    => 'NULL',
-            key     => '',
-            default => '',
-            extra   => ''
-        },
-    ],
        aqbasket =>  [
                {
                        field   => 'booksellerid',
@@ -356,6 +568,14 @@
        ],
        aqbooksellers =>  [
                {
+            field    => 'id',
+            type    => 'int(11)',
+            null    => 'NOT NULL',
+            key        => '',
+            default    => '',
+            extra    => 'auto_increment',
+        },
+        {
                        field   => 'listprice',
                        type    => 'varchar(10)',
                        null    => 'NULL',
@@ -372,24 +592,27 @@
                        extra   => '',
                },
        ],
-       issues =>  [
+    
+    accountlines =>  [
                {
-                       field   => 'borrowernumber',
+            field    => 'notify_id',
                        type    => 'int(11)',
-                       null    => 'NULL', # can be null when a borrower is 
deleted and the foreign key rule executed
+            null    => 'NOT NULL',
                        key             => '',
-                       default => '',
+            default    => '0',
                        extra   => '',
                },
                {
-                       field   => 'itemnumber',
-                       type    => 'int(11)',
-                       null    => 'NULL', # can be null when a borrower is 
deleted and the foreign key rule executed
+            field    => 'notify_level',
+            type    => 'int(2)',
+            null    => 'NOT NULL',
                        key             => '',
-                       default => '',
+            default    => '0',
                        extra   => '',
                },
+    
        ],
+    
        borrowers => [
                {       field => 'firstname',
                        type => 'text',
@@ -462,6 +685,100 @@
                        null => 'NULL',
                        after => 'contactfirstname',
                },
+        {
+            field => 'branchcode',
+            type  => 'varchar(10)',
+            null  => 'NOT NULL',
+            default    => '',
+            extra => '',
+        },
+        {
+            field => 'categorycode',
+            type  => 'varchar(10)',
+            null  => 'NOT NULL',
+            default    => '',
+            extra => '',
+        }
+    ],
+    
+    biblioitems =>  [
+        {
+            field    => 'lcsort',
+            type    => 'varchar(25)',
+            null    => 'NULL',
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+        {
+            field    => 'ccode',
+            type    => 'varchar(4)',
+            null    => 'NULL',
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+    ],
+    branches =>  [
+        {
+            field    => 'branchip',
+            type    => 'varchar(15)',
+            null    => 'NULL',
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+        {
+            field    => 'branchprinter',
+            type    => 'varchar(100)',
+            null    => 'NULL',
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+        {
+            field   => 'branchcode',
+            type    => 'varchar(10)',
+            null    => 'NOT NULL',
+            default => '',
+            extra   => '',
+        }
+    ],
+    branchtransfers =>[
+        {
+            field   => 'frombranch',
+            type    => 'VARCHAR(10)',
+            null    => 'NOT NULL',
+            key     => '',
+            default => '',
+            extra   => '',
+        },
+        {
+            field   => 'tobranch',
+            type    => 'VARCHAR(10)',
+            null    => 'NOT NULL',
+            key     => '',
+            default => '',
+        }
+    ],
+    
+    categories =>  [
+        {
+            field    => 'category_type',
+            type    => 'char(1)',
+            null    => 'NOT NULL',
+            key        => '',
+            default    => 'A',
+            extra    => '',
+        },
+        {
+            field   => 'categorycode',
+            type    => 'varchar(10)',
+            null    => 'NOT NULL',
+            key     => 'PRI',
+            default => '',
+            extra   => '',
+        },
        ],
        
        deletedborrowers => [
@@ -538,31 +855,114 @@
                },
        ],
        
-       branches =>  [
+    issues =>  [
                {
-                       field   => 'branchip',
-                       type    => 'varchar(15)',
+            field    => 'borrowernumber',
+            type    => 'int(11)',
+            null    => 'NULL', # can be null when a borrower is deleted and 
the foreign key rule executed
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+        {
+            field    => 'itemnumber',
+            type    => 'int(11)',
+            null    => 'NULL', # can be null when a borrower is deleted and 
the foreign key rule executed
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+        {
+            field   => 'branchcode',
+            type    => 'varchar(10)',
                        null    => 'NULL',
                        key             => '',
                        default => '',
                        extra   => '',
                },
                {
-                       field   => 'branchprinter',
-                       type    => 'varchar(100)',
+            field   => 'issuedate',
+            type    => 'date',
+            null    => '',
+            key     => '',
+            default => '0000-00-00',
+            extra   => '',
+        },
+    ],
+    
+    items => [
+        {
+            field    => 'onloan',
+            type    => 'date',
+            null    => 'NULL',
+            key        => '',
+            default    => '0000-00-00',
+            extra    => '',
+        },
+        {
+            field    => 'cutterextra',
+            type    => 'varchar(45)',
+            null    => 'NULL',
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+        {
+            field    => 'issue_date',
+            type    => 'date',
+            null    => 'NULL',
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+        {
+            field    => 'holdingbranch',
+            type    => 'varchar(10)',
+            null    => 'NULL',
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+        {
+            field    => 'itype',
+            type    => 'varchar(10)',
                        null    => 'NULL',
                        key             => '',
                        default => '',
                        extra   => '',
                },
        ],
-       categories =>  [
+    itemtypes => [
                {
-                       field   => 'category_type',
-                       type    => 'char(1)',
+            field  => 'itemtype',
+            type   => 'varchar(10)',
+            default    => '',
                        null    => 'NOT NULL',
+            key    => 'PRI',
+            extra  => 'UNIQUE',
+        },
+        {
+            field  => 'summary',
+            type   => 'TEXT',
+            null   => 'NULL',
                        key             => '',
-                       default => 'A',
+            extra  => '',
+        },
+    ],
+    opac_news => [
+        {
+            field  => 'expirationdate',
+            type   => 'date',
+            null   => 'null',
+            key    => '',
+            extra  => '',
+        },
+        {
+            field   => 'number',
+            type    => 'int(11)',
+            null    => 'NULL',
+            key     => '',
+            default => '0',
                        extra   => '',
                },
        ],
@@ -576,6 +976,51 @@
                        extra   => '',
                },
        ],
+    serial => [
+        {
+            field   => 'notes',
+            type    => 'TEXT',
+            null    => 'NULL',
+            key     => '',
+            default => '',
+            extra   => ''
+        },
+    ],
+    shelfcontents => [
+        {
+            field => 'dateadded',
+            type => 'timestamp',
+            null    => 'NULL',
+        },
+    ],
+    systempreferences =>  [
+        {
+            field    => 'value',
+            type    => 'text',
+            null    => 'NULL',
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+        {
+            field    => 'explanation',
+            type    => 'text',
+            null    => 'NULL',
+            key        => '',
+            default    => '',
+            extra    => '',
+        },
+    ],
+    suggestions => [
+        {
+            field   => 'reason',
+            type    => 'text',
+            null    => 'NULL',
+            key     => ''  ,
+            default => '',
+            extra   =>    '',
+        }
+    ],
 );
 
 my %indexes = (
@@ -583,31 +1028,10 @@
 #              {       indexname => 'index detail'
 #              }
 #      ],
-       shelfcontents => [
-               {       indexname => 'shelfnumber',
-                       content => 'shelfnumber',
-               },
-               {       indexname => 'itemnumber',
-                       content => 'itemnumber',
-               }
-       ],
-       bibliosubject => [
-               {       indexname => 'biblionumber',
-                       content => 'biblionumber',
-               }
-       ],
-       items => [
-               {       indexname => 'homebranch',
-                       content => 'homebranch',
-               },
-               {       indexname => 'holdingbranch',
-                       content => 'holdingbranch',
-               }
-       ],
        aqbooksellers => [
                {       indexname => 'PRIMARY',
                        content => 'id',
-                       type => 'PRIMARY',
+            type => 'PRI',
                }
        ],
        aqbasket => [
@@ -627,11 +1051,54 @@
                {       indexname => 'bookfundid',
                        content => 'bookfundid',
                },
-       ],
-       currency => [
-               {       indexname => 'PRIMARY',
-                       content => 'currency',
-                       type => 'PRIMARY',
+    ],
+    biblioitems => [
+        {    indexname => 'isbn',
+            content => 'isbn',
+        },
+        {    indexname => 'publishercode',
+            content => 'publishercode',
+        },
+    ],
+    branches => [
+        {
+            indexname => 'branchcode',
+            content   => 'branchcode',
+    
+        }
+    ],
+    currency => [
+        {    indexname => 'PRIMARY',
+            content => 'currency',
+            type => 'PRI',
+        }
+    ],
+    categories => [
+        {
+            indexname => 'categorycode',
+            content   => 'categorycode',
+        }
+    ],
+    items => [
+        {    indexname => 'homebranch',
+            content => 'homebranch',
+        },
+        {    indexname => 'holdingbranch',
+            content => 'holdingbranch',
+        }
+    ],
+    itemtypes => [
+        {
+            indexname => 'itemtype',
+            content   => 'itemtype',
+        }
+    ],
+    shelfcontents => [
+        {    indexname => 'shelfnumber',
+            content => 'shelfnumber',
+        },
+        {    indexname => 'itemnumber',
+            content => 'itemnumber',
                }
        ],
 );
@@ -695,22 +1162,6 @@
                        onDelete => 'RESTRICT',
                },
        ],
-       additionalauthors => [
-               {       key => 'biblionumber',
-                       foreigntable => 'biblio',
-                       foreignkey => 'biblionumber',
-                       onUpdate => 'CASCADE',
-                       onDelete => 'CASCADE',
-               },
-       ],
-       bibliosubject => [
-               {       key => 'biblionumber',
-                       foreigntable => 'biblio',
-                       foreignkey => 'biblionumber',
-                       onUpdate => 'CASCADE',
-                       onDelete => 'CASCADE',
-               },
-       ],
        aqbasket => [
                {       key => 'booksellerid',
                        foreigntable => 'aqbooksellers',
@@ -962,16 +1413,6 @@
                                        after => 'contactname',
                                },
                                {
-                                       from => 'textmessaging',
-                                       to => 'opacnotes',
-                                       after => 'flags',
-                               },
-                               {
-                                       from => 'altnotes',
-                                       to => 'contactnotes',
-                                       after => 'opacnotes',
-                               },
-                               {
                                        from => 'altrelationship',
                                        to => 'relationship',
                                        after => 'borrowernotes',
@@ -1045,24 +1486,36 @@
                                        after => 'contactname',
                                },
                                {
-                                       from => 'textmessaging',
-                                       to => 'opacnotes',
-                                       after => 'flags',
-                               },
-                               {
-                                       from => 'altnotes',
-                                       to => 'contactnotes',
-                                       after => 'opacnotes',
-                               },
-                               {
                                        from => 'altrelationship',
                                        to => 'relationship',
                                        after => 'borrowernotes',
                                },
                        ],
-
                );
                
+
+# MOVE all tables TO UTF-8 and innoDB
+$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';
+    unless ($table->{Collation} =~ /^utf8/) {
+         print "moving $table->{Name} to utf8\n";
+        $dbh->do("ALTER TABLE $table->{Name} CONVERT TO CHARACTER SET utf8");
+        $dbh->do("ALTER TABLE $table->{Name} DEFAULT CHARACTER SET utf8 
COLLATE utf8_general_ci");
+        # FIXME : maybe a ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8 
would be better, def char set seems to work fine. If any problem encountered, 
let's try with convert !
+    } else {
+    }
+}
+
+
 foreach my $table (keys %column_change) {
        $sth = $dbh->prepare("show columns from $table");
        $sth->execute();
@@ -1092,6 +1545,32 @@
        }
 }
 
+# Enter here the field you want to delete from DB.
+# FIXME :: there is a %uselessfield before which seems doing the same things.
+my %fieldtodelete = (
+    # tablename => [fieldname1,fieldname2,...]
+
+); # %fielddelete
+
+print "removing some unused fields...\n";
+foreach my $table ( keys %fieldtodelete ) {
+    foreach my $field ( @{$fieldtodelete{$table}} ){
+        print "removing ".$field." from ".$table;
+        my $sth = $dbh->prepare("ALTER TABLE $table DROP $field");
+        $sth->execute;
+        if ( $sth->err ) {
+            print "Error : $sth->errstr \n";
+        }
+    }
+}
+
+# Enter here the line you want to remove from DB.
+my %linetodelete = (
+    # table name => where clause.
+    userflags => "bit = 8", # delete the 'reserveforself' flags
+    
+); # %linetodelete
+
 #-------------------
 # Initialize
 
@@ -1129,17 +1608,6 @@
     }    # unless exists
 }    # foreach
 
-# now drop useless tables
-foreach $table ( keys %dropable_table ) {
-       if ( $existingtables{$table} ) {
-               print "Dropping unused table $table\n" if $debug and not 
$silent;
-               $dbh->do("drop table $table");
-               if ( $dbh->err ) {
-                       print "Error : $dbh->errstr \n";
-               }
-       }
-}
-
 #---------------------------------
 # Columns
 
@@ -1193,7 +1661,6 @@
 #              $null    = 'YES' if $row->{null} eq 'NULL';
                my $key     = $row->{key};
                my $default = $row->{default};
-               my $null    = $row->{null};
 #              $default="''" unless $default;
                my $extra   = $row->{extra};
                my $def     = $definitions->{$field};
@@ -1224,23 +1691,43 @@
 # if it's a primary key, drop the previous pk, before altering the table
                        my $sth;
                        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");
                        } 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");
                        }
-                       $sth->execute($default);
+# 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);
                }
        }
 }
 
-# Populate tables with required data
+print "removing some unused data...\n";
+foreach my $table ( keys %linetodelete ) {
+    foreach my $where ( @{linetodelete{$table}} ){
+        print "DELETE FROM ".$table." where ".$where;
+        print "\n";
+        my $sth = $dbh->prepare("DELETE FROM $table where $where");
+        $sth->execute;
+        if ( $sth->err ) {
+            print "Error : $sth->errstr \n";
+        }
+    }
+}
 
+# Populate tables with required data
 
 # synch table and deletedtable.
 foreach my $table (('borrowers','items','biblio','biblioitems')) {
        my %deletedborrowers;
-       print "synch'ing $table\n";
+    print "synch'ing $table and deleted$table\n";
        $sth = $dbh->prepare("show columns from deleted$table");
        $sth->execute;
        while ( my ( $column, $type, $null, $key, $default, $extra ) = 
$sth->fetchrow ) {
@@ -1257,7 +1744,7 @@
                        } else {
                                $newcol .= " NOT NULL ";
                        }
-                       $newcol .= "default $default" if $default;
+            $newcol .= "default ".$dbh->quote($default) if $default;
                        $newcol .= " after $previous" if $previous;
                        $previous=$column;
                        print "creating column $column\n";
@@ -1265,7 +1752,16 @@
                }
        }
 }
-
+#
+# update publisheddate 
+#
+$sth = $dbh->prepare("select count(*) from serial where publisheddate is 
NULL");
+$sth->execute;
+my ($emptypublished) = $sth->fetchrow;
+if ($emptypublished) {
+    print "Updating publisheddate\n";
+    $dbh->do("update serial set publisheddate=planneddate where publisheddate 
is NULL");
+}
 foreach my $table ( keys %tabledata ) {
     print "Checking for data required in table $table...\n" unless $silent;
     my $tablerows = $tabledata{$table};
@@ -1302,6 +1798,7 @@
                        print "\n" unless $silent;
                        $fieldlist    =~ s/,$//;
                        $placeholders =~ s/,$//;
+            print "insert into $table ($fieldlist) values ($placeholders)";
                        my $sth =
                        $dbh->prepare(
                                "insert into $table ($fieldlist) values 
($placeholders)");
@@ -1386,6 +1883,16 @@
                }
        }
 }
+# now drop useless tables
+foreach $table ( @TableToDelete ) {
+    if ( $existingtables{$table} ) {
+        print "Dropping unused table $table\n" if $debug and not $silent;
+        $dbh->do("drop table $table");
+        if ( $dbh->err ) {
+            print "Error : $dbh->errstr \n";
+        }
+    }
+}
 
 #
 # SPECIFIC STUFF
@@ -1421,40 +1928,6 @@
        print "\rdone\n";
 }
 
-#
-# moving MARC data from marc_subfield_table to biblioitems.marc
-#
-$sth = $dbh->prepare("show columns from biblioitems");
-$sth->execute();
-my $definitions;
-my $marcdone=0;
-while ( ( $column, $type, $null, $key, $default, $extra ) = $sth->fetchrow ){
-       $marcdone=1 if ($type eq 'blob' && $column eq 'marc') ;
-}
-unless ($marcdone) {
-       print "moving MARC record to biblioitems table\n";
-       # changing marc field type
-       $dbh->do('ALTER TABLE `biblioitems` CHANGE `marc` `marc` BLOB NULL 
DEFAULT NULL ');
-       # adding marc xml, just for convenience
-       $dbh->do('ALTER TABLE `biblioitems` ADD `marcxml` TEXT CHARACTER SET 
utf8 COLLATE utf8_general_ci NOT NULL ');
-       # moving data from marc_subfield_value to biblio
-       $sth = $dbh->prepare('select bibid,biblionumber from marc_biblio');
-       $sth->execute;
-       my $sth_update = $dbh->prepare('update biblioitems set marc=?, 
marcxml=? where biblionumber=?');
-       my $totaldone=0;
-       while (my ($bibid,$biblionumber) = $sth->fetchrow) {
-               my $record = MARCgetbiblio($dbh,$bibid);
-       #Force UTF-8 in record leader
-               $record->encoding('UTF-8');
-#              print $record->as_formatted if ($biblionumber==3902);
-               
$sth_update->execute($record->as_usmarc(),$record->as_xml_record(),$biblionumber);
-               $totaldone++;
-               print "\r$totaldone / $totaltodo" unless ($totaldone % 100);
-       }
-       print "\rdone\n";
-}
-
-
 # at last, remove useless fields
 foreach $table ( keys %uselessfields ) {
        my @fields = split /,/,$uselessfields{$table};
@@ -1478,197 +1951,308 @@
        }
 }    # foreach
 
-
-# MOVE all tables TO UTF-8 and innoDB
-$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';
-       unless ($table->{Collation} =~ /^utf8/) {
-               print "moving $table->{Name} to utf8\n";
-               $dbh->do("ALTER TABLE $table->{Name} CONVERT TO CHARACTER SET 
utf8");
-               $dbh->do("ALTER TABLE $table->{Name} DEFAULT CHARACTER SET utf8 
COLLATE utf8_general_ci");
-               # FIXME : maybe a ALTER TABLE tbl_name CONVERT TO CHARACTER SET 
utf8 would be better, def char set seems to work fine. If any problem 
encountered, let's try with convert !
-       } else {
-       }
-}
-
-$sth->finish;
-
 #
-# those 2 subs are a copy of Biblio.pm, version 2.2.4
-# they are useful only once, for moving from 2.2 to 3.0
-# the MARCgetbiblio & MARCgetitem subs in Biblio.pm
-# are still here, but uses other tables
-# (the ones that are filled by updatedatabase !)
+# Changing aqbookfund's primary key 
 #
+$sth=$dbh->prepare("ALTER TABLE `aqbookfund` DROP PRIMARY KEY , ADD PRIMARY 
KEY ( `bookfundid` , `branchcode` ) ;");
+$sth->execute;
 
-sub MARCgetbiblio {
-
-    # Returns MARC::Record of the biblio passed in parameter.
-    my ( $dbh, $bibid ) = @_;
-    my $record = MARC::Record->new();
-#      warn "". $bidid;
-
-    my $sth =
-      $dbh->prepare(
-"select 
bibid,subfieldid,tag,tagorder,tag_indicator,subfieldcode,subfieldorder,subfieldvalue,valuebloblink
-                                from marc_subfield_table
-                                where bibid=? order by 
tag,tagorder,subfieldorder
-                        "
-    );
-    my $sth2 =
-      $dbh->prepare(
-        "select subfieldvalue from marc_blob_subfield where blobidlink=?");
-    $sth->execute($bibid);
-    my $prevtagorder = 1;
-    my $prevtag      = 'XXX';
-    my $previndicator;
-    my $field;        # for >=10 tags
-    my $prevvalue;    # for <10 tags
-    while ( my $row = $sth->fetchrow_hashref ) {
-
-        if ( $row->{'valuebloblink'} ) {    #---- search blob if there is one
-            $sth2->execute( $row->{'valuebloblink'} );
-            my $row2 = $sth2->fetchrow_hashref;
-            $sth2->finish;
-            $row->{'subfieldvalue'} = $row2->{'subfieldvalue'};
-        }
-        if ( $row->{tagorder} ne $prevtagorder || $row->{tag} ne $prevtag ) {
-            $previndicator .= "  ";
-            if ( $prevtag < 10 ) {
-                               if ($prevtag ne '000') {
-                       $record->add_fields( ( sprintf "%03s", $prevtag ), 
$prevvalue ) unless $prevtag eq "XXX";    # ignore the 1st loop
-                               } else {
-                                       
$record->leader(sprintf("%24s",$prevvalue));
-                               }
-            }
-            else {
-                $record->add_fields($field) unless $prevtag eq "XXX";
-            }
-            undef $field;
-            $prevtagorder  = $row->{tagorder};
-            $prevtag       = $row->{tag};
-            $previndicator = $row->{tag_indicator};
-            if ( $row->{tag} < 10 ) {
-                $prevvalue = $row->{subfieldvalue};
-            }
-            else {
-                $field = MARC::Field->new(
-                    ( sprintf "%03s", $prevtag ),
-                    substr( $row->{tag_indicator} . '  ', 0, 1 ),
-                    substr( $row->{tag_indicator} . '  ', 1, 1 ),
-                    $row->{'subfieldcode'},
-                    $row->{'subfieldvalue'}
-                );
-            }
-        }
-        else {
-            if ( $row->{tag} < 10 ) {
-                $record->add_fields( ( sprintf "%03s", $row->{tag} ),
-                    $row->{'subfieldvalue'} );
-            }
-            else {
-                $field->add_subfields( $row->{'subfieldcode'},
-                    $row->{'subfieldvalue'} );
-            }
-            $prevtag       = $row->{tag};
-            $previndicator = $row->{tag_indicator};
-        }
-    }
-
-    # the last has not been included inside the loop... do it now !
-    if ( $prevtag ne "XXX" )
-    { # check that we have found something. Otherwise, prevtag is still XXX 
and we
-         # must return an empty record, not make MARC::Record fail because we 
try to
-         # create a record with XXX as field :-(
-        if ( $prevtag < 10 ) {
-            $record->add_fields( $prevtag, $prevvalue );
-        }
-        else {
-
-            #                  my $field = MARC::Field->new( $prevtag, "", "", 
%subfieldlist);
-            $record->add_fields($field);
-        }
-    }
-    return $record;
-}
-
-sub MARCgetitem {
-
-    # Returns MARC::Record of the biblio passed in parameter.
-    my ( $dbh, $bibid, $itemnumber ) = @_;
-    my $record = MARC::Record->new();
-
-    # search MARC tagorder
-    my $sth2 =
-      $dbh->prepare(
-"select tagorder from marc_subfield_table,marc_subfield_structure where 
marc_subfield_table.tag=marc_subfield_structure.tagfield and 
marc_subfield_table.subfieldcode=marc_subfield_structure.tagsubfield and 
bibid=? and kohafield='items.itemnumber' and subfieldvalue=?"
-    );
-    $sth2->execute( $bibid, $itemnumber );
-    my ($tagorder) = $sth2->fetchrow_array();
-
-    #---- TODO : the leader is missing
-    my $sth =
-      $dbh->prepare(
-"select 
bibid,subfieldid,tag,tagorder,tag_indicator,subfieldcode,subfieldorder,subfieldvalue,valuebloblink
-                                from marc_subfield_table
-                                where bibid=? and tagorder=? order by 
subfieldcode,subfieldorder
-                        "
-    );
-    $sth2 =
-      $dbh->prepare(
-        "select subfieldvalue from marc_blob_subfield where blobidlink=?");
-    $sth->execute( $bibid, $tagorder );
-    while ( my $row = $sth->fetchrow_hashref ) {
-        if ( $row->{'valuebloblink'} ) {    #---- search blob if there is one
-            $sth2->execute( $row->{'valuebloblink'} );
-            my $row2 = $sth2->fetchrow_hashref;
-            $sth2->finish;
-            $row->{'subfieldvalue'} = $row2->{'subfieldvalue'};
-        }
-        if ( $record->field( $row->{'tag'} ) ) {
-            my $field;
-
-#--- this test must stay as this, because of strange behaviour of mySQL/Perl 
DBI with char var containing a number...
-            #--- sometimes, eliminates 0 at beginning, sometimes no ;-\\\
-            if ( length( $row->{'tag'} ) < 3 ) {
-                $row->{'tag'} = "0" . $row->{'tag'};
-            }
-            $field = $record->field( $row->{'tag'} );
-            if ($field) {
-                my $x =
-                  $field->add_subfields( $row->{'subfieldcode'},
-                    $row->{'subfieldvalue'} );
-                $record->delete_field($field);
-                $record->add_fields($field);
-            }
-        }
-        else {
-            if ( length( $row->{'tag'} ) < 3 ) {
-                $row->{'tag'} = "0" . $row->{'tag'};
-            }
-            my $temp =
-              MARC::Field->new( $row->{'tag'}, " ", " ",
-                $row->{'subfieldcode'} => $row->{'subfieldvalue'} );
-            $record->add_fields($temp);
-        }
-
-    }
-    return $record;
-}
-
+$sth->finish;
 
 exit;
 
 # $Log: updatedatabase,v $
+# Revision 1.158  2007/03/09 15:14:57  tipaul
+# rel_3_0 moved to HEAD
+#
+# Revision 1.157.2.56  2007/01/31 16:22:54  btoumi
+# -add possibility to use isbn with length of 13 characters
+# for  Import datas in the reservoir.
+# -modify isbn field in marc_breeding table (varchar 13)
+# -add isbn filter (no - )when u read a notice from reservoir
+# -add filter to have right field 100
+#
+# Revision 1.157.2.55  2007/01/30 10:50:19  tipaul
+# adding 2 usefull indexes to biblioitems table
+#
+# Revision 1.157.2.54  2007/01/29 16:45:52  toins
+# * adding a new default authorised value : SUGGEST.
+# SUGGEST give some reasons to accept or reject a suggestion.
+#
+# * default value for borrowersMandatoryfield syspref is now 
"cardnumber|surname|adress"
+#
+# Revision 1.157.2.53  2007/01/26 20:48:37  hdl
+# Serials management : Bugfixes + improvements.
+# - Partial dates are now managed
+# - next Date Calculation with irregularity tested for 1 week and 1 month.
+# - manage if subscription is abouttoexpire or expired.
+# - Adding some information on serials pages about subscription.
+# - Managing irregularity with numbers.
+# - Adding Internal Notes in subscription management.
+# - Repeating Button above pages.
+#
+# Please run Updatedatabase to change irregularity and add internalnotes field 
 to subscription
+#
+# Revision 1.157.2.52  2007/01/24 13:57:26  tipaul
+# - setting supplierid to auto_increment (HDL : could you check that is works, 
i'm not 100% sure)
+# - removing 22 -> 30 marc_subfield_table -> marcxml stuff, it's now in 
misc/migration_tools/22_to_30/
+#
+# Revision 1.157.2.51  2007/01/18 09:58:45  tipaul
+# defaulting NOT NULL fields (to '')
+#
+# Revision 1.157.2.50  2007/01/18 09:39:21  tipaul
+# issuedate must be defaulted with ' '
+#
+# Revision 1.157.2.49  2007/01/18 09:37:30  tipaul
+# removing 2 field definitions that were here twice
+#
+# Revision 1.157.2.48  2007/01/15 09:55:40  toins
+# adding a new logging systempref : FinesLog.
+#
+# Revision 1.157.2.47  2007/01/12 18:09:49  toins
+# LetterLog added
+#
+# Revision 1.157.2.46  2007/01/11 14:35:39  tipaul
+# adding Opac Browser feature : the build_browser_and_cloud.pl script will :
+# - fill the browser table, that enable browsing, digit by digit of a given 
category, the catalogue. A complete dewey classification is provided in the 
script, active only for french libraries, of course (although, for instance, 
the script check that the catalogue is in english for developping convenience)
+# - fill the tags table, that contains the subject cloud.
+#
+# The cloud part is a copy of the previous build_tags.pl script that can be 
deleted : those 2 scripts require to parse all the catalogue to extract 
interesting data, so they are long. It's useless to parse the catalogue twice !
+#
+# The commit also add the systempreference to hide/show the OpacBrowse in 
database & in systempref management script.
+#
+# IMPROVEMENTS to do :
+# - the script that builds the tables can be improved to update only last week 
biblios (at the price of a small error in value links, but it's not a problem).
+# - add, in parameters section, a place to edit browser descriptions. The 
build script has to be updated to to avoid deleting existing browser 
descriptions.
+#
+# Revision 1.157.2.45  2007/01/10 16:52:52  toins
+# Value for Log Features syspref are set to 0 by default.
+#
+# Revision 1.157.2.44  2007/01/10 16:31:15  toins
+# new systems preferences :
+#  - CataloguingLog (log the update/creation/deletion of a notice if set to 1)
+#  - BorrowersLog ( idem for borrowers )
+#  - IssueLog (log all issue if set to 1)
+#  - ReturnLog (log all return if set to 1)
+#  - SusbcriptionLog (log all creation/deletion/update of a subcription)
+#
+# All of theses are in a new tab called 'LOGFeatures' in systempreferences.pl
+#
+# Revision 1.157.2.43  2007/01/10 14:13:17  toins
+# opac_news.displayed is replaced by opac_news.number.
+# This field say how are ordered the news on the template.
+#
+# 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)
 #
@@ -1791,7 +2375,7 @@
 # Revision 1.130  2006/03/03 16:35:21  tipaul
 # commit for holidays and news management.
 #
-# Contrib from Tümer Garip (from Turkey) :
+# 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]