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

(-)a/reserve/placerequest.pl (-3 / +10 lines)
Lines 88-113 if ( $type eq 'str8' && $borrower ) { Link Here
88
            }
88
            }
89
        }
89
        }
90
90
91
        my $can_override = C4::Context->preference('AllowHoldPolicyOverride');
91
        if ( defined $checkitem && $checkitem ne '' ) {
92
        if ( defined $checkitem && $checkitem ne '' ) {
93
92
            my $item = Koha::Items->find($checkitem);
94
            my $item = Koha::Items->find($checkitem);
95
93
            if ( $item->biblionumber ne $biblionumber ) {
96
            if ( $item->biblionumber ne $biblionumber ) {
94
                $biblionumber = $item->biblionumber;
97
                $biblionumber = $item->biblionumber;
95
            }
98
            }
96
            if ( CanItemBeReserved($borrower->{'borrowernumber'}, $item->itemnumber, $branch)->{status} eq 'OK' ) {
99
100
            my $can_item_be_reserved = CanItemBeReserved($borrower->{'borrowernumber'}, $item->itemnumber, $branch)->{status};
101
102
            if ( $can_item_be_reserved eq 'OK' || ( $can_item_be_reserved ne 'itemAlreadyOnHold' && $can_override ) ) {
97
                AddReserve( $branch, $borrower->{'borrowernumber'},
103
                AddReserve( $branch, $borrower->{'borrowernumber'},
98
                    $biblionumber, \@realbi, $rank[0], $startdate, $expirationdate, $notes, $title,
104
                    $biblionumber, \@realbi, $rank[0], $startdate, $expirationdate, $notes, $title,
99
                    $checkitem, $found, $itemtype );
105
                    $checkitem, $found, $itemtype );
100
            }
106
            }
107
101
        } elsif ($multi_hold) {
108
        } elsif ($multi_hold) {
102
            my $bibinfo = $bibinfos{$biblionumber};
109
            my $bibinfo = $bibinfos{$biblionumber};
103
            if ( CanBookBeReserved($borrower->{'borrowernumber'}, $biblionumber)->{status} eq 'OK' ) {
110
            if ( $can_override || CanBookBeReserved($borrower->{'borrowernumber'}, $biblionumber)->{status} eq 'OK' ) {
104
                AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,[$biblionumber],
111
                AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,[$biblionumber],
105
                           $bibinfo->{rank},$startdate,$expirationdate,$notes,$bibinfo->{title},$checkitem,$found);
112
                           $bibinfo->{rank},$startdate,$expirationdate,$notes,$bibinfo->{title},$checkitem,$found);
106
            }
113
            }
107
        } else {
114
        } else {
108
            # place a request on 1st available
115
            # place a request on 1st available
109
            for ( my $i = 0 ; $i < $holds_to_place_count ; $i++ ) {
116
            for ( my $i = 0 ; $i < $holds_to_place_count ; $i++ ) {
110
                if ( CanBookBeReserved($borrower->{'borrowernumber'}, $biblionumber)->{status} eq 'OK' ) {
117
                if ( $can_override || CanBookBeReserved($borrower->{'borrowernumber'}, $biblionumber)->{status} eq 'OK' ) {
111
                    AddReserve( $branch, $borrower->{'borrowernumber'},
118
                    AddReserve( $branch, $borrower->{'borrowernumber'},
112
                        $biblionumber, \@realbi, $rank[0], $startdate, $expirationdate, $notes, $title,
119
                        $biblionumber, \@realbi, $rank[0], $startdate, $expirationdate, $notes, $title,
113
                        $checkitem, $found, $itemtype );
120
                        $checkitem, $found, $itemtype );
(-)a/reserve/request.pl (-3 / +5 lines)
Lines 508-515 foreach my $biblionumber (@biblionumbers) { Link Here
508
                }
508
                }
509
                elsif ( C4::Context->preference('AllowHoldPolicyOverride') ) {
509
                elsif ( C4::Context->preference('AllowHoldPolicyOverride') ) {
510
                    # If AllowHoldPolicyOverride is set, it should override EVERY restriction, not just branch item rules
510
                    # If AllowHoldPolicyOverride is set, it should override EVERY restriction, not just branch item rules
511
                    $item->{override} = 1;
511
                    # with the exception of itemAlreadyOnHold because, you know, the item is already on hold
512
                    $num_override++;
512
                    if ( $can_item_be_reserved ne 'itemAlreadyOnHold' ) {
513
                        $item->{override} = 1;
514
                        $num_override++;
515
                    }
513
516
514
                    push( @available_itemtypes, $item->{itype} );
517
                    push( @available_itemtypes, $item->{itype} );
515
                }
518
                }
516
- 

Return to bug 23116