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

(-)a/Koha/Schema/Result/Reserve.pm (+12 lines)
Lines 377-380 sub koha_objects_class { Link Here
377
    'Koha::Holds';
377
    'Koha::Holds';
378
}
378
}
379
379
380
__PACKAGE__->belongs_to(
381
  "itembib",
382
  "Koha::Schema::Result::Item",
383
  { biblionumber => "biblionumber" },
384
  {
385
    is_deferrable => 1,
386
    join_type     => "LEFT",
387
    on_delete     => "CASCADE",
388
    on_update     => "CASCADE",
389
  },
390
);
391
380
1;
392
1;
(-)a/circ/pendingreserves.pl (-115 / +164 lines)
Lines 152-288 unless ( $enddate ) { Link Here
152
    $enddate = $today + DateTime::Duration->new( days => C4::Context->preference('ConfirmFutureHolds') || 0 );
152
    $enddate = $today + DateTime::Duration->new( days => C4::Context->preference('ConfirmFutureHolds') || 0 );
153
}
153
}
154
154
155
my @reservedata;
155
# building query parameters
156
my $dbh = C4::Context->dbh;
156
my %where = (
157
my $sqldatewhere = "";
157
    'reserve.found' => undef,
158
    'reserve.suspend' => 0,
159
    'itembib.itemlost' => 0,
160
    'itembib.withdrawn' => 0,
161
    'itembib.notforloan' => 0,
162
    'itembib.itemnumber' => { -not_in => \'SELECT itemnumber FROM branchtransfers WHERE datearrived IS NULL' }
163
);
164
165
# date boundaries
158
my $startdate_iso = output_pref({ dt => $startdate, dateformat => 'iso', dateonly => 1 });
166
my $startdate_iso = output_pref({ dt => $startdate, dateformat => 'iso', dateonly => 1 });
159
my $enddate_iso   = output_pref({ dt => $enddate, dateformat => 'iso', dateonly => 1 });
167
my $enddate_iso   = output_pref({ dt => $enddate, dateformat => 'iso', dateonly => 1 });
160
168
if ( $startdate_iso && $enddate_iso ){
161
$debug and warn $startdate_iso. "\n" . $enddate_iso;
169
    $where{'reserve.reservedate'} = [ -and => { '>=', $startdate_iso }, { '<=', $enddate_iso } ];
162
170
} elsif ( $startdate_iso ){
163
my @query_params = ();
171
    $where{'reserve.reservedate'} = { '>=', $startdate_iso };
164
172
} elsif ( $enddate_iso ){
165
if ($startdate_iso) {
173
    $where{'reserve.reservedate'} = { '<=', $enddate_iso };
166
    $sqldatewhere .= " AND reservedate >= ?";
167
    push @query_params, $startdate_iso;
168
}
169
if ($enddate_iso) {
170
    $sqldatewhere .= " AND reservedate <= ?";
171
    push @query_params, $enddate_iso;
172
}
174
}
173
175
174
my $item_type = C4::Context->preference('item-level_itypes') ? "items.itype" : "biblioitems.itemtype";
175
176
# Bug 21320
176
# Bug 21320
177
if ( ! C4::Context->preference('AllowHoldsOnDamagedItems') ) {
177
if ( !C4::Context->preference('AllowHoldsOnDamagedItems') ){
178
    $sqldatewhere .= " AND damaged = 0";
178
    $where{'itembib.damaged'} = 0;
179
}
179
}
180
180
181
my $strsth =
181
if ( C4::Context->preference('IndependentBranches') ){
182
    "SELECT min(reservedate) as l_reservedate,
182
    $where{'itembib.holdingbranch'} = C4::Context->userenv->{'branch'};
183
            reserves.reserve_id,
184
            reserves.borrowernumber as borrowernumber,
185
186
            GROUP_CONCAT(DISTINCT items.holdingbranch 
187
                    ORDER BY items.itemnumber SEPARATOR '|') l_holdingbranch,
188
            reserves.biblionumber,
189
            reserves.branchcode as l_branch,
190
            reserves.itemnumber,
191
            items.holdingbranch,
192
            items.homebranch,
193
            GROUP_CONCAT(DISTINCT $item_type
194
                    ORDER BY items.itemnumber SEPARATOR '|') l_item_type,
195
            GROUP_CONCAT(DISTINCT items.location 
196
                    ORDER BY items.itemnumber SEPARATOR '|') l_location,
197
            GROUP_CONCAT(DISTINCT items.itemcallnumber 
198
                    ORDER BY items.itemnumber SEPARATOR '|') l_itemcallnumber,
199
            GROUP_CONCAT(DISTINCT items.enumchron
200
                    ORDER BY items.itemnumber SEPARATOR '|') l_enumchron,
201
            GROUP_CONCAT(DISTINCT items.copynumber
202
                    ORDER BY items.itemnumber SEPARATOR '|') l_copynumber,
203
            biblio.title,
204
            biblio.subtitle,
205
            biblio.medium,
206
            biblio.part_number,
207
            biblio.part_name,
208
            biblio.author,
209
            biblioitems.editionstatement,
210
            count(DISTINCT items.itemnumber) as icount,
211
            count(DISTINCT reserves.borrowernumber) as rcount,
212
            borrowers.firstname,
213
            borrowers.surname
214
    FROM  reserves
215
        LEFT JOIN items ON items.biblionumber=reserves.biblionumber 
216
        LEFT JOIN biblio ON reserves.biblionumber=biblio.biblionumber
217
        LEFT JOIN biblioitems ON biblio.biblionumber=biblioitems.biblionumber
218
        LEFT JOIN branchtransfers ON items.itemnumber=branchtransfers.itemnumber
219
        LEFT JOIN issues ON items.itemnumber=issues.itemnumber
220
        LEFT JOIN borrowers ON reserves.borrowernumber=borrowers.borrowernumber
221
        LEFT JOIN circulation_rules ON ( items.itype=circulation_rules.itemtype AND rule_name = 'holdallowed' AND circulation_rules.branchcode IS NULL AND circulation_rules.categorycode IS NULL )
222
    WHERE
223
    reserves.found IS NULL
224
    $sqldatewhere
225
    AND (reserves.itemnumber IS NULL OR reserves.itemnumber = items.itemnumber)
226
    AND items.itemnumber NOT IN (SELECT itemnumber FROM branchtransfers where datearrived IS NULL)
227
    AND items.itemnumber NOT IN (select itemnumber FROM reserves where found IS NOT NULL)
228
    AND issues.itemnumber IS NULL
229
    AND reserves.priority <> 0 
230
    AND reserves.suspend = 0
231
    AND notforloan = 0 AND itemlost = 0 AND withdrawn = 0
232
    AND ( circulation_rules.rule_value IS NULL OR circulation_rules.rule_value != 0 )
233
    ";
234
    # GROUP BY reserves.biblionumber allows only items that are not checked out, else multiples occur when 
235
    #    multiple patrons have a hold on an item
236
237
238
if (C4::Context->preference('IndependentBranches')){
239
    $strsth .= " AND items.holdingbranch=? ";
240
    push @query_params, C4::Context->userenv->{'branch'};
241
}
183
}
242
$strsth .= " GROUP BY reserves.biblionumber ORDER BY biblio.title ";
184
243
185
# get all distinct unfulfilled reserves
244
my $sth = $dbh->prepare($strsth);
186
my @distinct_holds = Koha::Holds->search(
245
$sth->execute(@query_params);
187
    { %where },
246
188
    { join => 'itembib', group_by => 'reserve.biblionumber', alias => 'reserve' }
247
while ( my $data = $sth->fetchrow_hashref ) {
189
);
248
    push(
190
249
        @reservedata, {
191
# make final reserves hash and fill with info
250
            reservedate      => $data->{l_reservedate},
192
my $reserves;
251
            firstname        => $data->{firstname} || '',
193
foreach my $dh ( @distinct_holds ){
252
            surname          => $data->{surname},
194
253
            title            => $data->{title},
195
    my $bibnum = $dh->biblionumber;
254
            editionstatement => $data->{editionstatement},
196
255
            subtitle         => $data->{subtitle},
197
    my @items = Koha::Items->search({ biblionumber => $bibnum });
256
            medium           => $data->{medium},
198
    foreach my $i ( @items ){
257
            part_number      => $data->{part_number},
199
        if ( $i->checkout ){
258
            part_name        => $data->{part_name},
200
            next;
259
            author           => $data->{author},
260
            borrowernumber   => $data->{borrowernumber},
261
            biblionumber     => $data->{biblionumber},
262
            holdingbranches  => [split('\|', $data->{l_holdingbranch})],
263
            branch           => $data->{l_branch},
264
            itemcallnumber   => [split('\|', $data->{l_itemcallnumber})],
265
            enumchron        => [split('\|', $data->{l_enumchron})],
266
            copyno           => [split('\|', $data->{l_copynumber})],
267
            count            => $data->{icount},
268
            rcount           => $data->{rcount},
269
            pullcount        => $data->{icount} <= $data->{rcount} ? $data->{icount} : $data->{rcount},
270
            itemTypes        => [split('\|', $data->{l_item_type})],
271
            locations        => [split('\|', $data->{l_location})],
272
            reserve_id       => $data->{reserve_id},
273
            holdingbranch    => $data->{holdingbranch},
274
            homebranch       => $data->{homebranch},
275
            itemnumber       => $data->{itemnumber},
276
        }
201
        }
202
    }
203
204
    # get available item types for each biblio
205
    my $res_itemtypes;
206
    if ( C4::Context->preference('item-level_itypes') ){
207
        $res_itemtypes = Koha::Items->search(
208
            { biblionumber => $bibnum,
209
              itype => { '!=', undef },
210
              itemlost => 0,
211
              withdrawn => 0,
212
              notforloan => 0,
213
              itemnumber => { -not_in => \'SELECT itemnumber FROM branchtransfers WHERE datearrived IS NULL', -not_in => \'SELECT itemnumber FROM issues' },
214
            },
215
            { group_by => 'itype' }
216
        );
217
    } else {
218
        $res_itemtypes = Koha::Biblioitems->search(
219
            { biblionumber => $bibnum, itemtype => { '!=', undef }  },
220
            { group_by => 'itemtype' }
221
        );
222
    }
223
    $reserves->{$bibnum}->{itemtypes} = $res_itemtypes;
224
225
    # get available locations for each biblio
226
    my $res_locations = Koha::Items->search(
227
        { biblionumber => $bibnum,
228
          location => { '!=', undef },
229
          itemlost => 0,
230
          withdrawn => 0,
231
          notforloan => 0,
232
          itemnumber => { -not_in => \'SELECT itemnumber FROM branchtransfers WHERE datearrived IS NULL', -not_in => \'SELECT itemnumber FROM issues' },
233
        },
234
        { group_by => 'location' }
235
    );
236
    $reserves->{$bibnum}->{locations} = $res_locations;
237
238
    # get available callnumbers for each biblio
239
    my $res_callnumbers = Koha::Items->search(
240
        { biblionumber => $bibnum,
241
          itemcallnumber => { '!=', undef },
242
          itemlost => 0,
243
          withdrawn => 0,
244
          notforloan => 0,
245
          itemnumber => { -not_in => \'SELECT itemnumber FROM branchtransfers WHERE datearrived IS NULL', -not_in => \'SELECT itemnumber FROM issues' },
246
        },
247
        { group_by => 'itemcallnumber' }
248
    );
249
    $reserves->{$bibnum}->{callnumbers} = $res_callnumbers;
250
251
    # get available enumchrons for each biblio
252
    my $res_enumchrons = Koha::Items->search(
253
        { biblionumber => $bibnum,
254
          enumchron => { '!=', undef },
255
          itemlost => 0,
256
          withdrawn => 0,
257
          notforloan => 0,
258
          itemnumber => { -not_in => \'SELECT itemnumber FROM branchtransfers WHERE datearrived IS NULL', -not_in => \'SELECT itemnumber FROM issues' },
259
        },
260
        { group_by => 'enumchron' }
261
    );
262
    $reserves->{$bibnum}->{enumchrons} = $res_enumchrons;
263
264
    # get available copynumbers for each biblio
265
    my $res_copynumbers = Koha::Items->search(
266
        { biblionumber => $bibnum,
267
          copynumber => { '!=', undef },
268
          itemlost => 0,
269
          withdrawn => 0,
270
          notforloan => 0,
271
          itemnumber => { -not_in => \'SELECT itemnumber FROM branchtransfers WHERE datearrived IS NULL', -not_in => \'SELECT itemnumber FROM issues' },
272
        },
273
        { group_by => 'copynumber' }
277
    );
274
    );
275
    $reserves->{$bibnum}->{copynumbers} = $res_copynumbers;
276
277
    # get available holding branches for each biblio
278
    my $res_holdingbranches = Koha::Items->search(
279
        { biblionumber => $bibnum,
280
          holdingbranch => { '!=', undef },
281
          itemlost => 0,
282
          withdrawn => 0,
283
          notforloan => 0,
284
          itemnumber => { -not_in => \'SELECT itemnumber FROM branchtransfers WHERE datearrived IS NULL', -not_in => \'SELECT itemnumber FROM issues' },
285
        },
286
        { group_by => 'holdingbranch' }
287
    );
288
    $reserves->{$bibnum}->{holdingbranches} = $res_holdingbranches;
289
290
    # items available
291
    my $items_count = Koha::Items->search(
292
        { biblionumber => $bibnum,
293
          itemlost => 0,
294
          withdrawn => 0,
295
          notforloan => 0,
296
          itemnumber => { -not_in => \'SELECT itemnumber FROM branchtransfers WHERE datearrived IS NULL', -not_in => \'SELECT itemnumber FROM issues' },
297
        },
298
        { select => [ { distinct => 'itemnumber' } ] }
299
    )->count;
300
    $reserves->{$bibnum}->{items_count} = $items_count;
301
302
    # patrons with holds
303
    my $patrons_count = Koha::Holds->search(
304
        { biblionumber => $bibnum },
305
        { select => [ { distinct => 'borrowernumber' } ] }
306
    )->count;
307
    $reserves->{$bibnum}->{patrons_count} = $patrons_count;
308
309
    my $pull_count = $items_count <= $patrons_count ? $items_count : $patrons_count;
310
    if ( $pull_count == 0 ) {
311
        delete($reserves->{$bibnum});
312
        next;
313
    }
314
    $reserves->{$bibnum}->{pull_count} = $pull_count;
315
316
    # get other relevant information
317
    my $res_info = Koha::Holds->search(
318
        { 'reserve.biblionumber' => $bibnum, %where },
319
        { prefetch => [ 'borrowernumber', 'itembib', 'biblio' ],
320
          order_by => 'reserve.reservedate',
321
          alias => 'reserve'
322
        }
323
    )->next; # get first item in results
324
    $reserves->{$bibnum}->{borrower} = $res_info->borrower;
325
    $reserves->{$bibnum}->{item} = $res_info->item;
326
    $reserves->{$bibnum}->{biblio} = $res_info->biblio;
327
    $reserves->{$bibnum}->{reserve} = $res_info;
278
}
328
}
279
$sth->finish;
280
329
281
$template->param(
330
$template->param(
282
    todaysdate          => $today,
331
    todaysdate          => $today,
283
    from                => $startdate,
332
    from                => $startdate,
284
    to                  => $enddate,
333
    to                  => $enddate,
285
    reserveloop         => \@reservedata,
334
    reserves            => $reserves,
286
    "BiblioDefaultView".C4::Context->preference("BiblioDefaultView") => 1,
335
    "BiblioDefaultView".C4::Context->preference("BiblioDefaultView") => 1,
287
    HoldsToPullStartDate => C4::Context->preference('HoldsToPullStartDate') || PULL_INTERVAL,
336
    HoldsToPullStartDate => C4::Context->preference('HoldsToPullStartDate') || PULL_INTERVAL,
288
    HoldsToPullEndDate  => C4::Context->preference('ConfirmFutureHolds') || 0,
337
    HoldsToPullEndDate  => C4::Context->preference('ConfirmFutureHolds') || 0,
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt (-41 / +39 lines)
Lines 47-53 Link Here
47
<h3>Reported on [% todaysdate | $KohaDates %]</h3>
47
<h3>Reported on [% todaysdate | $KohaDates %]</h3>
48
<p>The following holds have not been filled. Please retrieve them and check them in.</p>
48
<p>The following holds have not been filled. Please retrieve them and check them in.</p>
49
<div id="searchresults">
49
<div id="searchresults">
50
    [% IF ( reserveloop ) %]
50
    [% IF ( reserves ) %]
51
    <table id="holdst">
51
    <table id="holdst">
52
    <thead>
52
    <thead>
53
        <tr>
53
        <tr>
Lines 67-86 Link Here
67
        </tr>
67
        </tr>
68
    </thead>
68
    </thead>
69
    <tbody>
69
    <tbody>
70
        [% FOREACH reserveloo IN reserveloop %]
70
        [% FOREACH reserve IN reserves %]
71
        <tr>
71
        <tr>
72
        [% IF ( reserveloo.borrowernumber ) %]
72
        [% IF ( reserve.value.borrower ) %]
73
            <td><p><b>[% reserveloo.pullcount | html %]</b></p></td>
73
            <td><p><b>[% reserve.value.pull_count | html %]</b></p></td>
74
            <td>[% reserveloo.count | html %]</td>
74
            <td>[% reserve.value.items_count | html %]</td>
75
            <td>[% reserveloo.rcount | html %]</td>
75
            <td>[% reserve.value.patrons_count | html %]</td>
76
            <td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% reserveloo.borrowernumber | uri %]">[% reserveloo.firstname | html %] [% reserveloo.surname | html %]</a></td>
76
            <td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% reserve.value.borrower.borrowernumber | uri %]">[% reserve.value.borrower.firstname | html %] [% reserve.value.borrower.surname | html %]</a></td>
