From 838831b1f7b0799136f49638af4a4bd4faccae15 Mon Sep 17 00:00:00 2001 From: Josef Moravec Date: Thu, 18 Apr 2019 07:19:34 +0000 Subject: [PATCH] Bug 16284: Add Koha::Biblio->is_serial method Test plan: prove t/db_dependent/Koha/Biblio.t Should return green Signed-off-by: Michal Denar Signed-off-by: Katrin Fischer Signed-off-by: Martin Renvoize --- Koha/Biblio.pm | 19 +++++++++++++++++++ t/db_dependent/Koha/Biblio.t | 26 +++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm index 22adee7505..040126882c 100644 --- a/Koha/Biblio.pm +++ b/Koha/Biblio.pm @@ -640,6 +640,25 @@ sub get_openurl { return $OpenURLResolverURL; } +=head3 is_serial + +my $serial = $biblio->is_serial + +Return boolean true if this bibbliographic record is continuing resource + +=cut + +sub is_serial { + my ( $self ) = @_; + + return 1 if $self->serial; + + my $record = $self->metadata->record; + return 1 if substr($record->leader, 7, 1) eq 's'; + + return 0; +} + =head3 type =cut diff --git a/t/db_dependent/Koha/Biblio.t b/t/db_dependent/Koha/Biblio.t index 7f04ca1e83..bdf65bd7e2 100644 --- a/t/db_dependent/Koha/Biblio.t +++ b/t/db_dependent/Koha/Biblio.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 6; +use Test::More tests => 7; use C4::Biblio; use Koha::Database; @@ -146,3 +146,27 @@ subtest 'get_coins and get_openurl' => sub { $schema->storage->txn_rollback; }; + +subtest 'is_serial() tests' => sub { + + plan tests => 3; + + $schema->storage->txn_begin; + + my $biblio = $builder->build_sample_biblio(); + + $biblio->serial( 1 )->store->discard_changes; + ok( $biblio->is_serial, 'Bibliographic record is serial' ); + + $biblio->serial( 0 )->store->discard_changes; + ok( !$biblio->is_serial, 'Bibliographic record is not serial' ); + + my $record = $biblio->metadata->record; + $record->leader('00142nas a22 7a 4500'); + ModBiblio($record, $biblio->biblionumber ); + $biblio = Koha::Biblios->find($biblio->biblionumber); + + ok( $biblio->is_serial, 'Bibliographic record is serial' ); + + $schema->storage->txn_rollback; +}; -- 2.39.5