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

(-)a/C4/Reserves.pm (-11 / +22 lines)
Lines 1962-1970 sub MoveReserve { Link Here
1962
    my $item = Koha::Items->find($itemnumber);
1962
    my $item = Koha::Items->find($itemnumber);
1963
    my ( $restype, $res, undef ) = CheckReserves( $item, $lookahead );
1963
    my ( $restype, $res, undef ) = CheckReserves( $item, $lookahead );
1964
1964
1965
    if ( $res &&$res->{borrowernumber} == $borrowernumber) {
1965
    if ( $res && $res->{borrowernumber} == $borrowernumber ) {
1966
        my $hold = Koha::Holds->find( $res->{reserve_id} );
1966
        my $patron = Koha::Patrons->find($borrowernumber);
1967
        $hold->fill({ item_id => $itemnumber });
1967
        my $result = CanItemBeReserved( $patron, $item, $res->{branchcode} );
1968
        if ( $result->{status} eq 'OK' ) {
1969
            my $hold = Koha::Holds->find( $res->{reserve_id} );
1970
            $hold->fill({ item_id => $itemnumber });
1971
        }
1968
    }
1972
    }
1969
    else {
1973
    else {
1970
        # The item is reserved by someone else.
1974
        # The item is reserved by someone else.
Lines 1987-2001 sub MoveReserve { Link Here
1987
1991
1988
        if ( $borr_res ) {
1992
        if ( $borr_res ) {
1989
            # The item is reserved by the current patron
1993
            # The item is reserved by the current patron
1990
            $borr_res->fill({ item_id => $itemnumber });
1991
        }
1992
1994
1993
        if ( $cancelreserve eq 'revert' ) { ## Revert waiting reserve to priority 1
1995
            my $patron = Koha::Patrons->find($borrowernumber);
1994
            RevertWaitingStatus({ itemnumber => $itemnumber });
1996
            my $result = CanItemBeReserved( $patron, $item, $borr_res->{branchcode} );
1997
            if ( $result->{status} eq 'OK' ) {
1998
                # Only fill hold with actually reservable items
1999
                $borr_res->fill({ item_id => $itemnumber });
2000
            }
1995
        }
2001
        }
1996
        elsif ( $cancelreserve eq 'cancel' || $cancelreserve ) { # cancel reserves on this item
2002
1997
            my $hold = Koha::Holds->find( $res->{reserve_id} );
2003
        if ( $res ) {
1998
            $hold->cancel;
2004
            if ( $cancelreserve eq 'revert' ) { ## Revert waiting reserve to priority 1
2005
                RevertWaitingStatus({ itemnumber => $itemnumber });
2006
            }
2007
            elsif ( $cancelreserve eq 'cancel' || $cancelreserve ) { # cancel reserves on this item
2008
                my $hold = Koha::Holds->find( $res->{reserve_id} );
2009
                $hold->cancel;
2010
            }
1999
        }
2011
        }
2000
    }
2012
    }
2001
}
2013
}
2002
- 

Return to bug 40792