77
            <td>
77
            <td>
78
            <p>
78
            <p>
79
                [% INCLUDE 'biblio-default-view.inc' biblionumber = reserveloo.biblionumber %]
79
                [% INCLUDE 'biblio-default-view.inc' biblionumber = reserve.value.biblio.biblionumber %]
80
                    [% INCLUDE 'biblio-title.inc' biblio=reserveloo %]
80
                    [% INCLUDE 'biblio-title.inc' biblio=reserve.value.biblio %]
81
                </a></p>
81
                </a></p>
82
                [% IF ( reserveloo.author ) %]<p> by [% reserveloo.author | html %]</p>[% END %]
82
                [% IF ( reserve.value.biblio.biblioitem.editionstatement ) %]<p>[% reserve.value.biblio.biblioitem.editionstatement | html %]</p>[% END %]
83
                [% IF ( reserveloo.editionstatement ) %]<p>[% reserveloo.editionstatement | html %]</p>[% END %]
83
                [% IF ( reserve.value.biblio.author ) %]<p> by [% reserve.value.biblio.author | html %]</p>[% END %]
84
            </td>
84
            </td>
85
        [% ELSE %]
85
        [% ELSE %]
86
            <td>"</td>
86
            <td>"</td>
Lines 90-166 Link Here
90
            <td>"</td>
