@@ -, +, @@
Warning: Your library does not allow recalls for x item types.
Feature now checks if the recall branch is the same as the item holding branch when checking in item to determine if transfer is required Recalls queue now hides old (cancelled/expired/finished) recalls by default and has a checkbox to toggle this Added an 'F' status for finished/closed recalls --- C4/Circulation.pm | 19 +++++++++++ Koha/Recall.pm | 13 ++++++++ Koha/Schema/Result/Biblio.pm | 19 +++++++++-- Koha/Schema/Result/Borrower.pm | 19 +++++++++-- Koha/Schema/Result/Branch.pm | 19 +++++++++-- .../atomicupdate/bug_19532_-_add_recalls_table.sql | 4 +-- .../bug_19532_-_adding_recalls_circ_rules.perl | 2 +- installer/data/mysql/kohastructure.sql | 37 ++-------------------- .../prog/en/includes/recalls-reports.inc | 13 +++++++- .../intranet-tmpl/prog/en/includes/recalls.inc | 2 ++ .../prog/en/modules/circ/recalls_overdue.tt | 2 +- .../prog/en/modules/circ/recalls_queue.tt | 18 ++++++++--- .../prog/en/modules/circ/recalls_waiting.tt | 6 ++-- .../prog/en/modules/members/moremember.tt | 2 +- .../prog/en/modules/members/recallshistory.tt | 2 +- koha-tmpl/intranet-tmpl/prog/js/checkouts.js | 4 +++ koha-tmpl/intranet-tmpl/prog/js/recalls.js | 12 +++++-- .../opac-tmpl/bootstrap/en/modules/opac-recall.tt | 4 +-- opac/opac-recall.pl | 15 +++++---- svc/checkouts | 6 ++++ t/db_dependent/Koha/Recalls.t | 7 ++-- 21 files changed, 158 insertions(+), 67 deletions(-) --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -356,6 +356,17 @@ sub transferbook { $dotransfer = 1; } + # check if item has been recalled. do a transfer if the recall branch is different to the item holding branch, otherwise don't do a transfer + my $recall = Koha::Recalls->find({ itemnumber => $item->itemnumber, status => 'R' }); + if (defined $recall){ + if ($recall->branchcode eq $fbr){ + $dotransfer = 0; + $messages->{'RecallPlacedAtHoldingBranch'} = 1; + } else { + $dotransfer = 1; + } + } + #actually do the transfer.... if ($dotransfer) { ModItemTransfer( $itemnumber, $fbr, $tbr ); @@ -1371,6 +1382,14 @@ sub AddIssue { } ); + # Check if a recall + if ( C4::Context->preference('UseRecalls') ) { + my $recall = Koha::Recalls->find({ itemnumber => $item->{'itemnumber'}, borrowernumber => $borrower->{'borrowernumber'} }); + if (defined $recall) { + $recall->update({ status => "F", old => 1 }); + } + } + if ( C4::Context->preference('ReturnToShelvingCart') ) { # ReturnToShelvingCart is on, anything issued should be taken off the cart. CartToShelf( $item->{'itemnumber'} ); --- a/Koha/Recall.pm +++ a/Koha/Recall.pm @@ -178,6 +178,19 @@ sub is_cancelled { return $status && $status eq 'C'; } +=head3 is_finished + +Returns true if recall is closed + +=cut + +sub is_finished { + my ($self) = @_; + + my $status = $self->status; + return $status && $status eq 'F'; +} + =head1 AUTHOR Aleisha Amohia