[Koha-patches] [PATCH] Remove unused or unnecessary variables in claims processing

Colin Campbell colin.campbell at ptfs-europe.com
Wed Oct 7 12:22:50 CEST 2009


Also cleaned the interface to the claims related functions
in Serials so they do not return and extra count variable
moved generation of dropdown to template instead of inline code
---
 C4/Serials.pm                                      |   37 +++++++-------------
 .../prog/en/modules/serials/claims.tmpl            |    8 +++-
 serials/claims.pl                                  |   31 +++++-----------
 serials/lateissues-excel.pl                        |   14 +++----
 4 files changed, 35 insertions(+), 55 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..d255fe4 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 -->
@@ -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.2.5




More information about the Koha-patches mailing list