90
            <td>"</td>
91
        [% END %]
91
        [% END %]
92
        <td>
92
        <td>
93
            [% IF ( reserveloo.holdingbranches ) %]
93
            [% IF ( reserve.value.holdingbranches ) %]
94
               <ul>
94
                [% FOREACH holdingbranch IN reserve.value.holdingbranches %]
95
                    [% FOREACH holdingbranch IN reserveloo.holdingbranches %]
95
                    [% Branches.GetName ( holdingbranch.holdingbranch ) | html %]
96
                        <li>
96
                [% END %]
97
                            [% Branches.GetName ( holdingbranch ) | html %]
98
                        </li>
99
                    [% END %]
100
               </ul>
101
            [% END %]
97
            [% END %]
102
        </td>
98
        </td>
103
        <td>
99
        <td>
104
            [% IF ( reserveloo.itemcallnumber ) %]
100
            [% IF ( reserve.value.callnumbers ) %]
105
                <ul>
101
                <ul>
106
                    [% FOREACH itemcallnumber IN reserveloo.itemcallnumber  %]
102
                    [% FOREACH callnumber IN reserve.value.callnumbers %]
107
                        <li>
103
                        <li>
108
                            [% itemcallnumber | html %]
104
                            [% callnumber.itemcallnumber | html %]
