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

(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc (+20 lines)
Lines 168-173 Link Here
168
                [%- ELSE -%]
168
                [%- ELSE -%]
169
                    [%- IF ( hold.item_level_hold ) -%]
169
                    [%- IF ( hold.item_level_hold ) -%]
170
                        <em>
170
                        <em>
171
                            [%- IF ! hold.change_hold_type_allowed -%]
171
                            <span>Only item</span>
172
                            <span>Only item</span>
172
                            <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% hold.biblionumber | uri %]&amp;itemnumber=[% hold.itemnumber | uri %]#item[% hold.itemnumber | uri %]">
173
                            <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% hold.biblionumber | uri %]&amp;itemnumber=[% hold.itemnumber | uri %]#item[% hold.itemnumber | uri %]">
173
                                [%- IF ( hold.barcodenumber ) -%]
174
                                [%- IF ( hold.barcodenumber ) -%]
Lines 177-182 Link Here
177
                                    <span>No barcode</span>
178
                                    <span>No barcode</span>
178
                                [%- END -%]
179
                                [%- END -%]
179
                            </a>
180
                            </a>
181
                            [%- ELSE -%]
182
                                    <select name="change_hold_type_[% hold.reserve_id | html %]">
183
                                    <option selected="selected" value="">Only item [%- IF ( hold.barcodenumber ) -%]
184
                                        [%- hold.barcodenumber | html -%]
185
                                    [%- ELSE -%]
186
                                        No barcode
187
                                    [%- END -%]
188
                                    </option>
189
                                    <option value="1">Next available</option>
190
                                </select>
191
                                [%- IF ( hold.barcodenumber ) -%]
192
                                    <input type="hidden" name="itemnumber" value="[% hold.itemnumber | html %]" />
193
                                [%- END -%]
194
                                [%- IF hold.itemtype -%]
195
                                    <span style="display:none">Next available [% ItemTypes.GetDescription( hold.itemtype ) | html %] item</span>
196
                                [%- ELSE -%]
197
                                    <span style="display:none">Next available</span>
198
                                [%- END -%]
199
                            [%- END -%]
180
                        </em>
200
                        </em>
181
                    [%- ELSE -%]
201
                    [%- ELSE -%]
182
                        [%- IF hold.itemtype -%]
202
                        [%- IF hold.itemtype -%]
(-)a/reserve/modrequest.pl (-1 / +15 lines)
Lines 94-100 else { Link Here
94
            } else {
94
            } else {
95
                $_->rethrow;
95
                $_->rethrow;
96
            }
96
            }
97
        }
97
        };
98
99
        if ( $query->param( "change_hold_type_" . $reserve_id[$i] ) ) {
100
            my $hold = Koha::Holds->find( $reserve_id[$i] );
101
102
            try {
103
                $hold->change_type;
104
            } catch {
105
                if ($_->isa('Koha::Exceptions::Hold::CannotChangeHoldType')){
106
                    warn $_;
107
                } else {
108
                    $_->rethrow;
109
                }
110
            }
111
        };
98
    }
112
    }
99
    my @biblio_ids = uniq @biblionumber;
113
    my @biblio_ids = uniq @biblionumber;
100
    Koha::BackgroundJob::BatchUpdateBiblioHoldsQueue->new->enqueue(
114
    Koha::BackgroundJob::BatchUpdateBiblioHoldsQueue->new->enqueue(
(-)a/reserve/request.pl (-1 / +11 lines)
Lines 597-602 if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold ) Link Here
597
        $template->param( always_show_holds => $always_show_holds );
597
        $template->param( always_show_holds => $always_show_holds );
598
        my $show_holds_now = $input->param('show_holds_now');
598
        my $show_holds_now = $input->param('show_holds_now');
599
        unless( (defined $always_show_holds && $always_show_holds eq 'DONT') && !$show_holds_now ){
599
        unless( (defined $always_show_holds && $always_show_holds eq 'DONT') && !$show_holds_now ){
600
            my $holds_count_per_patron = { map { $_->{borrowernumber} => $_->{hold_count} }
601
                @{ Koha::Holds->search( { biblionumber=> $biblionumber }, {
602
                    select => [ "borrowernumber", { count => { distinct => "reserve_id" } } ],
603
                    as => [ qw( borrowernumber hold_count ) ],
604
                    group_by => [ qw( borrowernumber ) ] }
605
                )->unblessed
606
            } };
600
            my @reserves = Koha::Holds->search( { biblionumber => $biblionumber }, { order_by => 'priority' } )->as_list;
607
            my @reserves = Koha::Holds->search( { biblionumber => $biblionumber }, { order_by => 'priority' } )->as_list;
601
            foreach my $res (
608
            foreach my $res (
602
                sort {
609
                sort {
Lines 647-652 if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold ) Link Here
647
                $reserve{non_priority}     = $res->non_priority();
654
                $reserve{non_priority}     = $res->non_priority();
648
                $reserve{object}           = $res;
655
                $reserve{object}           = $res;
649
656
657
                if ( $holds_count_per_patron->{ $reserve{'borrowernumber'} } == 1 ) {
658
                    $reserve{'change_hold_type_allowed'} = 1;
659
                }
660
650
                push( @reserveloop, \%reserve );
661
                push( @reserveloop, \%reserve );
651
            }
662
            }
652
        }
663
        }
653
- 

Return to bug 31692