[Koha-patches] [PATCH 1/3] Remove unused or unnecessary variables from claims processing

Colin Campbell colin.campbell at ptfs-europe.com
Fri Nov 20 20:41:07 CET 2009


Moved generation of dropdown to template from script
Removed the unnecessary count variable returned by
 C4::Serials::GetLateIssues
 C4::Serials::GetLateMissingIssues
---
 C4/Serials.pm                                      |   37 +++++++-------------
 .../prog/en/modules/serials/claims.tmpl            |   10 ++++--
 serials/claims.pl                                  |   31 +++++-----------
 serials/lateissues-excel.pl                        |   14 +++----
 4 files changed, 36 insertions(+), 56 deletions(-)

diff --git a/C4/Serials.pm b/C4/Serials.pm
index 0745d3c..8cf80e0 100644
--- a/C4/Serials.pm
+++ b/C4/Serials.pm
@@ -81,7 +81,8 @@ Give all XYZ functions
 this function get all suppliers with late issues.
 
 return :
-the supplierlist into a hash. this hash containts id & name of the supplier
+an array_ref of suppliers each entry is a hash_ref containing id and name
+the array is in name order
 
 =back
 
@@ -92,19 +93,13 @@ sub GetSuppliersWithLateIssues {
     my $query = qq|
         SELECT DISTINCT id, name
         FROM            subscription 
-	LEFT JOIN       serial ON serial.subscriptionid=subscription.subscriptionid
+        LEFT JOIN       serial ON serial.subscriptionid=subscription.subscriptionid
         LEFT JOIN       aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
         WHERE           subscription.subscriptionid = serial.subscriptionid
         AND             (planneddate < now() OR serial.STATUS = 3 OR serial.STATUS = 4)
         ORDER BY name
     |;
-    my $sth = $dbh->prepare($query);
-    $sth->execute;
-    my %supplierlist;
-    while ( my ( $id, $name ) = $sth->fetchrow ) {
-        $supplierlist{$id} = $name;
-    }
-    return %supplierlist;
+    return $dbh->selectall_arrayref($query, { Slice => {} });
 }
 
 =head2 GetLateIssues
@@ -156,16 +151,14 @@ sub GetLateIssues {
     my @issuelist;
     my $last_title;
     my $odd   = 0;
-    my $count = 0;
     while ( my $line = $sth->fetchrow_hashref ) {
         $odd++ unless $line->{title} eq $last_title;
         $line->{title} = "" if $line->{title} eq $last_title;
         $last_title = $line->{title} if ( $line->{title} );
         $line->{planneddate} = format_date( $line->{planneddate} );
-        $count++;
         push @issuelist, $line;
     }
-    return $count, @issuelist;
+    return @issuelist;
 }
 
 =head2 GetSubscriptionHistoryFromSubscriptionId
@@ -1887,12 +1880,11 @@ sub DelIssue {
 
 =over 4
 
-($count, at issuelist) = &GetLateMissingIssues($supplierid,$serialid)
+ at issuelist = &GetLateMissingIssues($supplierid,$serialid)
 
 this function select missing issues on database - where serial.status = 4 or serial.status=3 or planneddate<now
 
 return :
-a count of the number of missing issues
 the issuelist into a table. Each line of this table containts a ref to a hash which it containts
 name,title,planneddate,serialseq,serial.subscriptionid from tables : subscription, serial & biblio
 
@@ -1964,20 +1956,17 @@ ORDER BY $order"
     }
     $sth->execute;
     my @issuelist;
-    my $last_title;
-    my $odd   = 0;
-    my $count = 0;
     while ( my $line = $sth->fetchrow_hashref ) {
-        $odd++ unless $line->{title} eq $last_title;
-        $last_title = $line->{title} if ( $line->{title} );
-        $line->{planneddate} = format_date( $line->{planneddate} );
-        $line->{claimdate}   = format_date( $line->{claimdate} );
+        if ($line->{planneddate}) {
+            $line->{planneddate} = format_date( $line->{planneddate} );
+        }
+        if ($line->{claimdate}) {
+            $line->{claimdate}   = format_date( $line->{claimdate} );
+        }
         $line->{"status".$line->{status}}   = 1;
-        $line->{'odd'} = 1 if $odd % 2;
-        $count++;
         push @issuelist, $line;
     }
