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

(-)a/C4/Reserves.pm (-1 / +65 lines)
Lines 2007-2013 sub MoveReserve { Link Here
2007
            ModReserveFill($borr_res);
2007
            ModReserveFill($borr_res);
2008
        }
2008
        }
2009
2009
2010
        if ($cancelreserve) { # cancel reserves on this item
2010
        if ( $cancelreserve eq 'revert' ) { ## Revert waiting reserve to priority 1
2011
            RevertWaitingStatus( itemnumber => $itemnumber );
2012
        }
2013
        elsif ( $cancelreserve eq 'cancel' || $cancelreserve ) { # cancel reserves on this item
2011
            CancelReserve(0, $res->{'itemnumber'}, $res->{'borrowernumber'});
2014
            CancelReserve(0, $res->{'itemnumber'}, $res->{'borrowernumber'});
2012
            CancelReserve($res->{'biblionumber'}, 0, $res->{'borrowernumber'});
2015
            CancelReserve($res->{'biblionumber'}, 0, $res->{'borrowernumber'});
2013
        }
2016
        }
Lines 2058-2063 sub MergeHolds { Link Here
2058
    }
2061
    }
2059
}
2062
}
2060
2063
2064
=head2 RevertWaitingStatus
2065
2066
  $success = RevertWaitingStatus( itemnumber => $itemnumber );
2067
2068
  Reverts a 'waiting' hold back to a regular hold with a priority of 1.
2069
2070
  Caveat: Any waiting hold fixed with RevertWaitingStatus will be an
2071
          item level hold, even if it was only a bibliolevel hold to
2072
          begin with. This is because we can no longer know if a hold
2073
          was item-level or bib-level after a hold has been set to 
2074
          waiting status.
2075
2076
=cut
2077
2078
sub RevertWaitingStatus {
2079
    my ( %params ) = @_;
2080
    warn "RevertWaitingStatus( " . Data::Dumper::Dumper( \%params ) . " ) ";
2081
    my $itemnumber = $params{'itemnumber'};
2082
    
2083
    return unless ( $itemnumber );
2084
2085
    my $dbh = C4::Context->dbh;
2086
    
2087
    ## Get the waiting reserve we want to revert
2088
    my $query = "
2089
        SELECT * FROM reserves
2090
        WHERE itemnumber = ?
2091
        AND found IS NOT NULL
2092
    ";
2093
    my $sth = $dbh->prepare( $query );
2094
    $sth->execute( $itemnumber );
2095
    my $reserve = $sth->fetchrow_hashref();
2096
    
2097
    ## Increment the priority of all other non-waiting
2098
    ## reserves for this bib record
2099
    $query = "
2100
        UPDATE reserves 
2101
        SET 
2102
          priority = priority + 1 
2103
        WHERE 
2104
          biblionumber =  ?
2105
        AND  
2106
          priority > 0
2107
    ";
2108
    $sth = $dbh->prepare( $query );
2109
    $sth->execute( $reserve->{'biblionumber'} );
2110
    
2111
    ## Fix up the currently waiting reserve
2112
    $query = "
2113
    UPDATE reserves 
2114
    SET 
2115
      priority = 1,
2116
      found = NULL,
2117
      waitingdate = NULL 
2118
    WHERE
2119
      reserve_id = ?
2120
    ";
2121
    $sth = $dbh->prepare( $query );
2122
    return $sth->execute( $reserve->{'reserve_id'} );
2123
}
2124
2061
=head2 ReserveSlip
2125
=head2 ReserveSlip
2062
2126
2063
  ReserveSlip($branchcode, $borrowernumber, $biblionumber)
2127
  ReserveSlip($branchcode, $borrowernumber, $biblionumber)
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt (-3 / +4 lines)
Lines 370-384 function validate1(date) { Link Here
370
370
371
[% IF ( RESERVED ) %]
371
[% IF ( RESERVED ) %]
372
    <p>
372
    <p>
373
    <input type="checkbox" id="cancelreserve" name="cancelreserve" value="1" />
373
    <input type="checkbox" id="cancelreserve" name="cancelreserve" value="cancel" />
374
    <label for="cancelreserve">Cancel hold</label>
374
    <label for="cancelreserve">Cancel hold</label>
375
    </p>
375
    </p>
376
[% END %]
376
[% END %]
377
377
378
[% IF ( RESERVE_WAITING ) %]
378
[% IF ( RESERVE_WAITING ) %]
379
    <p>
379
    <p>
380
    <input type="checkbox" id="cancelreserve" name="cancelreserve" value="1" />
381
    <label for="cancelreserve">Cancel hold</label>
380
    <label for="cancelreserve">Cancel hold</label>
381
    <input type="radio" name="cancelreserve" value="cancel" checked="checked"><br/>
382
    <label for="cancelreserve">Revert waiting status</label>
383
    <input type="radio" name="cancelreserve" value="revert"> 
382
    </p>
384
    </p>
383
[% END %]
385
[% END %]
384
386
385
- 

Return to bug 8559