|
Lines 242-258
sub AddReserve {
Link Here
|
| 242 |
|
242 |
|
| 243 |
#} |
243 |
#} |
| 244 |
($const eq "o" || $const eq "e") or return $reserve_id; |
244 |
($const eq "o" || $const eq "e") or return $reserve_id; |
| 245 |
$query = qq{ |
245 |
|
| 246 |
INSERT INTO reserveconstraints |
|
|
| 247 |
(borrowernumber,biblionumber,reservedate,biblioitemnumber) |
| 248 |
VALUES |
| 249 |
(?,?,?,?) |
| 250 |
}; |
| 251 |
$sth = $dbh->prepare($query); # keep prepare outside the loop! |
| 252 |
foreach (@$bibitems) { |
| 253 |
$sth->execute($borrowernumber, $biblionumber, $resdate, $_); |
| 254 |
} |
| 255 |
|
| 256 |
return $reserve_id; |
246 |
return $reserve_id; |
| 257 |
} |
247 |
} |
| 258 |
|
248 |
|
|
Lines 334-377
sub GetReservesFromBiblionumber {
Link Here
|
| 334 |
my $sth = $dbh->prepare($query); |
324 |
my $sth = $dbh->prepare($query); |
| 335 |
$sth->execute( @params ); |
325 |
$sth->execute( @params ); |
| 336 |
my @results; |
326 |
my @results; |
| 337 |
my $i = 0; |
|
|
| 338 |
while ( my $data = $sth->fetchrow_hashref ) { |
327 |
while ( my $data = $sth->fetchrow_hashref ) { |
| 339 |
|
|
|
| 340 |
# FIXME - What is this doing? How do constraints work? |
| 341 |
if ($data->{constrainttype} eq 'o') { |
| 342 |
$query = ' |
| 343 |
SELECT biblioitemnumber |
| 344 |
FROM reserveconstraints |
| 345 |
WHERE biblionumber = ? |
| 346 |
AND borrowernumber = ? |
| 347 |
AND reservedate = ? |
| 348 |
'; |
| 349 |
my $csth = $dbh->prepare($query); |
| 350 |
$csth->execute($data->{biblionumber}, $data->{borrowernumber}, $data->{reservedate}); |
| 351 |
my @bibitemno; |
| 352 |
while ( my $bibitemnos = $csth->fetchrow_array ) { |
| 353 |
push( @bibitemno, $bibitemnos ); # FIXME: inefficient: use fetchall_arrayref |
| 354 |
} |
| 355 |
my $count = scalar @bibitemno; |
| 356 |
|
| 357 |
# if we have two or more different specific itemtypes |
| 358 |
# reserved by same person on same day |
| 359 |
my $bdata; |
| 360 |
if ( $count > 1 ) { |
| 361 |
$bdata = GetBiblioItemData( $bibitemno[$i] ); # FIXME: This doesn't make sense. |
| 362 |
$i++; # $i can increase each pass, but the next @bibitemno might be smaller? |
| 363 |
} |
| 364 |
else { |
| 365 |
# Look up the book we just found. |
| 366 |
$bdata = GetBiblioItemData( $bibitemno[0] ); |
| 367 |
} |
| 368 |
# Add the results of this latest search to the current |
| 369 |
# results. |
| 370 |
# FIXME - An 'each' would probably be more efficient. |
| 371 |
foreach my $key ( keys %$bdata ) { |
| 372 |
$data->{$key} = $bdata->{$key}; |
| 373 |
} |
| 374 |
} |
| 375 |
push @results, $data; |
328 |
push @results, $data; |
| 376 |
} |
329 |
} |
| 377 |
return \@results; |
330 |
return \@results; |
|
Lines 2002-2024
sub _Findgroupreserve {
Link Here
|
| 2002 |
reserves.reservenotes AS reservenotes, |
1955 |
reserves.reservenotes AS reservenotes, |
| 2003 |
reserves.priority AS priority, |
1956 |
reserves.priority AS priority, |
| 2004 |
reserves.timestamp AS timestamp, |
1957 |
reserves.timestamp AS timestamp, |
| 2005 |
reserveconstraints.biblioitemnumber AS biblioitemnumber, |
|
|
| 2006 |
reserves.itemnumber AS itemnumber, |
1958 |
reserves.itemnumber AS itemnumber, |
| 2007 |
reserves.reserve_id AS reserve_id |
1959 |
reserves.reserve_id AS reserve_id |
| 2008 |
FROM reserves |
1960 |
FROM reserves |
| 2009 |
LEFT JOIN reserveconstraints ON reserves.biblionumber = reserveconstraints.biblionumber |
|
|
| 2010 |
WHERE reserves.biblionumber = ? |
1961 |
WHERE reserves.biblionumber = ? |
| 2011 |
AND ( ( reserveconstraints.biblioitemnumber = ? |
|
|
| 2012 |
AND reserves.borrowernumber = reserveconstraints.borrowernumber |
| 2013 |
AND reserves.reservedate = reserveconstraints.reservedate ) |
| 2014 |
OR reserves.constrainttype='a' ) |
| 2015 |
AND (reserves.itemnumber IS NULL OR reserves.itemnumber = ?) |
1962 |
AND (reserves.itemnumber IS NULL OR reserves.itemnumber = ?) |
| 2016 |
AND reserves.reservedate <= DATE_ADD(NOW(),INTERVAL ? DAY) |
1963 |
AND reserves.reservedate <= DATE_ADD(NOW(),INTERVAL ? DAY) |
| 2017 |
AND suspend = 0 |
1964 |
AND suspend = 0 |
| 2018 |
ORDER BY priority |
1965 |
ORDER BY priority |
| 2019 |
}; |
1966 |
}; |
| 2020 |
$sth = $dbh->prepare($query); |
1967 |
$sth = $dbh->prepare($query); |
| 2021 |
$sth->execute( $biblio, $bibitem, $itemnumber, $lookahead||0); |
1968 |
$sth->execute( $biblio, $itemnumber, $lookahead||0); |
| 2022 |
@results = (); |
1969 |
@results = (); |
| 2023 |
while ( my $data = $sth->fetchrow_hashref ) { |
1970 |
while ( my $data = $sth->fetchrow_hashref ) { |
| 2024 |
push( @results, $data ) |
1971 |
push( @results, $data ) |
| 2025 |
- |
|
|