109
                        </li>
105
                        </li>
110
                    [% END %]
106
                    [% END %]
111
                </ul>
107
                </ul>
112
            [% END %]
108
            [% END %]
113
        </td>
109
        </td>
114
        <td>
110
        <td>
115
            [% IF ( reserveloo.copyno ) %]
111
            [% IF ( reserve.value.copynumbers ) %]
116
                <ul>
112
                <ul>
117
                    [% FOREACH copyno IN reserveloo.copyno %]
113
                    [% FOREACH copyno IN reserve.value.copynumbers %]
118
                        <li>
114
                        <li>
119
                            [% copyno | html %]
115
                            [% copyno.copynumber | html %]
120
                        </li>
116
                        </li>
121
                    [% END %]
117
                    [% END %]
122
                </ul>
118
                </ul>
123
            [% END %]
119
            [% END %]
124
        </td>
120
        </td>
125
        <td>
121
        <td>
126
            [% IF ( reserveloo.enumchron ) %]
122
            [% IF ( reserve.value.enumchrons ) %]
127
                <ul>
123
                <ul>
128
                    [% FOREACH enumchron IN reserveloo.enumchron %]
124
                    [% FOREACH enumchron IN reserve.value.enumchrons %]
129
                        <li>
125
                        <li>
130
                            [% enumchron | html %]
