Bug 4133 Ensure that orders have a valid quantity received
authorColin Campbell <colin.campbell@ptfs-europe.com>
Mon, 8 Feb 2010 15:39:46 +0000 (15:39 +0000)
committerGalen Charlton <gmcharlt@gmail.com>
Mon, 8 Feb 2010 16:21:48 +0000 (11:21 -0500)
quantityreceived drives other parts of acq noticeably budget balances
ensure that a number (usually 0) is set in NewOrder
give field a valid default and set as not null
reinterpret exsting nulls in table as zero

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
C4/Acquisition.pm
installer/data/mysql/updatedatabase.pl
kohaversion.pl

index 80dd667..cd4a449 100644 (file)
@@ -1015,6 +1015,9 @@ sub NewOrder {
         $orderinfo->{'subscription'} = 0;
     }
     $orderinfo->{'entrydate'} ||= C4::Dates->new()->output("iso");
+    if (!$orderinfo->{quantityreceived}) {
+        $orderinfo->{quantityreceived} = 0;
+    }
 
     my $ordernumber=InsertInTable("aqorders",$orderinfo);
     return ( $orderinfo->{'basketno'}, $ordernumber );
index e63f537..2406a41 100755 (executable)
@@ -3421,6 +3421,13 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     SetVersion ($DBversion);
 }
 
+$DBversion = '3.01.00.115';
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do('UPDATE aqorders SET quantityreceived = 0 WHERE quantityreceived IS NULL');
+    $dbh->do('ALTER TABLE aqorders MODIFY COLUMN quantityreceived smallint(6) NOT NULL DEFAULT 0');
+       print "Upgrade to $DBversion done ( Default aqorders.quantityreceived to 0 )\n";
+    SetVersion ($DBversion);
+}
 
 =item DropAllForeignKeys($table)
 
index c8a0db6..3c5dda5 100644 (file)
@@ -10,7 +10,7 @@
 use strict;
 
 sub kohaversion {
-    our $VERSION = '3.01.00.114';
+    our $VERSION = '3.01.00.115';
     # version needs to be set this way
     # so that it can be picked up by Makefile.PL
     # during install