# along with Koha; if not, see <http://www.gnu.org/licenses>.
# Routing Preview.pl script used to view a routing list after creation
-# lets one print out routing slip and create (in this instance) the heirarchy
+# lets one print out routing slip and create (in this instance) the hierarchy
# of reserves for the serial
-use strict;
-use warnings;
+use Modern::Perl;
use CGI qw ( -utf8 );
use C4::Koha;
-use C4::Auth;
-use C4::Output;
-use C4::Acquisition;
-use C4::Reserves;
-use C4::Circulation;
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
+use C4::Reserves qw( AddReserve ModReserve );
use C4::Context;
-use C4::Members;
-use C4::Biblio;
-use C4::Items;
-use C4::Serials;
+use C4::Items qw( GetItemsInfo );
+use C4::Serials qw( delroutingmember getroutinglist GetSubscription GetSerials check_routing );
use URI::Escape;
-use C4::Branch;
-my $query = new CGI;
+use Koha::Biblios;
+use Koha::Libraries;
+use Koha::Patrons;
+
+my $query = CGI->new;
my $subscriptionid = $query->param('subscriptionid');
my $issue = $query->param('issue');
my $routingid;
my ($tmp ,@serials) = GetSerials($subscriptionid);
my ($template, $loggedinuser, $cookie);
+my $library;
if($ok){
# get biblio information....
- my $biblio = $subs->{'biblionumber'};
- my ($count2,@bibitems) = GetBiblioItemByBiblioNumber($biblio);
- my @itemresults = GetItemsInfo( $subs->{biblionumber} );
- my $branch = $itemresults[0]->{'holdingbranch'};
- my $branchname = GetBranchName($branch);
+ my $biblionumber = $subs->{'bibnum'};
+ my @itemresults = GetItemsInfo( $biblionumber );
+ my $branch = @itemresults ? $itemresults[0]->{'holdingbranch'} : $subs->{branchcode};
+ $library = Koha::Libraries->find($branch);
if (C4::Context->preference('RoutingListAddReserves')){
# get existing reserves .....
- my $reserves = GetReservesFromBiblionumber({ biblionumber => $biblio });
- my $count = scalar( @$reserves );
- my $totalcount = $count;
- foreach my $res (@$reserves) {
- if ($res->{'found'} eq 'W') {
- $count--;
- }
- }
+
+ my $biblio = Koha::Biblios->find( $biblionumber );
+ my $holds = $biblio->current_holds;
+ my $count = $holds->count;
+ while ( my $hold = $holds->next ) {
+ $count-- if $hold->is_waiting;
+ }
my $notes;
my $title = $subs->{'bibliotitle'};
for my $routing ( @routinglist ) {
my $sth = $dbh->prepare('SELECT * FROM reserves WHERE biblionumber = ? AND borrowernumber = ? LIMIT 1');
- $sth->execute($biblio,$routing->{borrowernumber});
+ $sth->execute($biblionumber,$routing->{borrowernumber});
my $reserve = $sth->fetchrow_hashref;
if($routing->{borrowernumber} == $reserve->{borrowernumber}){
ModReserve({
rank => $routing->{ranking},
- biblionumber => $biblio,
+ biblionumber => $biblionumber,
borrowernumber => $routing->{borrowernumber},
branchcode => $branch
});
} else {
- AddReserve($branch,$routing->{borrowernumber},$biblio,\@bibitems,$routing->{ranking}, undef, undef, $notes,$title);
+ AddReserve(
+ {
+ branchcode => $branch,
+ borrowernumber => $routing->{borrowernumber},
+ biblionumber => $biblionumber,
+ priority => $routing->{ranking},
+ notes => $notes,
+ title => $title,
+ }
+ );
}
}
}
= get_template_and_user({template_name => "serials/routing-preview-slip.tt",
query => $query,
type => "intranet",
- authnotrequired => 0,
flagsrequired => {serials => '*'},
- debug => 1,
});
- $template->param("libraryname"=>$branchname);
} else {
($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "serials/routing-preview.tt",
query => $query,
type => "intranet",
- authnotrequired => 0,
flagsrequired => {serials => '*'},
- debug => 1,
});
}
+$template->param( libraryname => $library->branchname ) if $library;
+
my $memberloop = [];
for my $routing (@routinglist) {
- my $member = GetMember( borrowernumber => $routing->{borrowernumber} );
+ my $member = Koha::Patrons->find( $routing->{borrowernumber} )->unblessed;
$member->{name} = "$member->{firstname} $member->{surname}";
push @{$memberloop}, $member;
}
subscriptionid => $subscriptionid,
memberloop => $memberloop,
routingnotes => $routingnotes,
- generalroutingnote => C4::Context->preference('RoutingListNote'),
hasRouting => check_routing($subscriptionid),
(uc(C4::Context->preference("marcflavour"))) => 1
);