-    return $count, @issuelist;
+    return @issuelist;
 }
 
 =head2 removeMissingIssue
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tmpl
index 8ee9aed..6ec90ac 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tmpl
@@ -44,7 +44,11 @@
 	<!-- TMPL_UNLESS NAME="letter" --><div class="dialog alert">No claims notice defined. <a href="/cgi-bin/koha/tools/letter.pl">Please define one</a>.</div><!-- /TMPL_UNLESS -->
     <form id="claims" name="claims" action="claims.pl" method="post">
     <fieldset><label for="supplierid">View: </label>
-        <!-- TMPL_VAR name="CGIsupplier" -->
+        <select id="supplierid" size="1" name="supplierid">
+        <!-- TMPL_LOOP NAME="supplier_loop" -->
+          <option value="<!-- TMPL_VAR NAME="id" -->"><!-- TMPL_VAR NAME="name" --></option>
+        <!-- /TMPL_LOOP -->
+        </select>
         <input type="submit" value="OK" />
         <!-- TMPL_IF name="phone" -->Phone: <!-- TMPL_VAR name="phone" --><!-- /TMPL_IF -->
         <!-- TMPL_IF name="booksellerfax" -->Fax: <!-- TMPL_VAR name="booksellerfax" --><!-- /TMPL_IF -->
@@ -52,7 +56,7 @@
     </fieldset>
 </form>
 
-   <!-- TMPL_IF NAME="missingissues" -->	
+   <!-- TMPL_IF NAME="missingissues" -->
     <form action="claims.pl" method="post">
         <input type="hidden" name="order" value="<!--TMPL_VAR Name="order"-->" />
             <h3>Missing Issues</h3>
@@ -117,9 +121,9 @@
                 <!--/TMPL_LOOP-->
             </select> <input type="submit" name="submit" class="button" value="Send letter" /></fieldset>
             <!--/TMPL_IF-->
+        </form>
 <!-- /TMPL_IF -->
 
-        </form>
 <!-- TMPL_ELSE -->
 
 <div id="doc" class="yui-t7">
diff --git a/serials/claims.pl b/serials/claims.pl
index cbb6fd6..73d151f 100755
--- a/serials/claims.pl
+++ b/serials/claims.pl
@@ -18,8 +18,7 @@ my $op = $input->param('op');
 my $claimletter = $input->param('claimletter');
 my $supplierid = $input->param('supplierid');
 my $order = $input->param('order');
-my %supplierlist = GetSuppliersWithLateIssues;
-my @select_supplier;
+my $supplierlist = GetSuppliersWithLateIssues;
 
 # open template first (security & userenv set here)
 my ($template, $loggedinuser, $cookie)
@@ -31,33 +30,24 @@ my ($template, $loggedinuser, $cookie)
             debug => 1,
             });
 
