From c314ef9a9f3e58f86a59d03fed7b00f79129435d Mon Sep 17 00:00:00 2001 From: Henri-Damien LAURENT Date: Sat, 19 Sep 2009 23:28:48 +0200 Subject: [PATCH] Enable warnings in serial scripts Remove some superfluous variables Simplify some loops over lists Fix generated warnings Strip whitespace from line endings Signed-off-by: Galen Charlton --- serials/acqui-search-result.pl | 45 +++++++++++++++--------------- serials/acqui-search.pl | 28 +++++++++---------- serials/checkexpiration.pl | 1 + serials/claims.pl | 12 +++++--- serials/lateissues-excel.pl | 21 ++++++-------- serials/member-search.pl | 3 +- serials/routing-preview.pl | 20 ++++++------- serials/routing.pl | 29 +++++++++++++------ serials/serial-issues.pl | 6 ++-- serials/serials-collection.pl | 12 ++++---- serials/serials-edit.pl | 41 ++++++++++++++------------- serials/serials-home.pl | 21 +++++++------- serials/subscription-add.pl | 34 ++++++++++++++++------ serials/subscription-bib-search.pl | 9 +++--- serials/subscription-detail.pl | 43 +++++++++++++++++----------- serials/subscription-renew.pl | 12 +++----- 16 files changed, 190 insertions(+), 147 deletions(-) diff --git a/serials/acqui-search-result.pl b/serials/acqui-search-result.pl index 4f410bd70c..df73738cb1 100755 --- a/serials/acqui-search-result.pl +++ b/serials/acqui-search-result.pl @@ -40,6 +40,7 @@ acqui-search-result.pl use strict; +use warnings; use C4::Auth; use C4::Biblio; use C4::Output; @@ -60,33 +61,33 @@ my ($template, $loggedinuser, $cookie) my $supplier=$query->param('supplier'); my @suppliers = GetBookSeller($supplier); -my $count = scalar @suppliers; +#my $count = scalar @suppliers; #build result page -my @loop_suppliers; -for (my $i=0; $i<$count; $i++) { - my $orders = GetPendingOrders($suppliers[$i]->{'id'}); - my $ordcount = scalar @$orders; +my $loop_suppliers = []; +for my $s (@suppliers) { + my $orders = GetPendingOrders($s->{'id'}); - my %line; - $line{aqbooksellerid} =$suppliers[$i]->{'id'}; - $line{name} = $suppliers[$i]->{'name'}; - $line{active} = $suppliers[$i]->{'active'}; - my @loop_basket; - for (my $i2=0;$i2<$ordcount;$i2++){ - my %inner_line; - $inner_line{basketno} =$orders->[$i2]->{'basketno'}; - $inner_line{total} =$orders->[$i2]->{'count(*)'}; - $inner_line{authorisedby} = $orders->[$i2]->{'authorisedby'}; - $inner_line{creationdate} = format_date($orders->[$i2]->{'creationdate'}); - $inner_line{closedate} = format_date($orders->[$i2]->{'closedate'}); - push @loop_basket, \%inner_line; + my $loop_basket = []; + for my $ord ( @{$orders} ) { + push @{$loop_basket}, { + basketno => $ord->{'basketno'}, + total => $ord->{'count(*)'}, + authorisedby => $ord->{'authorisedby'}, + creationdate => format_date($ord->{'creationdate'}), + closedate => format_date($ord->{'closedate'}), + }; } - $line{loop_basket} = \@loop_basket; - push @loop_suppliers, \%line; + push @{$loop_suppliers}, { + loop_basket => $loop_basket, + aqbooksellerid => $s->{'id'}, + name => $s->{'name'}, + active => $s->{'active'}, + }; } -$template->param(loop_suppliers => \@loop_suppliers, + +$template->param(loop_suppliers => $loop_suppliers, supplier => $supplier, - count => $count); + count => scalar @suppliers); output_html_with_http_headers $query, $cookie, $template->output; diff --git a/serials/acqui-search.pl b/serials/acqui-search.pl index 7461a8a139..408ac83740 100755 --- a/serials/acqui-search.pl +++ b/serials/acqui-search.pl @@ -19,6 +19,7 @@ use strict; +use warnings; use CGI; use C4::Auth; use C4::Output; @@ -53,18 +54,18 @@ my $totspent = 0; my $totcomtd = 0; my $totavail = 0; my @loop_budget = (); -for ( my $i = 0 ; $i < $count ; $i++ ) { +for my $r (@results) { my ( $spent, $comtd ) = - GetBookFundBreakdown( $results[$i]->{'bookfundid'} ); - my $avail = $results[$i]->{'budgetamount'} - ( $spent + $comtd ); + GetBookFundBreakdown( $r->{'bookfundid'} ); + my $avail = $r->{'budgetamount'} - ( $spent + $comtd ); my %line; - $line{bookfundname} = $results[$i]->{'bookfundname'}; - $line{budgetamount} = $results[$i]->{'budgetamount'}; + $line{bookfundname} = $r->{'bookfundname'}; + $line{budgetamount} = $r->{'budgetamount'}; $line{spent} = sprintf( "%.2f", $spent ); $line{comtd} = sprintf( "%.2f", $comtd ); $line{avail} = sprintf( "%.2f", $avail ); push @loop_budget, \%line; - $total += $results[$i]->{'budgetamount'}; + $total += $r->{'budgetamount'}; $totspent += $spent; $totcomtd += $comtd; $totavail += $avail; @@ -72,20 +73,19 @@ for ( my $i = 0 ; $i < $count ; $i++ ) { #currencies my @rates = GetCurrencies(); -$count = scalar @rates; -my @loop_currency = (); -for ( my $i = 0 ; $i < $count ; $i++ ) { - my %line; - $line{currency} = $rates[$i]->{'currency'}; - $line{rate} = $rates[$i]->{'rate'}; - push @loop_currency, \%line; +my $loop_currency = []; +for my $r (@rates) { + push @{$loop_currency}, { + currency => $r->{'currency'}, + rate => $r->{'rate'}, + }; } $template->param( classlist => $classlist, type => 'intranet', loop_budget => \@loop_budget, - loop_currency => \@loop_currency, + loop_currency => $loop_currency, total => sprintf( "%.2f", $total ), totspent => sprintf( "%.2f", $totspent ), totcomtd => sprintf( "%.2f", $totcomtd ), diff --git a/serials/checkexpiration.pl b/serials/checkexpiration.pl index 5461aa6946..865e163a72 100755 --- a/serials/checkexpiration.pl +++ b/serials/checkexpiration.pl @@ -43,6 +43,7 @@ The date to filter on. =cut use strict; +use warnings; use CGI; use C4::Auth; use C4::Serials; # GetExpirationDate diff --git a/serials/claims.pl b/serials/claims.pl index b0a1e123c6..3c0c4fc804 100755 --- a/serials/claims.pl +++ b/serials/claims.pl @@ -1,6 +1,7 @@ #!/usr/bin/perl use strict; +use warnings; use CGI; use C4::Auth; use C4::Serials; @@ -44,7 +45,10 @@ foreach (keys %$letters){ } my $letter=((scalar(@letters)>1) || ($letters[0]->{name}||$letters[0]->{code})); -my ($count2, @missingissues) = GetLateOrMissingIssues($supplierid,$serialid,$order) if $supplierid; +my ($count2, @missingissues); +if ($supplierid) { + ($count2, @missingissues) = GetLateOrMissingIssues($supplierid,$serialid,$order); +} my $CGIsupplier=CGI::scrolling_list( -name => 'supplierid', -id => 'supplierid', @@ -58,13 +62,13 @@ my ($singlesupplier,@supplierinfo); if($supplierid){ (@supplierinfo)=GetBookSeller($supplierid); } else { # set up supplierid for the claim links out of main table if all suppliers is chosen - for(my $i=0; $i<@missingissues;$i++){ - $missingissues[$i]->{'supplierid'} = getsupplierbyserialid($missingissues[$i]->{'serialid'}); + for my $mi (@missingissues){ + $mi->{supplierid} = getsupplierbyserialid($mi->{serialid}); } } my $preview=0; -if($op eq 'preview'){ +if($op && $op eq 'preview'){ $preview = 1; } diff --git a/serials/lateissues-excel.pl b/serials/lateissues-excel.pl index 7433a6711d..6110bcdda2 100755 --- a/serials/lateissues-excel.pl +++ b/serials/lateissues-excel.pl @@ -1,6 +1,7 @@ #!/usr/bin/perl use strict; +use warnings; use CGI; use C4::Auth; use C4::Serials; @@ -28,7 +29,7 @@ my $csv = Text::CSV_XS->new( my $query = new CGI; my $supplierid = $query->param('supplierid'); my @serialid = $query->param('serialid'); -my $op = $query->param('op'); +my $op = $query->param('op') || q{}; my $serialidcount = @serialid; my %supplierlist = GetSuppliersWithLateIssues; @@ -38,13 +39,9 @@ my @loop1; my ($count, @lateissues); if($op ne 'claims'){ ($count, @lateissues) = GetLateIssues($supplierid); - for (my $i=0;$i<@lateissues;$i++){ - my @rows1 = ($lateissues[$i]->{'name'}, # lets build up a row - $lateissues[$i]->{'title'}, - $lateissues[$i]->{'serialseq'}, - $lateissues[$i]->{'planneddate'}, - ); - push (@loop1, \@rows1); + for my $issue (@lateissues){ + push @loop1, + [ $issue->{'name'}, $issue->{'title'}, $issue->{'serialseq'}, $issue->{'planneddate'},]; } } my $totalcount2 = 0; @@ -55,7 +52,7 @@ for (my $k=0;$k<@serialid;$k++){ for (my $j=0;$j<@missingissues;$j++){ my @rows2 = ($missingissues[$j]->{'name'}, # lets build up a row - $missingissues[$j]->{'title'}, + $missingissues[$j]->{'title'}, $missingissues[$j]->{'serialseq'}, $missingissues[$j]->{'planneddate'}, ); @@ -72,7 +69,7 @@ if($supplierid){ if($missingissues[0]->{'name'}){ # if exists display supplier name in heading for neatness # not necessarily needed as the name will appear in supplier column also $heading = "FOR $missingissues[0]->{'name'}"; - $filename = "_$missingissues[0]->{'name'}"; + $filename = "_$missingissues[0]->{'name'}"; } } @@ -86,7 +83,7 @@ if($op ne 'claims'){ print "SUPPLIER,TITLE,ISSUE NUMBER,LATE SINCE\n"; for my $row ( @loop1 ) { - + $csv->combine(@$row); my $string = $csv->string; print $string, "\n"; @@ -102,7 +99,7 @@ if($serialidcount == 1){ print "SUPPLIER,TITLE,ISSUE NUMBER,LATE SINCE\n"; for my $row ( @loop2 ) { - + $csv->combine(@$row); my $string = $csv->string; print $string, "\n"; diff --git a/serials/member-search.pl b/serials/member-search.pl index fbb9a6fd93..a2063f8823 100755 --- a/serials/member-search.pl +++ b/serials/member-search.pl @@ -18,10 +18,11 @@ =head1 member-search.pl Member Search.pl script used to search for members to add to a routing list - + =cut use strict; +use warnings; use CGI; use C4::Auth; # get_template_and_user use C4::Output; diff --git a/serials/routing-preview.pl b/serials/routing-preview.pl index ad57782ca4..d89b28c494 100755 --- a/serials/routing-preview.pl +++ b/serials/routing-preview.pl @@ -4,6 +4,7 @@ # lets one print out routing slip and create (in this instance) the heirarchy # of reserves for the serial use strict; +use warnings; use CGI; use C4::Koha; use C4::Auth; @@ -32,14 +33,14 @@ my $dbh = C4::Context->dbh; if($delete){ delroutingmember($routingid,$subscriptionid); my $sth = $dbh->prepare("UPDATE serial SET routingnotes = NULL WHERE subscriptionid = ?"); - $sth->execute($subscriptionid); - print $query->redirect("routing.pl?subscriptionid=$subscriptionid&op=new"); + $sth->execute($subscriptionid); + print $query->redirect("routing.pl?subscriptionid=$subscriptionid&op=new"); } if($edit){ print $query->redirect("routing.pl?subscriptionid=$subscriptionid"); } - + my ($routing, @routinglist) = getroutinglist($subscriptionid); my $subs = GetSubscription($subscriptionid); my ($count,@serials) = GetSerials($subscriptionid); @@ -48,7 +49,7 @@ my ($template, $loggedinuser, $cookie); if($ok){ # get biblio information.... my $biblio = $subs->{'biblionumber'}; - + # get existing reserves ..... my ($count,$reserves) = GetReservesFromBiblionumber($biblio); my $totalcount = $count; @@ -76,8 +77,8 @@ if($ok){ AddReserve($branch,$routinglist[$i]->{'borrowernumber'},$biblio,$const,\@bibitems,$routinglist[$i]->{'ranking'},$notes,$title); } } - - + + ($template, $loggedinuser, $cookie) = get_template_and_user({template_name => "serials/routing-preview-slip.tmpl", query => $query, @@ -96,9 +97,8 @@ if($ok){ flagsrequired => {serials => 1}, debug => 1, }); -} +} -# my $firstdate = "$serials[0]->{'serialseq'} ($serials[0]->{'planneddate'})"; my @results; my $data; for(my $i=0;$i<$routing;$i++){ @@ -112,13 +112,13 @@ for(my $i=0;$i<$routing;$i++){ my $routingnotes = $serials[0]->{'routingnotes'}; $routingnotes =~ s/\n/\
/g; - + $template->param( title => $subs->{'bibliotitle'}, issue => $issue, issue_escaped => URI::Escape::uri_escape($issue), subscriptionid => $subscriptionid, - memberloop => \@results, + memberloop => \@results, routingnotes => $routingnotes, ); diff --git a/serials/routing.pl b/serials/routing.pl index 11fcf6c866..d49d450d4b 100755 --- a/serials/routing.pl +++ b/serials/routing.pl @@ -26,6 +26,7 @@ printed out =cut use strict; +use warnings; use CGI; use C4::Koha; use C4::Auth; @@ -46,7 +47,7 @@ my $serialseq = $query->param('serialseq'); my $routingid = $query->param('routingid'); 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'); my $dbh = C4::Context->dbh; @@ -63,7 +64,7 @@ if($op eq 'save'){ my $urldate = URI::Escape::uri_escape($date_selected); print $query->redirect("routing-preview.pl?subscriptionid=$subscriptionid&issue=$urldate"); } - + my ($routing, @routinglist) = getroutinglist($subscriptionid); my $subs = GetSubscription($subscriptionid); my ($count,@serials) = GetSerials($subscriptionid); @@ -104,26 +105,38 @@ my ($template, $loggedinuser, $cookie) # } # my $issue = "$serialseq ($date)"; - + my @results; my $data; for(my $i=0;$i<$routing;$i++){ $data=GetMember($routinglist[$i]->{'borrowernumber'},'borrowernumber'); $data->{'location'}=$data->{'branchcode'}; - $data->{'name'}="$data->{'firstname'} $data->{'surname'}"; + if ($data->{firstname} ) { + $data->{name} = $data->{firstname} . q| |; + } + else { + $data->{name} = q{}; + } + if ($data->{surname} ) { + $data->{name} .= $data->{surname}; + } $data->{'routingid'}=$routinglist[$i]->{'routingid'}; $data->{'subscriptionid'}=$subscriptionid; - my $rankingbox = ''; for(my $j=1; $j <= $routing; $j++) { $rankingbox .= ""; } $rankingbox .= ""; $data->{'routingbox'} = $rankingbox; - + push(@results, $data); } @@ -139,7 +152,7 @@ if ($op eq 'new') { $template->param( title => $subs->{'bibliotitle'}, subscriptionid => $subscriptionid, - memberloop => \@results, + memberloop => \@results, op => $new, dates => \@dates, routingnotes => $serials[0]->{'routingnotes'}, diff --git a/serials/serial-issues.pl b/serials/serial-issues.pl index 127d4c55c0..842876a688 100755 --- a/serials/serial-issues.pl +++ b/serials/serial-issues.pl @@ -42,6 +42,7 @@ the biblionumber this script has to give more infos. =cut use strict; +use warnings; use CGI; use C4::Auth; use C4::Koha; @@ -57,7 +58,6 @@ my $selectview = $query->param('selectview'); $selectview = C4::Context->preference("SubscriptionHistory") unless $selectview; my $sth; -# my $id; my ($template, $loggedinuser, $cookie); my $biblionumber = $query->param('biblionumber'); if ($selectview eq "full"){ @@ -75,10 +75,10 @@ if ($selectview eq "full"){ flagsrequired => {serials => 1}, debug => 1, }); - + # replace CR by
in librarian note # $subscription->{opacnote} =~ s/\n/\/g; - + $template->param( biblionumber => $query->param('biblionumber'), years => $subscriptions, diff --git a/serials/serials-collection.pl b/serials/serials-collection.pl index baef9b9d7c..c80886b3c0 100755 --- a/serials/serials-collection.pl +++ b/serials/serials-collection.pl @@ -19,6 +19,7 @@ use strict; +use warnings; use CGI; use C4::Auth; use C4::Koha; @@ -50,8 +51,9 @@ my @subscriptionid = $query->param('subscriptionid'); my $subscriptiondescs ; my $subscriptions; -if($op eq "gennext" && @subscriptionid){ - my $subscriptionid = @subscriptionid[0]; +$op ||= q{}; +if($op eq 'gennext' && @subscriptionid){ + my $subscriptionid = $subscriptionid[0]; my $subscription = GetSubscription($subscriptionid); my $sth = $dbh->prepare("SELECT publisheddate, serialid, serialseq, planneddate @@ -69,13 +71,13 @@ if($op eq "gennext" && @subscriptionid){ $newserialseq, $newlastvalue1, $newlastvalue2, $newlastvalue3, $newinnerloop1, $newinnerloop2, $newinnerloop3 ) = GetNextSeq($subscription); - + ## We generate the next publication date my $nextpublisheddate = GetNextDate( $expected->{planneddate}->output('iso'), $subscription ); ## Creating the new issue NewIssue( $newserialseq, $subscriptionid, $subscription->{'biblionumber'}, 1, $nextpublisheddate, $nextpublisheddate ); - + ## Updating the subscription seq status my $squery = "UPDATE subscription SET lastvalue1=?, lastvalue2=?, lastvalue3=?, innerloop1=?, innerloop2=?, innerloop3=? WHERE subscriptionid = ?"; @@ -103,7 +105,7 @@ if (@subscriptionid){ $subs->{ "status" . $subs->{'status'} } = 1; $subs->{startdate} = format_date( $subs->{startdate} ); $subs->{histstartdate} = format_date( $subs->{histstartdate} ); - if ( $subs->{enddate} eq '0000-00-00' ) { + if ( !defined $subs->{enddate} || $subs->{enddate} eq '0000-00-00' ) { $subs->{enddate} = ''; } else { diff --git a/serials/serials-edit.pl b/serials/serials-edit.pl index 9994e445b4..08eae33f88 100755 --- a/serials/serials-edit.pl +++ b/serials/serials-edit.pl @@ -28,7 +28,7 @@ serials-recieve.pl =item op op can be : - * modsubscriptionhistory :to modify the subscription history + * modsubscriptionhistory :to modify the subscription history * serialchangestatus :to modify the status of this subscription =item subscriptionid @@ -63,6 +63,7 @@ op can be : use strict; +use warnings; use CGI; use C4::Auth; use C4::Dates qw/format_date format_date_in_iso/; @@ -90,7 +91,6 @@ if (scalar(@subscriptionids)==1 && index($subscriptionids[0],",")>0){ } my @errors; my @errseq; -my $redirectstring; # If user comes from subscription details unless (@serialids){ foreach my $subscriptionid (@subscriptionids){ @@ -107,7 +107,7 @@ unless (@serialids){ unless (scalar(@serialids)){ my $string="serials-collection.pl?subscriptionid=".join(",",@subscriptionids); $string=~s/,$//; -# warn $string; +# warn $string; print $query->redirect($string); } my ($template, $loggedinuser, $cookie) @@ -130,7 +130,7 @@ foreach my $tmpserialid (@serialids){ $data->{planneddate}=format_date($data->{planneddate}); $data->{'editdisable'}=((HasSubscriptionExpired($data->{subscriptionid})&& $data->{'status1'})||$data->{'cannotedit'}); push @serialdatalist,$data; - $processedserialid{$tmpserialid}=1; + $processedserialid{$tmpserialid}=1; } my $bibdata=GetBiblioData($serialdatalist[0]->{'biblionumber'}); @@ -143,7 +143,7 @@ foreach my $subscriptionid (@subscriptionids){ next unless (defined($subscriptionid) && !$processedsubscriptionid{$subscriptionid}); my $cell; if ($serialdatalist[0]->{'serialsadditems'}){ - #Create New empty item + #Create New empty item $cell = PrepareItemrecordDisplay( $serialdatalist[0]->{'biblionumber'},'', GetSubscription($subscriptionid)); $cell->{serialsadditems} = 1; @@ -157,12 +157,12 @@ foreach my $subscriptionid (@subscriptionids){ 'abouttoexpire'=>abouttoexpire($subscriptionid), 'subscriptionexpired'=>HasSubscriptionExpired($subscriptionid), }; - $processedsubscriptionid{$subscriptionid}=1; + $processedsubscriptionid{$subscriptionid}=1; } $template->param(newserialloop=>\@newserialloop); $template->param(subscriptions=>\@subscriptionloop); -if ($op eq 'serialchangestatus') { +if ($op and $op eq 'serialchangestatus') { # my $sth = $dbh->prepare("select status from serial where serialid=?"); my $newserial; for (my $i=0;$i<=$#serialids;$i++) { @@ -247,15 +247,18 @@ if ($op eq 'serialchangestatus') { } } # check for item barcode # being unique - my $exists = GetItemnumberFromBarcode($record->subfield($barcodetagfield,$barcodetagsubfield)) if ($record->subfield($barcodetagfield,$barcodetagsubfield)); - # push @errors,"barcode_not_unique" if($exists); + my $exists; + if ($record->subfield($barcodetagfield,$barcodetagsubfield)) { + $exists = GetItemnumberFromBarcode($record->subfield($barcodetagfield,$barcodetagsubfield)); + } + # push @errors,"barcode_not_unique" if($exists); # if barcode exists, don't create, but report The problem. - if ($exists){ - push @errors,"barcode_not_unique" if($exists); - push @errseq,{"serialseq"=>$serialseqs[$index]}; + if ($exists){ + push @errors,"barcode_not_unique" if($exists); + push @errseq,{"serialseq"=>$serialseqs[$index]}; } else { - my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$itemhash{$item}->{'bibnum'}); - AddItem2Serial($itemhash{$item}->{'serial'},$itemnumber); + my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$itemhash{$item}->{'bibnum'}); + AddItem2Serial($itemhash{$item}->{'serial'},$itemnumber); } } else { #modify item @@ -264,7 +267,7 @@ if ($op eq 'serialchangestatus') { } } } -# ### FIXME this part of code is not very pretty. Nor is it very efficient... There MUST be a more perlish way to write it. But it works. +# ### FIXME this part of code is not very pretty. Nor is it very efficient... There MUST be a more perlish way to write it. But it works. # my $redirect ="serials-home.pl?"; # $redirect.=join("&",map{"serialseq=".$_} @serialseqs); # $redirect.="&".join("&",map{"planneddate=".$_} @planneddates); @@ -276,9 +279,9 @@ if ($op eq 'serialchangestatus') { $template->param("Errors" => 1); if (scalar(@errseq)>0){ $template->param("barcode_not_unique" => 1); - $template->param('errseq'=>\@errseq); - } - } else { + $template->param('errseq'=>\@errseq); + } + } else { my $redirect ="serials-collection.pl?"; my %hashsubscription; foreach (@subscriptionids) { @@ -286,7 +289,7 @@ if ($op eq 'serialchangestatus') { } $redirect.=join("&",map{"subscriptionid=".$_} sort keys %hashsubscription); print $query->redirect("$redirect"); - } + } } $template->param( diff --git a/serials/serials-home.pl b/serials/serials-home.pl index 7b0c464ac9..ec2ddee948 100755 --- a/serials/serials-home.pl +++ b/serials/serials-home.pl @@ -41,6 +41,7 @@ this script is the main page for serials/ =cut use strict; +use warnings; use CGI; use C4::Auth; use C4::Serials; @@ -79,14 +80,14 @@ if (@serialseqs){ ### FIXME This limitation that a serial must be given a title may not be very efficient for some library who do not update serials titles. push @information, { serialseq=>$seq, - publisheddate=>$publisheddates[$index], - planneddate=>$planneddates[$index], - notes=>$notes[$index], + publisheddate=>$publisheddates[$index], + planneddate=>$planneddates[$index], + notes=>$notes[$index], status=>$status[$index] - } - } - $index++; - } + } + } + $index++; + } $template->param('information'=>\@information); } my @subscriptions; @@ -96,10 +97,8 @@ if ($searched){ # to toggle between create or edit routing list options if ($routing) { - for ( my $i = 0 ; $i < @subscriptions ; $i++ ) { - my $checkrouting = - check_routing( $subscriptions[$i]->{'subscriptionid'} ); - $subscriptions[$i]->{'routingedit'} = $checkrouting; + for my $subscription ( @subscriptions) { + $subscription->{routingedit} = check_routing( $subscription->{subscriptionid} ); } } diff --git a/serials/subscription-add.pl b/serials/subscription-add.pl index 9d3f1c6c3f..4b50819678 100755 --- a/serials/subscription-add.pl +++ b/serials/subscription-add.pl @@ -57,7 +57,7 @@ my ($template, $loggedinuser, $cookie) my $sub_on; my @subscription_types = ( 'issues', 'weeks', 'months' - ); + ); my @sub_type_data; my $letters = GetLetters('serial'); @@ -85,14 +85,14 @@ if ($op eq 'mod' || $op eq 'dup' || $op eq 'modsubscription') { if ($subs->{'cannotedit'} && $op eq 'mod'){ warn "Attempt to modify subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed"; print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid"); - } + } $firstissuedate = $subs->{firstacquidate}; # in iso format. for (qw(startdate firstacquidate histstartdate enddate histenddate)) { # TODO : Handle date formats properly. if ($subs->{$_} eq '0000-00-00') { $subs->{$_} = '' } else { - $subs->{$_} = format_date($subs->{$_}); + $subs->{$_} = format_date($subs->{$_}); } } $subs->{'letter'}='' unless($subs->{'letter'}); @@ -109,7 +109,7 @@ if ($op eq 'mod' || $op eq 'dup' || $op eq 'modsubscription') { last; } } - + $template->param($subs); $template->param( $op => 1, @@ -124,9 +124,9 @@ if ($op eq 'mod' || $op eq 'dup' || $op eq 'modsubscription') { } } -my $onlymine=C4::Context->preference('IndependantBranches') && - C4::Context->userenv && - C4::Context->userenv->{flags}!=1 && +my $onlymine=C4::Context->preference('IndependantBranches') && + C4::Context->userenv && + C4::Context->userenv->{flags} % 2 !=1 && C4::Context->userenv->{branch}; my $branches = GetBranches($onlymine); my @branchloop; @@ -280,7 +280,7 @@ if ($op eq 'addsubscription') { # if we have not received any issues yet, then we also must change the firstacquidate for the subs. $firstissuedate = $nextacquidate if($nextexpected->{isfirstissue}); } - + if ($history_only) { ModSubscriptionHistory ($subscriptionid,$histstartdate,$histenddate,$recievedlist,$missinglist,$opacnote,$librariannote); } else { @@ -310,7 +310,7 @@ if ($op eq 'addsubscription') { $row{'selected'} = ''; } push( @sub_type_data, \%row ); - } + } $template->param(subtype => \@sub_type_data, ); @@ -324,3 +324,19 @@ if ($op eq 'addsubscription') { } output_html_with_http_headers $query, $cookie, $template->output; } + +sub letter_loop { + my ($selected_letter, $template) = @_; + my $letters = GetLetters('serial'); + my @letterloop; + foreach my $thisletter (keys %$letters) { + my $selected = $thisletter eq $selected_letter ? 1 : 0; + push @letterloop, { + value => $thisletter, + selected => $selected, + lettername => $letters->{$thisletter}, + }; + } + $template->param(letterloop => \@letterloop) if @letterloop; + return; +} diff --git a/serials/subscription-bib-search.pl b/serials/subscription-bib-search.pl index e486f0c5a4..fc70f09f94 100755 --- a/serials/subscription-bib-search.pl +++ b/serials/subscription-bib-search.pl @@ -48,6 +48,7 @@ to multipage gestion. use strict; +use warnings; use CGI; use C4::Koha; @@ -77,7 +78,7 @@ if ($op eq "do_search" && $query) { my $index = C4::Context->preference("item-level_itypes") ? 'itype' : 'itemtype'; $query .= " AND $index=$itemtypelimit"; } - + $resultsperpage= $input->param('resultsperpage'); $resultsperpage = 20 if(!defined $resultsperpage); @@ -91,7 +92,7 @@ if ($op eq "do_search" && $query) { exit; } my @results; - + for(my $i=0;$i<$total;$i++) { my %resultsloop; my $marcrecord = MARC::File::USMARC::decode($marcrecords->[$i]); @@ -108,7 +109,7 @@ if ($op eq "do_search" && $query) { push @results, \%resultsloop; } - + ($template, $loggedinuser, $cookie) = get_template_and_user({template_name => "serials/result.tmpl", query => $input, @@ -144,7 +145,7 @@ if ($op eq "do_search" && $query) { } } } - + my $from = 0; $from = $startfrom*$resultsperpage+1 if($total_hits > 0); my $to; diff --git a/serials/subscription-detail.pl b/serials/subscription-detail.pl index 46ee3f8fd0..87127e2671 100755 --- a/serials/subscription-detail.pl +++ b/serials/subscription-detail.pl @@ -16,6 +16,7 @@ # Suite 330, Boston, MA 02111-1307 USA use strict; +use warnings; use CGI; use C4::Auth; use C4::Koha; @@ -24,25 +25,23 @@ use C4::Serials; use C4::Output; use C4::Context; use Date::Calc qw/Today Day_of_Year Week_of_Year Add_Delta_Days/; -#use Date::Manip; +use Carp; my $query = new CGI; my $op = $query->param('op'); my $dbh = C4::Context->dbh; -my $sth; -# my $id; my ($template, $loggedinuser, $cookie, $hemisphere); my $subscriptionid = $query->param('subscriptionid'); -my $subs = &GetSubscription($subscriptionid); +my $subs = GetSubscription($subscriptionid); $subs->{enddate} = GetExpirationDate($subscriptionid); -if ($op eq 'del') { +if ($op && $op eq 'del') { if ($subs->{'cannotedit'}){ - warn "Attempt to delete subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed"; + carp "Attempt to delete subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed"; print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid"); - } - &DelSubscription($subscriptionid); + } + DelSubscription($subscriptionid); print "Content-Type: text/html\n\n"; exit; } @@ -81,24 +80,34 @@ $subs->{abouttoexpire} = abouttoexpire($subs->{subscriptionid}); $template->param($subs); $template->param(biblionumber_for_new_subscription => $subs->{bibnum}); +my @irregular_issues = split /,/, $subs->{irregularity}; +if (! $subs->{numberpattern}) { + $subs->{numberpattern} = q{}; +} +if (! $subs->{dow}) { + $subs->{dow} = q{}; +} +if (! $subs->{periodicity}) { + $subs->{periodicity} = '0'; +} $template->param( subscriptionid => $subscriptionid, routing => $routing, serialslist => \@serialslist, totalissues => $totalissues, hemisphere => $hemisphere, - cannotedit =>(C4::Context->preference('IndependantBranches') && - C4::Context->userenv && - C4::Context->userenv->{flags} !=1 && + cannotedit =>(C4::Context->preference('IndependantBranches') && + C4::Context->userenv && + C4::Context->userenv->{flags} % 2 !=1 && C4::Context->userenv->{branch} && $subs->{branchcode} && (C4::Context->userenv->{branch} ne $subs->{branchcode})), - "periodicity".($subs->{periodicity}?$subs->{periodicity}:'0') => 1, - "arrival".$subs->{dow} => 1, - "numberpattern".$subs->{numberpattern} => 1, - intranetstylesheet => C4::Context->preference("intranetstylesheet"), - intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"), - irregular_issues => scalar(split(/,/,$subs->{irregularity})), + 'periodicity' . $subs->{periodicity} => 1, + 'arrival' . $subs->{dow} => 1, + 'numberpattern' . $subs->{numberpattern} => 1, + intranetstylesheet => C4::Context->preference('intranetstylesheet'), + intranetcolorstylesheet => C4::Context->preference('intranetcolorstylesheet'), + irregular_issues => scalar @irregular_issues, ); output_html_with_http_headers $query, $cookie, $template->output; diff --git a/serials/subscription-renew.pl b/serials/subscription-renew.pl index 10c1205d63..7402af70d6 100755 --- a/serials/subscription-renew.pl +++ b/serials/subscription-renew.pl @@ -1,5 +1,4 @@ #!/usr/bin/perl -# WARNING: 4-character tab stops here # Copyright 2000-2002 Katipo Communications # @@ -45,6 +44,7 @@ Id of the subscription this script has to renew =cut use strict; +use warnings; use CGI; use C4::Koha; @@ -79,14 +79,14 @@ if ( $op eq "renew" ) { $query->param('startdate'), $query->param('numberlength'), $query->param('weeklength'), $query->param('monthlength'), $query->param('note') - ); + ); } my $subscription = GetSubscription($subscriptionid); if ($subscription->{'cannotedit'}){ warn "Attempt to renew subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed"; print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid"); -} +} $template->param( startdate => format_date( @@ -99,12 +99,8 @@ $template->param( subscriptionid => $subscriptionid, bibliotitle => $subscription->{bibliotitle}, $op => 1, - popup => ($query->param('mode')eq "popup"), + popup => ($query->param('mode')eq "popup"), ); # Print the page output_html_with_http_headers $query, $cookie, $template->output; - -# Local Variables: -# tab-width: 4 -# End: -- 2.39.5