Chenge database structure to not delete an order line when biblio gets deleted
authorJohn Soros <john.soros@biblibre.com>
Wed, 24 Jun 2009 13:03:30 +0000 (15:03 +0200)
committerHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Wed, 30 Sep 2009 09:30:27 +0000 (11:30 +0200)
acqui/basket.pl
installer/data/mysql/kohastructure.sql
installer/data/mysql/updatedatabase.pl

index c8142b3..07aec1d 100755 (executable)
@@ -239,10 +239,14 @@ if ( $op eq 'delete_confirm' ) {
                 $line{$key} .= '??';
             }
         }
-        my $volume = $results[$i]->{'volume'};
-        my $seriestitle = $results[$i]->{'seriestitle'};
-        $line{'title'} .= " / $seriestitle" if $seriestitle;
-        $line{'title'} .= " / $volume" if $volume;
+       if ($line{'title'}){
+           my $volume = $results[$i]->{'volume'};
+           my $seriestitle = $results[$i]->{'seriestitle'};
+           $line{'title'} .= " / $seriestitle" if $seriestitle;
+           $line{'title'} .= " / $volume" if $volume;
+       } else {
+           $line{'title'} = "Deleted bibliographic notice, can't find title.";
+       }
         push @books_loop, \%line;
     }
 
index a4b1e2c..409fa67 100644 (file)
@@ -312,7 +312,7 @@ CREATE TABLE `aqorders` (
   KEY `basketno` (`basketno`),
   KEY `biblionumber` (`biblionumber`),
   CONSTRAINT `aqorders_ibfk_1` FOREIGN KEY (`basketno`) REFERENCES `aqbasket` (`basketno`) ON DELETE CASCADE ON UPDATE CASCADE,
-  CONSTRAINT `aqorders_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE SET NULL
+  CONSTRAINT `aqorders_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE,
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 --
index 053cecf..528628d 100755 (executable)
@@ -2993,6 +2993,15 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     SetVersion ($DBversion);
 }
 
+$DBversion = "3.00.99.023";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("ALTER TABLE `aqorders` drop foreign key `aqorders_ibfk_2`");
+    $dbh->do("ALTER TABLE `aqorders` drop key `biblionumber`");
+    $dbh->do("ALTER TABLE `aqorders` ADD foreign key (biblionumber) REFERENCES biblio(`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE;"); 
+    print "Upgrade to $DBversion done adding display column to aqbudgets_planning\n";
+    SetVersion ($DBversion);
+}
+
 =item DropAllForeignKeys($table)
 
   Drop all foreign keys of the table $table