-foreach my $supplierid (sort {$supplierlist{$a} cmp $supplierlist{$b} } keys %supplierlist){
-        my ($count, @dummy) = GetLateOrMissingIssues($supplierid,"",$order);
-        my $counting = $count;
-        $supplierlist{$supplierid} = $supplierlist{$supplierid}." ($counting)";
-	push @select_supplier, $supplierid
+for my $supplier ( @{$supplierlist} ) {
+        my @dummy = GetLateOrMissingIssues($supplier->{id},q{},$order);
+        my $counting = scalar @dummy;
+        $supplier->{name} .= " ($counting)";
 }
 
 my $letters = GetLetters("claimissues");
 my @letters;
-foreach (keys %$letters){
+foreach (keys %{$letters}){
     push @letters ,{code=>$_,name=> $letters->{$_}};
 }
 
 my $letter=((scalar(@letters)>1) || ($letters[0]->{name}||$letters[0]->{code}));
-my ($count2, @missingissues);
+my  @missingissues;
 if ($supplierid) {
-    ($count2, @missingissues) = GetLateOrMissingIssues($supplierid,$serialid,$order);
+    @missingissues = GetLateOrMissingIssues($supplierid,$serialid,$order);
 }
 
-my $CGIsupplier=CGI::scrolling_list( -name     => 'supplierid',
-			-id        => 'supplierid',
-			-values   => \@select_supplier,
-			-default  => $supplierid,
-			-labels   => \%supplierlist,
-			-size     => 1,
-			-multiple => 0 );
-
 my ($singlesupplier, at supplierinfo);
 if($supplierid){
    (@supplierinfo)=GetBookSeller($supplierid);
@@ -75,14 +65,13 @@ if($op && $op eq 'preview'){
     if (@serialnums) { # i.e. they have been flagged to generate claims
         SendAlerts('claimissues',\@serialnums,$input->param("letter_code"));
         my $cntupdate=UpdateClaimdateIssues(\@serialnums);
-        ### $cntupdate SHOULD be equal to scalar(@$serialnums)  TODO so what do we do about it??
+        ### $cntupdate SHOULD be equal to scalar(@$serialnums)
     }
 }
-
 $template->param('letters'=>\@letters,'letter'=>$letter);
 $template->param(
         order =>$order,
-        CGIsupplier => $CGIsupplier,
+        supplier_loop => $supplierlist,
         phone => $supplierinfo[0]->{phone},
         booksellerfax => $supplierinfo[0]->{booksellerfax},
         bookselleremail => $supplierinfo[0]->{bookselleremail},
diff --git a/serials/lateissues-excel.pl b/serials/lateissues-excel.pl
index 6110bcd..47ce51a 100755
--- a/serials/lateissues-excel.pl
+++ b/serials/lateissues-excel.pl
@@ -32,13 +32,10 @@ my @serialid = $query->param('serialid');
 my $op = $query->param('op') || q{};
 my $serialidcount = @serialid;
 
-my %supplierlist = GetSuppliersWithLateIssues;
-my @select_supplier;
-
 my @loop1;
-my ($count, @lateissues);
+my @lateissues;
 if($op ne 'claims'){
-    ($count, @lateissues) = GetLateIssues($supplierid);
+    @lateissues = GetLateIssues($supplierid);
     for my $issue (@lateissues){
         push @loop1,
       [ $issue->{'name'}, $issue->{'title'}, $issue->{'serialseq'}, $issue->{'planneddate'},];
@@ -46,9 +43,9 @@ if($op ne 'claims'){
 }
 my $totalcount2 = 0;
 my @loop2;
-my ($count2, @missingissues);
+my @missingissues;
 for (my $k=0;$k<@serialid;$k++){
-    ($count2, @missingissues) = GetLateOrMissingIssues($supplierid, $serialid[$k]);
+    @missingissues = GetLateOrMissingIssues($supplierid, $serialid[$k]);
 
     for (my $j=0;$j<@missingissues;$j++){
 	my @rows2 = ($missingissues[$j]->{'name'},          # lets build up a row
@@ -58,7 +55,7 @@ for (my $k=0;$k<@serialid;$k++){
                      );
         push (@loop2, \@rows2);
     }
-    $totalcount2 = $totalcount2 + $count2;
+    $totalcount2 += scalar @missingissues;
     # update claim date to let one know they have looked at this missing item
     updateClaim($serialid[$k]);
 }
@@ -108,6 +105,7 @@ for my $row ( @loop2 ) {
 print ",,,,,,,\n";
 print ",,,,,,,\n";
 if($op ne 'claims'){
+    my $count = scalar @lateissues;
     print ",,Total Number Late, $count\n";
 }
 if($serialidcount == 1){
-- 
1.6.5.2



More information about the Koha-patches mailing list