Fix supplier loop in serials claims
authorColin Campbell <colin.campbell@ptfs-europe.com>
Wed, 15 Dec 2010 16:39:31 +0000 (16:39 +0000)
committerColin Campbell <colin.campbell@ptfs-europe.com>
Wed, 15 Dec 2010 16:53:12 +0000 (16:53 +0000)
Wrong parameter was being passed to GetLateOrMissingIssues
causing incorrect display of count
Remove superfluous loop creating array we dont use
No need to sort a sorted array

serials/claims.pl

index fa45330..793eb69 100755 (executable)
@@ -35,15 +35,6 @@ my $claimletter = $input->param('claimletter');
 my $supplierid = $input->param('supplierid');
 my $suppliername = $input->param('suppliername');
 my $order = $input->param('order');
-my $supplierlist = GetSuppliersWithLateIssues();
-if ($supplierid) {
-    foreach my $s ( @{$supplierlist} ) {
-        if ($s->{id} == $supplierid ) {
-            $s->{selected} = 1;
-            last;
-        }
-    }
-}
 
 # open template first (security & userenv set here)
 my ($template, $loggedinuser, $cookie)
@@ -55,14 +46,13 @@ my ($template, $loggedinuser, $cookie)
             debug => 1,
             });
 
-my @suploop;
-for my $s ( sort {$a->{name} cmp $b->{name} } @$supplierlist ) {
-    my @list = GetLateOrMissingIssues($s, "", $order);
-    push @suploop, {
-        %$s,
-        count    => scalar(@list),
-        selected => $s->{id} == $supplierid,
-    };
+# supplierlist is returned in name order
+my $supplierlist = GetSuppliersWithLateIssues();
+for my $s (@{$supplierlist} ) {
+    $s->{count} = scalar  GetLateOrMissingIssues($s->{id}, q{}, $order);
+    if ($supplierid && $s->{id} == $supplierid) {
+        $s->{selected} = 1;
+    }
 }
 
 my $letters = GetLetters('claimissues');
@@ -96,7 +86,7 @@ if($op && $op eq 'preview'){
 $template->param('letters'=>\@letters,'letter'=>$letter);
 $template->param(
         order =>$order,
-        suploop => \@suploop,
+        suploop => $supplierlist,
         phone => $supplierinfo[0]->{phone},
         booksellerfax => $supplierinfo[0]->{booksellerfax},
         bookselleremail => $supplierinfo[0]->{bookselleremail},