From 40b766d5968e685c3b8c4e8dc5c976c860e2661e Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Mon, 5 Feb 2018 15:59:09 -0300 Subject: [PATCH] Bug 20176: [sql_modes] Set biblio.datecreated to NOW if not defined Fix at ->store level, this issue appears in lot of places. Fix for: Field 'datecreated' doesn't have a default value Signed-off-by: Julian Maurice Signed-off-by: Nick Clemens --- Koha/Biblio.pm | 14 ++++++++++++++ t/db_dependent/Koha/Biblios.t | 15 +++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm index a35048d..d226304 100644 --- a/Koha/Biblio.pm +++ b/Koha/Biblio.pm @@ -45,6 +45,20 @@ Koha::Biblio - Koha Biblio Object class =cut +=head3 store + +Overloaded I method to set default values + +=cut + +sub store { + my ( $self ) = @_; + + $self->datecreated( dt_from_string ) unless $self->datecreated; + + return $self->SUPER::store; +} + =head3 subtitles my @subtitles = $biblio->subtitles(); diff --git a/t/db_dependent/Koha/Biblios.t b/t/db_dependent/Koha/Biblios.t index 2f807b1..5cc286e 100644 --- a/t/db_dependent/Koha/Biblios.t +++ b/t/db_dependent/Koha/Biblios.t @@ -19,11 +19,11 @@ use Modern::Perl; -use Test::More tests => 3; +use Test::More tests => 4; use C4::Reserves; -use Koha::DateUtils qw( dt_from_string ); +use Koha::DateUtils qw( dt_from_string output_pref ); use Koha::Biblios; use Koha::Patrons; use Koha::Subscriptions; @@ -45,6 +45,17 @@ my $biblioitem = $schema->resultset('Biblioitem')->new( } )->insert(); +subtest 'store' => sub { + plan tests => 1; + is( + Koha::Biblios->find( $biblio->biblionumber )->datecreated, + output_pref( + { dt => dt_from_string, dateformat => 'iso', dateonly => 1 } + ), + "datecreated must be set to today if not passed to the constructor" + ); +}; + subtest 'holds + current_holds' => sub { plan tests => 5; C4::Reserves::AddReserve( $patron->branchcode, $patron->borrowernumber, $biblio->biblionumber ); -- 2.1.4