85 lines
3.5 KiB
Perl
Executable file
85 lines
3.5 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
#-----------------------------------
|
|
# Script Name: reservelist.pl
|
|
# Script Version: 1.0
|
|
# Date: 2003/9/18
|
|
# Author: Stephen Hedges shedges@skemotah.com
|
|
# Description: produces a comma separated list of currently
|
|
# available reserves, with item and borrower details
|
|
# Usage: reservelist.pl.
|
|
# Revision History:
|
|
# 1.0 2003/9/18: original version
|
|
# 1.1 2003/10/1: modified to load into a MySQL table
|
|
#-----------------------------------
|
|
|
|
use lib '/usr/local/koha/intranet/modules/';
|
|
|
|
use strict;
|
|
use C4::Context;
|
|
use C4::Biblio;
|
|
|
|
my ($biblionumber,$barcode,$holdingbranch,$pickbranch,$notes,$cardnumber,$lastname,$firstname,$phone,$title,$callno,$rdate,$borrno);
|
|
|
|
my $dbh = C4::Context->dbh;
|
|
|
|
$dbh->do("DELETE FROM reservelist"); # clear the old table for new info
|
|
|
|
my $sth=$dbh->prepare("SELECT biblionumber,reserves.branchcode,reservenotes,borrowers.borrowernumber,cardnumber,surname,firstname,phone,reservedate FROM reserves,borrowers WHERE reserves.borrowernumber=borrowers.borrowernumber AND priority=1 AND cancellationdate IS NULL GROUP BY biblionumber");
|
|
|
|
my $sth_load=$dbh->prepare("INSERT INTO reservelist (biblionumber,barcode,lastname,firstname,phone,borrowernumber,cardnumber,reservedate,title,callno,holdingbranch,pickbranch,notes) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)");
|
|
|
|
$sth->execute(); # get the list of biblionumbers for unfilled reserves
|
|
|
|
GETIT: while (my $data=$sth->fetchrow_hashref){
|
|
$biblionumber = $data->{'biblionumber'}; # get the basic reserve info
|
|
$pickbranch = $data->{'branchcode'};
|
|
$notes = $data->{'reservenotes'};
|
|
$borrno = $data->{'borrowernumber'};
|
|
$cardnumber = $data->{'cardnumber'};
|
|
$lastname = $data->{'surname'};
|
|
$firstname = $data->{'firstname'};
|
|
$phone = $data->{'phone'};
|
|
$rdate = $data->{'reservedate'};
|
|
my @items = GetItemsInfo($biblionumber,''); # get the items for this biblio
|
|
my @itemorder; # prepare a new array to hold re-ordered items
|
|
|
|
# The following lines take the retrieved items and run them through various
|
|
# tests to decide if they are to be used and then put them in the preferred
|
|
# 'pick' order.
|
|
foreach my $itm (@items) {
|
|
if ($itm->{"datedue"} eq "Reserved") { # is item ready for member?
|
|
if ($itm->{'holdingbranch'} eq $pickbranch) {
|
|
$itemorder[0]=$itm;
|
|
} elsif ($itm->{'homebranch'} eq 'NPL') {
|
|
$itemorder[1]=$itm;
|
|
} elsif ($itm->{'homebranch'} eq 'CPL') {
|
|
$itemorder[2]=$itm;
|
|
} elsif ($itm->{'homebranch'} eq 'COV') {
|
|
$itemorder[3]=$itm;
|
|
} elsif ($itm->{'homebranch'} eq 'GPL') {
|
|
$itemorder[4]=$itm;
|
|
} elsif ($itm->{'homebranch'} eq 'ALB') {
|
|
$itemorder[5]=$itm;
|
|
} elsif ($itm->{'homebranch'} eq 'PPL') {
|
|
$itemorder[6]=$itm;
|
|
} elsif ($itm->{'homebranch'} eq 'APL') {
|
|
$itemorder[7]=$itm;
|
|
}
|
|
}
|
|
}
|
|
my $count = @itemorder;
|
|
next GETIT if $count<1; # if the re-ordered array is empty, skip to next
|
|
PREP: foreach my $itmlist (@itemorder) {
|
|
if ($itmlist) {
|
|
$barcode = $itmlist->{'barcode'};
|
|
$holdingbranch = $itmlist->{'holdingbranch'};
|
|
$title = $itmlist->{'title'};
|
|
$callno = $itmlist->{'classification'};
|
|
last PREP; # we only want the first def item in the array
|
|
}
|
|
}
|
|
$sth_load->execute($biblionumber,$barcode,$lastname,$firstname,$phone,$borrno,$cardnumber,$rdate,$title,$callno,$holdingbranch,$pickbranch,$notes);
|
|
$sth_load->finish;
|
|
}
|
|
$sth->finish;
|
|
$dbh->disconnect;
|