126
                            [% enumchron.enumchron | html %]
131
                        </li>
127
                        </li>
132
                    [% END %]
128
                    [% END %]
133
                </ul>
129
                </ul>
134
            [% END %]
130
            [% END %]
135
        </td>
131
        </td>
136
        <td>
132
        <td>
137
        [% FOREACH itemType IN reserveloo.itemTypes %]
133
        [% FOREACH type IN reserve.value.itemtypes %]
138
            [% ItemTypes.GetDescription( itemType ) | html %]
134
            [% IF Koha.Preference('item-level_itypes') %]
135
                [% ItemTypes.GetDescription( type.itype ) | html %]
136
            [% ELSE %]
137
                [% ItemTypes.GetDescription( type.itemtype ) | html %]
138
            [% END %]
139
        [% END %]
139
        [% END %]
140
        </td>
140
        </td>
141
        <td>
141
        <td>
142
        [% FOREACH loc IN reserveloo.locations %]
142
        [% FOREACH loc IN reserve.value.locations %]
143
            [% AuthorisedValues.GetByCode('LOC', loc) | html %]
143
            [% AuthorisedValues.GetByCode('LOC', loc.location) | html %]
144
        [% END %]
144
        [% END %]
145
        </td>
145
        </td>
146
        <td>
146
        <td>
147
            <span title="[% reserveloo.reservedate | html %]">[% reserveloo.reservedate | $KohaDates %] in [% Branches.GetName ( reserveloo.branch ) | html %]</span>
147
            <span title="[% reserve.value.reserve.reservedate | html %]">[% reserve.value.reserve.reservedate | $KohaDates %] in [% Branches.GetName ( reserve.value.reserve.branchcode ) | html %]</span>
148
        </td>
148
        </td>
149
        <td>
149
        <td>
150
            <form name="cancelReserve" action="/cgi-bin/koha/circ/pendingreserves.pl" method="post">
150
            <form name="cancelReserve" action="/cgi-bin/koha/circ/pendingreserves.pl" method="post">
151
                <input type="hidden" name="op" value="cancel_reserve" />
151
                <input type="hidden" name="op" value="cancel_reserve" />
152
                <input type="hidden" name="reserve_id" value="[% reserveloo.reserve_id | html %]" />
152
                <input type="hidden" name="reserve_id" value="[% reserve.value.reserve.reserve_id | html %]" />
153
                [% IF reserveloo.holdingbranch != reserveloo.homebranch %]
153
                [% IF reserve.value.item.holdingbranch != reserve.value.item.homebranch %]
154
                    <input type="submit" value="Cancel hold and return to : [% Branches.GetName( reserveloo.homebranch ) | html %]" />
154
                    <input type="submit" value="Cancel hold and return to : [% Branches.GetName( reserve.value.itemhomebranch ) | html %]" />
155
                [% ELSE %]
155
                [% ELSE %]
156
                    <input type="submit" value="Cancel hold" />
156
                    <input type="submit" value="Cancel hold" />
157
                [% END %]
157
                [% END %]
158
            </form>
158
            </form>
159
159
160
        [% IF Koha.Preference('CanMarkHoldsToPullAsLost') != 'do_not_allow' %]
160
        [% IF Koha.Preference('CanMarkHoldsToPullAsLost') != 'do_not_allow' %]
161
            [% IF reserveloo.itemnumber %]
161
            [% IF reserve.value.reserve.itemnumber %]
162
                <form name="cancelReserve" action="/cgi-bin/koha/circ/pendingreserves.pl" method="post">
162
                <form name="cancelReserve" action="/cgi-bin/koha/circ/pendingreserves.pl" method="post">
163
                    <input type="hidden" name="reserve_id" value="[% reserveloo.reserve_id | html %]" />
163
                    <input type="hidden" name="reserve_id" value="[% reserve.value.reserve.reserve_id | html %]" />
164
                    [% IF Koha.Preference('CanMarkHoldsToPullAsLost') == 'allow' %]
164
                    [% IF Koha.Preference('CanMarkHoldsToPullAsLost') == 'allow' %]
165
                        <input type="hidden" name="op" value="mark_as_lost" />
165
                        <input type="hidden" name="op" value="mark_as_lost" />
166
                        <input type="submit" value="Mark item as lost" />
166
                        <input type="submit" value="Mark item as lost" />
Lines 288-295 Link Here
288
          $("#homebranchfilter").each( function () {
288
          $("#homebranchfilter").each( function () {
289
              $(this).html( createSelect( holdst.fnGetColumnData(5) ) );
289
              $(this).html( createSelect( holdst.fnGetColumnData(5) ) );
290
              $('select', this).change( function () {
290
              $('select', this).change( function () {
291
                  var filter_value = $(this).val();
291
                  holdst.fnFilter( $(this).child().val(), 5 );
292
                  holdst.fnFilter( filter_value, 5, true );
293
              });
292
              });
294
          });
293
          });
295
          $("#itemtype-filter").each( function () {
294
          $("#itemtype-filter").each( function () {
296
- 

Return to bug 24488