View | Details | Raw Unified | Return to bug 9809
Collapse All | Expand All

(-)a/C4/Reserves.pm (-56 / +2 lines)
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
- 

Return to bug 9809