[Koha-patches] [PATCH] fix error introduced in a previous commit
Galen Charlton
galen.charlton at liblime.com
Wed Mar 11 16:39:15 CET 2009
Change to GetReservesFromBiblionumber() had effect
of causing all requests of constrainttype other
than 'o' to not be included in result.
while ($foo) {
$bar or next;
# do stuff
# do other stuff
}
is not equivalent to
while ($foo) {
if ($bar) {
# do stuff
}
# do other stuff
}
---
C4/Reserves.pm | 69 ++++++++++++++++++++++++++++---------------------------
1 files changed, 35 insertions(+), 34 deletions(-)
diff --git a/C4/Reserves.pm b/C4/Reserves.pm
index c780e32..a8e3070 100644
--- a/C4/Reserves.pm
+++ b/C4/Reserves.pm
@@ -228,40 +228,41 @@ sub GetReservesFromBiblionumber {
while ( my $data = $sth->fetchrow_hashref ) {
# FIXME - What is this doing? How do constraints work?
- ($data->{constrainttype} eq 'o') or next;
- $query = '
- SELECT biblioitemnumber
- FROM reserveconstraints
- WHERE biblionumber = ?
- AND borrowernumber = ?
- AND reservedate = ?
- ';
- my $csth = $dbh->prepare($query);
- $csth->execute( $data->{biblionumber}, $data->{borrowernumber},
- $data->{reservedate}, );
-
- my @bibitemno;
- while ( my $bibitemnos = $csth->fetchrow_array ) {
- push( @bibitemno, $bibitemnos ); # FIXME: inefficient: use fetchall_arrayref
- }
- my $count = scalar @bibitemno;
-
- # if we have two or more different specific itemtypes
- # reserved by same person on same day
- my $bdata;
- if ( $count > 1 ) {
- $bdata = GetBiblioItemData( $bibitemno[$i] );
- $i++;
- }
- else {
- # Look up the book we just found.
- $bdata = GetBiblioItemData( $bibitemno[0] );
- }
- # Add the results of this latest search to the current
- # results.
- # FIXME - An 'each' would probably be more efficient.
- foreach my $key ( keys %$bdata ) {
- $data->{$key} = $bdata->{$key};
+ if ($data->{constrainttype} eq 'o') {
+ $query = '
+ SELECT biblioitemnumber
+ FROM reserveconstraints
+ WHERE biblionumber = ?
+ AND borrowernumber = ?
+ AND reservedate = ?
+ ';
+ my $csth = $dbh->prepare($query);
+ $csth->execute( $data->{biblionumber}, $data->{borrowernumber},
+ $data->{reservedate}, );
+
+ my @bibitemno;
+ while ( my $bibitemnos = $csth->fetchrow_array ) {
+ push( @bibitemno, $bibitemnos ); # FIXME: inefficient: use fetchall_arrayref
+ }
+ my $count = scalar @bibitemno;
+
+ # if we have two or more different specific itemtypes
+ # reserved by same person on same day
+ my $bdata;
+ if ( $count > 1 ) {
+ $bdata = GetBiblioItemData( $bibitemno[$i] );
+ $i++;
+ }
+ else {
+ # Look up the book we just found.
+ $bdata = GetBiblioItemData( $bibitemno[0] );
+ }
+ # Add the results of this latest search to the current
+ # results.
+ # FIXME - An 'each' would probably be more efficient.
+ foreach my $key ( keys %$bdata ) {
+ $data->{$key} = $bdata->{$key};
+ }
}
push @results, $data;
}
--
1.5.6.5
More information about the Koha-patches
mailing list