Skip to content

Instantly share code, notes, and snippets.

@ctfliblime
Created October 26, 2011 00:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ctfliblime/1314938 to your computer and use it in GitHub Desktop.
Save ctfliblime/1314938 to your computer and use it in GitHub Desktop.
This is not the most efficient way, but it seems to work.
#!/usr/bin/env perl
use Koha;
use C4::Context;
use C4::Reserves;
use C4::Circulation;
use C4::Items;
my $dbh = C4::Context->dbh;
my $itemnumbers = $dbh->selectcol_arrayref(
q{SELECT itemnumber FROM items
WHERE biblionumber IN (
SELECT DISTINCT biblionumber FROM reserves
)
ORDER BY itemnumber}
);
for (@$itemnumbers) {
my $item = C4::Items::GetItem($_);
my ($status, $reserve) = C4::Reserves::CheckReserves($_);
next unless $status ~~ 'Reserved';
my (undef, $message, undef, undef)
= C4::Circulation::AddReturn($item->{barcode}, $item->{homebranch});
next if not $message->{ResFound};
my $borrower = C4::Members::GetMember($reserve->{borrowernumber});
my $biblio = C4::Biblio::GetBiblioData($reserve->{biblionumber});
my $queue_entry = {
reservenumber => $reserve->{reservenumber},
biblionumber => $reserve->{biblionumber},
itemnumber => $item->{itemnumber},
barcode => $item->{barcode},
surname => $borrower->{surname},
borrowernumber => $borrower->{borrowernumber},
reservedate => $reserve->{reservedate},
title => $biblio->{title},
itemcallnumber => $biblio->{cn_class},
holdingbranch => $item->{homebranch},
pickbranch => $borrower->{branchcode},
};
C4::Reserves::SaveHoldInQueue(%$queue_entry);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment