From 923255e99fdbb39dd07d6ea90f1b3cd577736ed2 Mon Sep 17 00:00:00 2001 From: Olli-Antti Kivilahti Date: Thu, 12 Feb 2015 16:49:32 +0200 Subject: [PATCH] Bug 13702 - Subroutine to check if a Biblio exists or is deleted A handy helper function when looking for a biblio. Is it alive? Deleted? or has it never existed (or DELETEd from the deleted* tables)? TEST PLAN: 0. Make a code review. --- C4/Biblio.pm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index 8d62a61..120c3aa 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -398,6 +398,55 @@ sub ModBiblioframework { return 1; } +=head2 Exists + + my $exists = C4::Biblio::Exists($biblionumber); + if ($exists == 2) { + print "Biblionumber $biblionumber exists in koha.biblio and koha.biblioitems"; + } + elsif ($exists == 1) { + print "Biblionumber $biblionumber exists in koha.deletedbiblio and koha.deletedbiblioitems"; + } + else { + print "Biblionumber $biblionumber doesn't exist in Koha DB"; + } + +Finds out if the given biblionumber exists as an active Biblio or a deleted Biblio in Koha, or if it is no longer available. +=cut + +sub Exists { + my ( $biblionumber ) = @_; + my $dbh = C4::Context->dbh; + my $sth = $dbh->prepare( "SELECT 1 FROM biblio WHERE biblionumber=?" ); + $sth->execute( $biblionumber ); + my $exists = $sth->fetchrow(); + + unless ($exists) { + my $deleted = C4::Biblio::IsDeleted($biblionumber); + return $deleted; + } + return 2; +} + +=head IsDeleted + + my $deleted = C4::Biblio::IsDeleted($biblionumber); + +@RETURNS Integer 1, if the given biblionumber exists in the koha.deletedbiblio-table. + otherwise undef. + +=cut + +sub IsDeleted { + my ( $biblionumber ) = @_; + my $dbh = C4::Context->dbh; + my $sth = $dbh->prepare( "SELECT 1 FROM deletedbiblio WHERE biblionumber=?" ); + $sth->execute( $biblionumber ); + my $deleted = $sth->fetchrow(); + return $deleted if $deleted; + return undef; +} + =head2 DelBiblio my $error = &DelBiblio($biblionumber); -- 1.7.9.5