[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