@@ -, +, @@ --- C4/Acquisition.pm | 19 +++++++++++++++++-- installer/data/mysql/kohastructure.sql | 1 + installer/data/mysql/updatedatabase.pl | 10 ++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) --- a/C4/Acquisition.pm +++ a/C4/Acquisition.pm @@ -425,7 +425,8 @@ sub CloseBasketgroup { my $dbh = C4::Context->dbh; my $sth = $dbh->prepare(" UPDATE aqbasketgroups - SET closed=1 + SET closed=1, + closeddate=CAST(NOW() AS DATE) WHERE id=? "); $sth->execute($basketgroupno); @@ -446,7 +447,7 @@ sub ReOpenBasketgroup { my $dbh = C4::Context->dbh; my $sth = $dbh->prepare(" UPDATE aqbasketgroups - SET closed=0 + SET closed=0, closeddate=NULL WHERE id=? "); $sth->execute($basketgroupno); @@ -878,10 +879,17 @@ sub NewBasketgroup { push(@params, $basketgroupinfo->{$field}); } } + + if ($basketgroupinfo->{closed}) { + $query .= "closeddate, "; + } $query .= "booksellerid) VALUES ("; foreach (@params) { $query .= "?, "; } + if ($basketgroupinfo->{closed}) { + $query .= "CAST(NOW() AS DATE), "; + } $query .= "?)"; push(@params, $basketgroupinfo->{'booksellerid'}); my $dbh = C4::Context->dbh; @@ -930,6 +938,13 @@ sub ModBasketgroup { my $dbh = C4::Context->dbh; my $query = "UPDATE aqbasketgroups SET "; my @params; + + if ($basketgroupinfo->{closed}) { + $query .= "closeddate = IF(closed = 0, CAST(NOW() AS DATE), closeddate), "; + } elsif (defined $basketgroupinfo->{closed}) { + $query .= "closeddate = NULL, "; + } + foreach my $field (qw(name billingplace deliveryplace freedeliveryplace deliverycomment closed)) { if ( defined $basketgroupinfo->{$field} ) { $query .= "$field=?, "; --- a/installer/data/mysql/kohastructure.sql +++ a/installer/data/mysql/kohastructure.sql @@ -2824,6 +2824,7 @@ CREATE TABLE `aqbasketgroups` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) default NULL, `closed` tinyint(1) default NULL, + closeddate date default NULL, -- the date the basketgroup was closed `booksellerid` int(11) NOT NULL, `deliveryplace` varchar(10) default NULL, `freedeliveryplace` text default NULL, --- a/installer/data/mysql/updatedatabase.pl +++ a/installer/data/mysql/updatedatabase.pl @@ -9773,6 +9773,16 @@ if ( CheckVersion($DBversion) ) { SetVersion ($DBversion); } +$DBversion = "3.19.00.012"; +if (CheckVersion($DBversion)) { + $dbh->do(q| + ALTER TABLE aqbasketgroups + ADD COLUMN closeddate DATE DEFAULT NULL AFTER closed + |); + print "Upgrade to $DBversion done (Bug XXXXX: Add aqbasketgroups.closeddate)\n"; + SetVersion($DBversion); +} + =head1 FUNCTIONS =head2 TableExists($table) --