X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=serials%2Frouting.pl;h=ad5fe380b664e567ad7884d2255c7f4fce75bba7;hb=0bd1f30c8c4f151eaed1a6e1e56a8c78d28c0b4b;hp=52efd84699ededbf52b987323455c87cd2948057;hpb=f408ead60b7d55eb9f6fde05097a4e99278c1d1f;p=koha.git diff --git a/serials/routing.pl b/serials/routing.pl index 52efd84699..ad5fe380b6 100755 --- a/serials/routing.pl +++ b/serials/routing.pl @@ -1,30 +1,54 @@ #!/usr/bin/perl -# Routing.pl script used to create a routing list for a serial subscription -# In this instance it is in fact a setting up of a list of reserves for the item -# where the hierarchical order can be changed on the fly and a routing list can be -# printed out -use strict; -use CGI; +# This file is part of Koha +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + + +=head1 Routing.pl + +script used to create a routing list for a serial subscription +In this instance it is in fact a setting up of a list of reserves for the item +where the hierarchical order can be changed on the fly and a routing list can be +printed out + +=cut + +use Modern::Perl; +use CGI qw ( -utf8 ); use C4::Koha; use C4::Auth; -use C4::Date; use C4::Output; use C4::Acquisition; -use C4::Interface::CGI::Output; +use C4::Output; use C4::Context; -use HTML::Template; -use C4::Search; + +use C4::Members; use C4::Serials; +use Koha::Patrons; + +use URI::Escape; my $query = new CGI; my $subscriptionid = $query->param('subscriptionid'); my $serialseq = $query->param('serialseq'); my $routingid = $query->param('routingid'); -my $bornum = $query->param('bornum'); +my $borrowernumber = $query->param('borrowernumber'); my $notes = $query->param('notes'); -my $op = $query->param('op'); +my $op = $query->param('op') || q{}; my $date_selected = $query->param('date_selected'); +$date_selected ||= q{}; my $dbh = C4::Context->dbh; if($op eq 'delete'){ @@ -32,93 +56,72 @@ if($op eq 'delete'){ } if($op eq 'add'){ - addroutingmember($bornum,$subscriptionid); + addroutingmember($borrowernumber,$subscriptionid); } if($op eq 'save'){ - my $sth = $dbh->prepare("UPDATE serial SET routingnotes = ? WHERE subscriptionid = ?"); + my $sth = $dbh->prepare('UPDATE serial SET routingnotes = ? WHERE subscriptionid = ?'); $sth->execute($notes,$subscriptionid); - print $query->redirect("routing-preview.pl?subscriptionid=$subscriptionid&issue=$date_selected"); + my $urldate = URI::Escape::uri_escape_utf8($date_selected); + print $query->redirect("routing-preview.pl?subscriptionid=$subscriptionid&issue=$urldate"); } - -my ($routing, @routinglist) = getroutinglist($subscriptionid); + +my @routinglist = getroutinglist($subscriptionid); my $subs = GetSubscription($subscriptionid); -my ($count,@serials) = old_getserials($subscriptionid); -my ($serialdates) = GetLatestSerials($subscriptionid,$count); - -my @dates; -my $i=0; -foreach my $dateseq (@$serialdates) { - $dates[$i]->{'planneddate'} = $dateseq->{'planneddate'}; - $dates[$i]->{'serialseq'} = $dateseq->{'serialseq'}; - $dates[$i]->{'serialid'} = $dateseq->{'serialid'}; - if($date_selected eq $dateseq->{'serialid'}){ - $dates[$i]->{'selected'} = ' selected'; - } else { - $dates[$i]->{'selected'} = ''; - } - $i++; +my ($count,@serials) = GetSerials($subscriptionid); +my $serialdates = GetLatestSerials($subscriptionid,$count); + +my $dates = []; +foreach my $dateseq (@{$serialdates}) { + my $d = {}; + $d->{publisheddate} = $dateseq->{publisheddate}; + $d->{serialseq} = $dateseq->{serialseq}; + $d->{serialid} = $dateseq->{serialid}; + if($date_selected eq $dateseq->{serialid}){ + $d->{selected} = ' selected'; + } else { + $d->{selected} = q{}; + } + push @{$dates}, $d; } my ($template, $loggedinuser, $cookie) -= get_template_and_user({template_name => "serials/routing.tmpl", += get_template_and_user({template_name => 'serials/routing.tt', query => $query, - type => "intranet", + type => 'intranet', authnotrequired => 0, - flagsrequired => {catalogue => 1}, + flagsrequired => {serials => 'routing'}, debug => 1, }); -# my $date; -# if($serialseq){ -# for(my $i = 0;$i<@serials; $i++){ -# if($serials[$i]->{'serialseq'} eq $serialseq){ -# $date = $serials[$i]->{'planneddate'} -# } -# } -# } else { -# $serialseq = $serials[0]->{'serialseq'}; -# $date = $serials[0]->{'planneddate'}; -# } - -# my $issue = "$serialseq ($date)"; - -my @results; -my $data; -for(my $i=0;$i<$routing;$i++){ - $data=borrdata('',$routinglist[$i]->{'borrowernumber'}); - $data->{'location'}=$data->{'streetaddress'}; - $data->{'name'}="$data->{'firstname'} $data->{'surname'}"; - $data->{'routingid'}=$routinglist[$i]->{'routingid'}; - $data->{'subscriptionid'}=$subscriptionid; - my $rankingbox = '"; - $data->{'routingbox'} = $rankingbox; - - push(@results, $data); -} -# warn Dumper(@results); -# for adding routing list -my $new; -if ($op eq 'new') { - $new = 1; -} else { -# for modify routing list default - $new => 0; + else { + $member->{name} = q{}; + } + if ($member->{surname} ) { + $member->{name} .= $member->{surname}; + } + $member->{routingid}=$routing->{routingid} || q{}; + $member->{ranking} = $routing->{ranking} || q{}; + + push(@{$member_loop}, $member); } $template->param( - title => $subs->{'bibliotitle'}, + title => $subs->{bibliotitle}, subscriptionid => $subscriptionid, - memberloop => \@results, - op => $new, - dates => \@dates, + memberloop => $member_loop, + op => $op eq 'new', + dates => $dates, routingnotes => $serials[0]->{'routingnotes'}, + hasRouting => check_routing($subscriptionid), + (uc(C4::Context->preference("marcflavour"))) => 1 + ); - output_html_with_http_headers $query, $cookie, $template->output; +output_html_with_http_headers $query, $cookie, $template->output;