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 166-171 Link Here
166
                [%- ELSE -%]
166
                [%- ELSE -%]
167
                    [%- IF ( hold.item_level_hold ) -%]
167
                    [%- IF ( hold.item_level_hold ) -%]
168
                        <em>
168
                        <em>
169
                            [%- IF ! hold.change_hold_type_allowed -%]
169
                            <span>Only item</span>
170
                            <span>Only item</span>
170
                            <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% hold.biblionumber | uri %]&amp;itemnumber=[% hold.itemnumber | uri %]#item[% hold.itemnumber | uri %]">
171
                            <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% hold.biblionumber | uri %]&amp;itemnumber=[% hold.itemnumber | uri %]#item[% hold.itemnumber | uri %]">
171
                                [%- IF ( hold.barcodenumber ) -%]
172
                                [%- IF ( hold.barcodenumber ) -%]
Lines 175-180 Link Here
175
                                    <span>No barcode</span>
176
                                    <span>No barcode</span>
176
                                [%- END -%]
177
                                [%- END -%]
177
                            </a>
178
                            </a>
179
                            [%- ELSE -%]
180
                                    <select name="change_hold_type_[% hold.reserve_id | html %]">
181
                                    <option selected="selected" value="">Only item [%- IF ( hold.barcodenumber ) -%]
182
                                        [%- hold.barcodenumber | html -%]
183
                                    [%- ELSE -%]
184
                                        No barcode
185
                                    [%- END -%]
186
                                    </option>
187
                                    <option value="1">Next available</option>
188
                                </select>
189
                                [%- IF ( hold.barcodenumber ) -%]
190
                                    <input type="hidden" name="itemnumber" value="[% hold.itemnumber | html %]" />
191
                                [%- END -%]
192
                                [%- IF hold.itemtype -%]
193
                                    <span style="display:none">Next available [% ItemTypes.GetDescription( hold.itemtype ) | html %] item</span>
194
                                [%- ELSE -%]
195
                                    <span style="display:none">Next available</span>
196
                                [%- END -%]
197
                            [%- END -%]
178
                        </em>
198
                        </em>
179
                    [%- ELSE -%]
199
                    [%- ELSE -%]
180
                        [%- IF hold.itemtype -%]
200
                        [%- 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 593-598 if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold ) Link Here
593
        $template->param( always_show_holds => $always_show_holds );
593
        $template->param( always_show_holds => $always_show_holds );
594
        my $show_holds_now = $input->param('show_holds_now');
594
        my $show_holds_now = $input->param('show_holds_now');
595
        unless( (defined $always_show_holds && $always_show_holds eq 'DONT') && !$show_holds_now ){
595
        unless( (defined $always_show_holds && $always_show_holds eq 'DONT') && !$show_holds_now ){
596
            my $holds_count_per_patron = { map { $_->{borrowernumber} => $_->{hold_count} }
597
                @{ Koha::Holds->search( { biblionumber=> $biblionumber }, {
598
                    select => [ "borrowernumber", { count => { distinct => "reserve_id" } } ],
599
                    as => [ qw( borrowernumber hold_count ) ],
600
                    group_by => [ qw( borrowernumber ) ] }
601
                )->unblessed
602
            } };
596
            my @reserves = Koha::Holds->search( { biblionumber => $biblionumber }, { order_by => 'priority' } )->as_list;
603
            my @reserves = Koha::Holds->search( { biblionumber => $biblionumber }, { order_by => 'priority' } )->as_list;
597
            foreach my $res (
604
            foreach my $res (
598
                sort {
605
                sort {
Lines 643-648 if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold ) Link Here
643
                $reserve{non_priority}     = $res->non_priority();
650
                $reserve{non_priority}     = $res->non_priority();
644
                $reserve{object}           = $res;
651
                $reserve{object}           = $res;
645
652
653
                if ( $holds_count_per_patron->{ $reserve{'borrowernumber'} } == 1 ) {
654
                    $reserve{'change_hold_type_allowed'} = 1;
655
                }
656
646
                push( @reserveloop, \%reserve );
657
                push( @reserveloop, \%reserve );
647
            }
658
            }
648
        }
659
        }
649
- 

Return to bug 31692