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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt (-572 / +622 lines)
Lines 22-30 Link Here
22
[% INCLUDE 'circ-search.inc' %]
22
[% INCLUDE 'circ-search.inc' %]
23
23
24
[% UNLESS ( multi_hold ) %]
24
[% UNLESS ( multi_hold ) %]
25
    <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> &rsaquo; <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber | html %]">[% biblio.title | html %]</a> &rsaquo; Place a hold on [% INCLUDE 'biblio-title.inc' %]</div>
25
    <div id="breadcrumbs">
26
        <a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo;
27
        <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> &rsaquo;
28
        <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber | html %]">[% biblio.title | html %]</a> &rsaquo;
29
        Place a hold on [% INCLUDE 'biblio-title.inc' %]
30
    </div>
26
[% ELSE %]
31
[% ELSE %]
27
    <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> &rsaquo; Confirm holds</div>
32
    <div id="breadcrumbs">
33
        <a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo;
34
        <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> &rsaquo;
35
        Confirm holds
36
    </div>
28
[% END %]
37
[% END %]
29
38
30
<div class="main container-fluid">
39
<div class="main container-fluid">
Lines 34-672 Link Here
34
        [% ELSE %]
43
        [% ELSE %]
35
            <div class="col-sm-10 col-sm-push-2">
44
            <div class="col-sm-10 col-sm-push-2">
36
        [% END %]
45
        [% END %]
37
            <main>
38
39
[% IF ( noitems ) %]
40
    <div class="dialog alert">
41
    [%IF (multi_hold) %]
42
        <strong>Cannot place hold:</strong> one or more records without items attached.
43
    [% ELSE %]
44
        <strong>Cannot place hold:</strong> this record has no items attached.
45
    [% END %]
46
    </div>
47
[% END %]
48
49
  [% IF ( messagetransfert ) %]
50
		<div class="dialog message">
51
				<h2>Hold found for ([% nextreservtitle | html %]), please transfer</h2>
52
			<p>Hold placed by : <strong> [% nextreservsurname | html %] [% nextreservfirstname | html %]</strong> at : <strong> [% branchname | html %] </strong>, Please transfer this item.
53
			</p>
54
			<form name="cancelReservewithtransfert" action="branchreserves.pl" method="post">
55
				<input type="submit" class="button" />
56
			</form>
57
		</div>
58
  [% END %]
59
60
  [% UNLESS ( multi_hold ) %]
61
  <h1>Place a hold on [% INCLUDE 'biblio-default-view.inc' %][% INCLUDE 'biblio-title.inc' %]</a></h1>
62
  [% ELSE %]
63
    <h1>Confirm holds</h1>
64
  [% END %]
65
66
  [% UNLESS patron OR patron.borrowernumber OR noitems %]
67
    [% IF ( messageborrower ) %]
68
      <div class="dialog alert"><h3>Patron not found</h3><p>No patron with this name, please, try another</p> </div>
69
    [% END %]
70
    <form  id="holds_patronsearch" action="request.pl?biblionumber=[% biblionumber | html %]" method="post">
71
        <fieldset id="circ_holds_selectborrower" class="brief">
72
73
        [% UNLESS borrowers %]
74
                <label for="patron">Patron: </label>
75
                <div class="hint">Enter patron card number or partial name:</div>
76
                <input type="text" size="40" id="patron" class="focus" name="findborrower" autocomplete="off" />
77
                <input type="submit" value="Search" />
78
            [% IF multi_hold %]
79
                <input type="hidden" name="multi_hold" value="[% multi_hold | html %]"/>
80
                <input type="hidden" name="biblionumbers" value="[% biblionumbers | html %]"/>
81
            [% ELSE %]
82
                <input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
83
            [% END %]
84
            </fieldset>
85
        [% ELSE %]
86
            [% INCLUDE 'circ-patron-search-results.inc' destination = "holds" %]
87
          </fieldset>
88
46
89
        [% END %]
47
        <main>
90
        [% IF ( multi_hold ) %]
91
            <input type="hidden" name="multi_hold" value="[% multi_hold | html %]"/>
92
            <input type="hidden" name="biblionumbers" value="[% biblionumbers | html %]"/>
93
        [% END %]
94
    </form>
95
  [% ELSIF NOT noitems %]
96
97
[% IF ( checked_previously && !multi_hold ) %]
98
<div class="dialog alert">
99
  <ul>
100
    <li>Patron has previously checked out this title</li>
101
  </ul>
102
</div>
103
[% END %]
104
48
105
[% IF ( exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
49
            [% IF ( noitems ) %]
106
    <div class="dialog alert">
50
                <div class="dialog alert">
107
51
                [%IF (multi_hold) %]
108
    [% UNLESS ( multi_hold ) %]
52
                    <strong>Cannot place hold:</strong> one or more records without items attached.
109
      <h3>Cannot place hold</h3>
53
                [% ELSE %]
110
      <ul>
54
                    <strong>Cannot place hold:</strong> this record has no items attached.
111
        [% IF ( exceeded_maxreserves ) %]
112
          <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %] </a> can only place a maximum of [% maxreserves | html %] total holds.</li>
113
        [% ELSIF ( exceeded_holds_per_record ) %]
114
          <li><strong>Too many holds for this record: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %] </a> can only place a maximum of [% max_holds_for_record | html %] hold(s) on this record.</li>
115
        [% ELSIF ( alreadypossession ) %]
116
          <li> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a> <strong>is already in possession</strong> of one item.</li>
117
        [% ELSIF ( alreadyreserved ) %]
118
          <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a> <strong>already has a hold</strong> on this item.</li>
119
        [% ELSIF ( ageRestricted ) %]
120
          <li><strong>Age restricted</strong></li>
121
        [% ELSIF ( none_available ) %]
122
          <li> <strong>No items are available</strong> to be placed on hold.</li>
123
        [% ELSIF ( maxreserves ) %]
124
          <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %] </a> has too many holds.</li>
125
        [% END %]
126
      </ul>
127
    [% ELSE %]
128
        <h3>Cannot place hold on some items</h3>
129
        [% IF ( exceeded_maxreserves ) %]
130
          <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %] </a> can place [% new_reserves_allowed | html %] of the requested [% new_reserves_count | html %] holds for a maximum of [% maxreserves | html %] total holds.</li>
131
        [% ELSIF ( exceeded_holds_per_record ) %]
132
            [% FOREACH biblioloo IN biblioloop %]
133
                [% IF (biblioloo.tooManyHoldsForThisRecord) %]
134
                    <li><strong>Too many holds for <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]"> [% biblioloo.title | html %]</a>: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | html %]">[% patron.firstname | html %] [% patron.surname | html %] </a> can only place a maximum of [% max_holds_for_record | html %] hold(s) on this record.</li>
135
                [% END %]
55
                [% END %]
56
                </div>
136
            [% END %]
57
            [% END %]
137
        [% END %]
138
    [% END %]
139
140
    </div>
141
[% END %]
142
143
[% IF ( expiry || diffbranch || patron.is_debarred || ( amount_outstanding && Koha.Preference('maxoutstanding') && amount_outstanding > Koha.Preference('maxoutstanding') ) ) %]
144
<div class="dialog message"><ul>
145
    [% IF ( expiry ) %]
146
    <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a>: <strong>Account has expired</strong></li>
147
    [% END %]
148
149
    [% IF patron.is_debarred %]
150
    <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]#reldebarments">[% patron.firstname | html %] [% patron.surname | html %]</a>: <strong>Patron has restrictions</strong></li>
151
    [% END %]
152
153
    [% IF amount_outstanding && Koha.Preference('maxoutstanding') && amount_outstanding > Koha.Preference('maxoutstanding') %]
154
    <li><a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a>: <strong>Patron has outstanding fines: [% amount_outstanding | $Price %]</strong></li>
155
    [% END %]
156
58
157
    [% IF ( diffbranch ) %]
59
            [% IF ( messagetransfert ) %]
158
    <li> <strong>Pickup library is different. </strong>Patron: <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a> Patron's home library: ([% Branches.GetName(patron.branchcode) | html %] / [% patron.branchcode | html %] )</li>
60
                <div class="dialog message">
159
    [% END %]
61
                    <h2>Hold found for ([% nextreservtitle | html %]), please transfer</h2>
160
62
                    <p>Hold placed by : <strong> [% nextreservsurname | html %] [% nextreservfirstname | html %]</strong> at : <strong> [% branchname | html %] </strong>, Please transfer this item.
161
</ul></div>
63
                    </p>
162
[% END %]
64
                    <form name="cancelReservewithtransfert" action="branchreserves.pl" method="post">
163
65
                        <input type="submit" class="button" />
164
  [% IF ( messageborrower ) %]
66
                    </form>
165
   <div class="dialog alert"><h3>Patron not found:</h3> <p>Name or barcode not found. Please try an other </p></div>
67
                </div>
166
  [% END %]
167
168
  <fieldset class="rows left">
169
    <legend>Hold details</legend>
170
        <form action="placerequest.pl" method="post" name="form" id="hold-request-form">
171
172
        <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
173
        <input type="hidden" name="type" value="str8" />
174
175
        [% IF ( multi_hold ) %]
176
            <input type="hidden" name="multi_hold" value="[% multi_hold | html %]"/>
177
            <input type="hidden" name="biblionumbers" id="multi_hold_bibs" value="[% biblionumbers | html %]"/>
178
            <input type="hidden" name="bad_bibs" id="bad_bibs" value=""/>
179
            <input type="hidden" name="request" value="any"/>
180
            [% FOREACH biblioloo IN biblioloop %]
181
              <input type="hidden" name="title_[% biblioloo.biblionumber | html %]" value="[% biblioloo.title | html %]"/>
182
              <input type="hidden" name="rank_[% biblioloo.biblionumber | html %]" value="[% biblioloo.rank | html %]"/>
183
            [% END %]
68
            [% END %]
184
        [% ELSE %]
185
            <input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
186
            <input type="hidden" name="title" value="[% biblio.title | html %]" />
187
            <input type="hidden" name="rank-request" value="[% fixedRank | html %]" />
188
        [% END %]
189
69
190
       <ol> <li><span class="label">Patron:</span>
70
            [% UNLESS ( multi_hold ) %]
191
            [% IF ( patron.borrowernumber ) %]
71
                <h1>Place a hold on [% INCLUDE 'biblio-default-view.inc' %][% INCLUDE 'biblio-title.inc' %]</a></h1>
192
                <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %] ([% patron.cardnumber | html %])</a>
193
            [% ELSE %]
194
                Not defined yet
195
            [% END %]
196
        </li>
197
        [% UNLESS ( multi_hold ) %]
198
          <li>
199
              <span class="label">Estimated priority:</span>
200
              <strong>[% fixedRank | html %]</strong>
201
          </li>
202
        [% END %]
203
        <li>
204
            <label for="holdnotes">Notes:</label>
205
            <textarea id="holdnotes" name="notes" cols="30" rows="1"></textarea>
206
        </li>
207
        <li>
208
            <label for="pickup">Pickup at:</label>
209
            <select name="pickup" size="1" id="pickup">
210
                [% PROCESS options_for_libraries libraries => Branches.all({ selected => pickup, search_params => { pickup_location => 1 } }) %]
211
            </select>
212
        </li>
213
214
        [% UNLESS ( multi_hold ) %]
215
            [% IF Koha.Preference('AllowHoldItemTypeSelection') %]
216
                <li>
217
                    <label for="itemtype">Request specific item type:</label>
218
                    <select name="itemtype" size="1" id="itemtype">
219
                        <option value="">Any item type</option>
220
                        [%- FOREACH itemtype IN available_itemtypes %]
221
                            <option value="[% itemtype | html %]">[% ItemTypes.GetDescription( itemtype ) | html %]</option>
222
                        [%- END %]
223
                    </select>
224
                </li>
225
            [% END %]
226
        [% END %]
227
228
	[% IF ( reserve_in_future ) %]
229
	<li>
230
        <label for="from">Hold starts on date:</label>
231
        <input name="reserve_date" id="from" size="10" class="datepickerfrom" type="text" >
232
        <a href="#" id="clear-date-from" class="clear-date">Clear date</a>
233
	</li>
234
	[% END %]
235
236
	<li>
237
        <label for="to">Hold expires on date:</label>
238
        <input name="expiration_date" id="to" size="10" class="datepickerto" type="text" />
239
        <a href="#" id="clear-date-to" class="clear-date">Clear date</a>
240
	</li>
241
242
        [% UNLESS ( multi_hold ) %]
243
          <li> <label for="requestany">Hold next available item </label>
244
               [% IF force_hold_level == 'item' %]
245
                   <input type="checkbox" id="requestany" name="request" disabled="true" />
246
               [% ELSIF force_hold_level == 'record' %]
247
                   <input type="checkbox" id="requestany" checked="checked" value="Any" disabled="true"/>
248
                   <input type="hidden" name="request" value="Any"/>
249
               [% ELSE %]
250
                   <input type="checkbox" id="requestany" name="request" checked="checked" value="Any" />
251
                [% END %]
252
               <input type="hidden" name="biblioitem" value="[% biblioitemnumber | html %]" />
253
               <input type="hidden" name="alreadyreserved" value="[% alreadyreserved | html %]" />
254
          </li>
255
256
          [% IF remaining_holds_for_record > 1 %]
257
              <li>
258
                   <label for="holds_to_place_count">Holds to place (count)</label>
259
                   <input id="holds_to_place_count" type="number" name="holds_to_place_count" min="1" max="[% remaining_holds_for_record | html %]" step="1" value="1" />
260
              </li>
261
            [% ELSE %]
72
            [% ELSE %]
262
                <input type="hidden" name="holds_to_place_count" value="1" />
73
                <h1>Confirm holds</h1>
263
            [% END %]
74
            [% END %]
264
        [% END %]
265
75
266
</ol>
76
            [% UNLESS patron OR patron.borrowernumber OR noitems %]
267
   [% UNLESS ( multi_hold ) %]
77
                [% IF ( messageborrower ) %]
268
        <fieldset class="action">
78
                    <div class="dialog alert">
269
            [% IF ( patron.borrowernumber ) %]
79
                        <h3>Patron not found</h3>
270
                [% IF ( override_required ) %]
80
                        <p>No patron with this name, please, try another</p>
271
                    <input type="submit" class="warning" value="Place hold" />
81
                    </div>
272
                [% ELSIF ( none_available ) %]
273
                    <input type="submit" disabled="disabled" value="Place hold" />
274
                [% ELSE %]
275
                    <input type="submit" value="Place hold" />
276
                [% END %]
82
                [% END %]
277
            [% END %]
278
        </fieldset>
279
        [% FOREACH bibitemloo IN bibitemloop %]
280
          <ol>
281
            [% UNLESS ( item_level_itypes ) %]
282
              <li><span class="label">Item type:</span> [% bibitemloo.description | html %]</li>
283
            [% END %]
284
83
285
            [% IF ( bibitemloo.publicationyear ) %]<li><span class="label">Publication year:</span> [% bibitemloo.publicationyear | html %]</li>[% END %]
84
                <form  id="holds_patronsearch" action="request.pl?biblionumber=[% biblionumber | html %]" method="post">
286
          </ol>
85
                    <fieldset id="circ_holds_selectborrower" class="brief">
287
86
                        [% UNLESS borrowers %]
288
        <h2 style="padding: 0 1em;">
87
                            <label for="patron">Patron: </label>
289
            Place a hold on a specific item
88
                            <div class="hint">Enter patron card number or partial name:</div>
290
            [% IF bibitemloo.force_hold_level == 'item' %]
89
                            <input type="text" size="40" id="patron" class="focus" name="findborrower" autocomplete="off" />
291
                <span class="error"><i>(Required)</i></span>
90
                            <input type="submit" value="Search" />
292
            [% END %]
91
                            [% IF multi_hold %]
293
        </h2>
92
                                <input type="hidden" name="multi_hold" value="[% multi_hold | html %]"/>
294
        <table id="requestspecific">
93
                                <input type="hidden" name="biblionumbers" value="[% biblionumbers | html %]"/>
295
            <thead>
296
                <tr>
297
                    <th>Hold</th>
298
                [% IF ( item_level_itypes ) %]
299
                    <th>Item type</th>
300
                [% END %]
301
                    <th>Barcode</th>
302
                    <th>Home library</th>
303
                    <th>Last location</th>
304
                [% IF itemdata_ccode %]
305
                    <th>Collection</th>
306
                [% END %]
307
                    <th>Call no.</th>
308
                    <th>Copy number</th>
309
                [% IF itemdata_enumchron %]
310
                    <th>Vol no.</th>
311
                [% END %]
312
                    <th class="title-string">Information</th>
313
                </tr>
314
            </thead>
315
            <tbody>
316
            [% SET selected = 0 %]
317
            [% FOREACH itemloo IN bibitemloo.itemloop %]
318
            [% UNLESS ( itemloo.hide ) %]
319
                <tr class="[% itemloo.backgroundcolor | html %]">
320
                    <td>
321
                [% IF itemloo.force_hold_level == 'record' # Patron has placed a record level hold previously for this record %]
322
                    <span class="error">
323
                        <i class="fa fa-times fa-lg" title="Cannot be put on hold"></i>
324
                        Hold must be record level
325
                    </span>
326
                [% ELSIF ( itemloo.available ) %]
327
                    <input type="radio" name="checkitem" value="[% itemloo.itemnumber | html %]" />
328
                [% ELSIF ( itemloo.override ) %]
329
                    <input type="radio" name="checkitem" class="needsoverride" value="[% itemloo.itemnumber | html %]" />
330
                    <i class="fa fa-exclamation-triangle fa-lg" style="color:gold" title="Requires override of hold policy"/></i>
331
                [% ELSE %]
332
                    <span class="error">
333
                        <i class="fa fa-times fa-lg" title="Cannot be put on hold"></i>
334
                        [% IF itemloo.not_holdable %]
335
                            [% IF itemloo.not_holdable == 'damaged' %]
336
                                Item damaged
337
                            [% ELSIF itemloo.not_holdable == 'ageRestricted' %]
338
                                Age restricted
339
                            [% ELSIF itemloo.not_holdable == 'tooManyHoldsForThisRecord' %]
340
                                Exceeded max holds per record
341
                            [% ELSIF itemloo.not_holdable == 'tooManyReservesToday' %]
342
                                Daily hold limit reached for patron
343
                            [% ELSIF itemloo.not_holdable == 'tooManyReserves' %]
344
                                Too many holds
345
                            [% ELSIF itemloo.not_holdable == 'notReservable' %]
346
                                Not holdable
347
                            [% ELSIF itemloo.not_holdable == 'cannotReserveFromOtherBranches' %]
348
                                Patron is from different library
349
                            [% ELSIF itemloo.not_holdable == 'itemAlreadyOnHold' %]
350
                                Patron already has hold for this item
351
                            [% ELSIF itemloo.not_holdable == 'cannotBeTransferred' %]
352
                                Cannot be transferred to pickup library
353
                            [% ELSE %]
94
                            [% ELSE %]
354
                                [% itemloo.not_holdable | html %]
95
                                <input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
355
                            [% END %]
96
                            [% END %]
97
                        [% ELSE %]
98
                            [% INCLUDE 'circ-patron-search-results.inc' destination = "holds" %]
356
                        [% END %]
99
                        [% END %]
357
                    </span>
100
                    </fieldset>
358
                [% END %]
101
359
                    </td>
102
                    [% IF ( multi_hold ) %]
360
                [% IF ( item_level_itypes ) %]
103
                        <input type="hidden" name="multi_hold" value="[% multi_hold | html %]"/>
361
                    <td>
104
                        <input type="hidden" name="biblionumbers" value="[% biblionumbers | html %]"/>
362
                    [% UNLESS ( noItemTypeImages ) %]
363
                        [% IF ( itemloo.imageurl ) %]<img src="[% itemloo.imageurl | html %]" alt="" /> <br /> [% END %]
364
                    [% END %]
105
                    [% END %]
365
                        [% itemloo.itypename | html %]
106
                </form>
366
                    </td>
367
                [% END %]
368
107
369
                    <td>
108
            [% ELSIF NOT noitems %]
370
                        [% itemloo.barcode | html %]
109
371
                    </td>
110
                [% IF ( checked_previously && !multi_hold ) %]
372
                    <td>
111
                    <div class="dialog alert">
373
                        [% Branches.GetName( itemloo.homebranch ) | html %]
112
                        <ul>
374
                    </td>
113
                            <li>Patron has previously checked out this title</li>
375
                    <td>
114
                        </ul>
376
                        [% Branches.GetName( itemloo.holdingbranch ) | html %]
115
                    </div>
377
                    </td>
378
                [% IF itemdata_ccode %]
379
                    <td>
380
                        [% IF ( itemloo.ccode ) %][% AuthorisedValues.GetByCode( 'CCODE', itemloo.ccode ) | html %][% END %]
381
                    </td>
382
                [% END %]
383
                    <td>
384
                        [% itemloo.itemcallnumber | html %]
385
                    </td>
386
                    <td>
387
                        [% IF ( itemloo.copynumber ) %][% itemloo.copynumber | html %][% ELSE %]&nbsp;[% END %]
388
                    </td>
389
                [% IF itemdata_enumchron %]
390
                    <td>
391
                        [% itemloo.enumchron | html %]
392
                    </td>
393
                [% END %]
116
                [% END %]
394
                    <td>
117
395
                        [% IF ( itemloo.onloan ) %]
118
                [% IF ( exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
396
                            <span title="[% itemloo.date_due | html %]" class="checkedout">Due [% itemloo.date_due | $KohaDates  as_due_date => 1 %]</span>
119
                    <div class="dialog alert">
120
121
                        [% UNLESS ( multi_hold ) %]
122
                            <h3>Cannot place hold</h3>
123
                            <ul>
124
                                [% IF ( exceeded_maxreserves ) %]
125
                                    <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %] </a> can only place a maximum of [% maxreserves | html %] total holds.</li>
126
                                [% ELSIF ( exceeded_holds_per_record ) %]
127
                                    <li><strong>Too many holds for this record: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %] </a> can only place a maximum of [% max_holds_for_record | html %] hold(s) on this record.</li>
128
                                [% ELSIF ( alreadypossession ) %]
129
                                    <li> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a> <strong>is already in possession</strong> of one item.</li>
130
                                [% ELSIF ( alreadyreserved ) %]
131
                                    <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a> <strong>already has a hold</strong> on this item.</li>
132
                                [% ELSIF ( ageRestricted ) %]
133
                                    <li><strong>Age restricted</strong></li>
134
                                [% ELSIF ( none_available ) %]
135
                                    <li> <strong>No items are available</strong> to be placed on hold.</li>
136
                                [% ELSIF ( maxreserves ) %]
137
                                    <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %] </a> has too many holds.</li>
138
                                [% END %]
139
                            </ul>
397
                        [% ELSE %]
140
                        [% ELSE %]
398
                            <span title="0000-00-00">
141
                            <h3>Cannot place hold on some items</h3>
399
                                [% IF ( itemloo.transfertwhen ) %]
142
                            [% IF ( exceeded_maxreserves ) %]
400
                                    In transit from [% Branches.GetName( itemloo.transfertfrom ) | html %],
143
                                <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %] </a> can place [% new_reserves_allowed | html %] of the requested [% new_reserves_count | html %] holds for a maximum of [% maxreserves | html %] total holds.</li>
401
                                    to [% Branches.GetName( itemloo.transfertto ) | html %], since [% itemloo.transfertwhen | html %]
144
                            [% ELSIF ( exceeded_holds_per_record ) %]
145
                                [% FOREACH biblioloo IN biblioloop %]
146
                                    [% IF (biblioloo.tooManyHoldsForThisRecord) %]
147
                                        <li><strong>Too many holds for <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]"> [% biblioloo.title | html %]</a>: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | html %]">[% patron.firstname | html %] [% patron.surname | html %] </a> can only place a maximum of [% max_holds_for_record | html %] hold(s) on this record.</li>
148
                                    [% END %]
402
                                [% END %]
149
                                [% END %]
403
                            </span>
404
                        [% END %]
405
406
                        [% IF ( itemloo.reservedate ) %]
407
                            [% IF ( itemloo.nocancel ) %]
408
                                    Can't be cancelled when item is in transit
409
                            [% ELSE %]
410
                            [% IF ( itemloo.waitingdate ) %]Waiting[% ELSE %]On hold[% END %]
411
                            [% IF ( itemloo.canreservefromotherbranches ) %]for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% itemloo.ReservedFor.borrowernumber | uri %]">[% itemloo.ReservedFor.firstname | html %] [% itemloo.ReservedFor.surname | html %]</a>[% END %] [% IF ( itemloo.waitingdate ) %]at[% ELSE %]expected at[% END %] [% Branches.GetName( itemloo.ExpectedAtLibrary ) | html %]
412
                            since
413
                            [% IF ( itemloo.waitingdate ) %][% itemloo.waitingdate | $KohaDates %][% ELSE %][% IF ( itemloo.reservedate ) %][% itemloo.reservedate | html %][% END %][% END %]. <a class="info cancel-hold" href="modrequest.pl?CancelBiblioNumber=[% itemloo.biblionumber | html %]&amp;CancelBorrowerNumber=[% itemloo.ReservedFor.borrowernumber | html %]&amp;CancelItemnumber=[% itemloo.itemnumber | html %]">Cancel hold</a>
414
                            [% END %]
150
                            [% END %]
415
                        [% ELSE %]
416
                            Not on hold
417
                        [% END %]
418
419
                        [% IF itemloo.item_level_holds == "N" %]
420
                            <br/>Item level hold not allowed from OPAC
421
                        [% ELSIF itemloo.item_level_holds == "F" %]
422
                            <br/>Item level hold forced from OPAC
423
                        [% END %]
424
425
                        [% IF ( itemloo.itemlost ) %]
426
                           <span class="lost">[% AuthorisedValues.GetByCode( 'LOST', itemloo.itemlost ) | html %]</span>
427
                        [% END %]
428
429
                        [% IF ( itemloo.damaged ) %]
430
                            <span class="dmg">[% AuthorisedValues.GetByCode( 'DAMAGED', itemloo.damaged ) | html %]</span>
431
                        [% END %]
151
                        [% END %]
152
                    </div>
153
                [% END %]
432
154
433
                        [% IF ( itemloo.notforloan ) %]
155
                [% IF ( expiry || diffbranch || patron.is_debarred || ( amount_outstanding && Koha.Preference('maxoutstanding') && amount_outstanding > Koha.Preference('maxoutstanding') ) ) %]
434
                           <span class="nfl">Not for loan ([% AuthorisedValues.GetByCode( 'NOT_LOAN', itemloo.notforloan ) | html %])</span>
156
                    <div class="dialog message">
435
                        [% END %]
157
                        <ul>
436
                    </td>
158
                            [% IF ( expiry ) %]
437
                </tr>
159
                                <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a>: <strong>Account has expired</strong></li>
438
            [% END %] <!--UNLESS item hide-->
160
                            [% END %]
439
            [% END %] <!-- itemloop -->
440
            </tbody>
441
        </table>
442
    [% IF ( bibitemloo.hiddencount ) %]
443
        <form>
444
        <p class="hiddencount"><a href="request.pl?biblionumber=[% bibitemloo.biblionumber | uri %]&amp;borrowernumber=[% bibitemloo.borrowernumber | uri %]&amp;showallitems=1">Show all items ([% bibitemloo.hiddencount | html %] hidden)</a></p>
445
        </form>
446
    [% END %] <!-- hiddencount -->
447
    [% END %] <!-- bibitemloop -->
448
449
  [% ELSE %]<!-- UNLESS multi_hold -->
450
451
    <table id="requesttitles">
452
      <tr>
453
        <th>&nbsp;</th>
454
        <th>Title</th>
455
        [% UNLESS ( item_level_itypes ) %]
456
          <th>Item type</th>
457
        [% END %]
458
        <th>Priority</th>
459
        <th>Information</th>
460
      </tr>
461
      [% FOREACH biblioloo IN biblioloop %]
462
        [% IF ( biblioloo.warn ) %]
463
          <tr class="onissue">
464
        [% ELSE %]
465
          <tr>
466
        [% END %]
467
          <td>
468
            [% UNLESS ( biblioloo.warn ) %]
469
              <input class="multi_hold_item_checkbox" type="checkbox" checked="checked" title="[% biblioloo.biblionumber | html %]"/></td>
470
            [% END %]
471
            <td>
472
            <ul>
473
              <li><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]">[% biblioloo.title | html %]</a></li>
474
              [% IF ( biblioloo.publicationyear ) %]
475
                <li><span class="label">Publication year:</span> [% biblioloo.publicationyear | html %]</li>
476
              [% END %]
477
            </ul>
478
            [% IF ( biblioloo.warn ) %]
479
              <span class="not_holdable" title="[% biblioloo.biblionumber | html %]"></span>
480
            [% END %]
481
          </td>
482
          [% UNLESS ( item_level_itypes ) %]
483
            <td>
484
              <img src="[% biblioloo.imageurl | html %]" alt="[% biblioloo.itypename | html %]" title="[% biblioloo.itypename | html %]" />
485
            </td>
486
          [% END %]
487
            <td>[% biblioloo.rank | html %]</td>
488
          <td>
489
            [% IF ( biblioloo.checked_previously ) %]
490
              <span>Patron has previously checked out this title</span><br/>
491
            [% END %]
492
            [% IF ( biblioloo.alreadyres ) %]
493
              <ul>
494
            [% ELSE %]
495
              [% IF ( biblioloo.none_avail ) %]
496
                <ul>
497
              [% END %]
498
            [% END %]
499
161
500
          [% IF ( biblioloo.alreadyres ) %]
162
                            [% IF patron.is_debarred %]
501
              <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a> <strong>already has a hold</strong> on this item </li>
163
                                <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]#reldebarments">[% patron.firstname | html %] [% patron.surname | html %]</a>: <strong>Patron has restrictions</strong></li>
502
          [% END %]
164
                            [% END %]
503
          [% IF ( biblioloo.none_avail ) %]
504
              <li> <strong>No items are available</strong> to be placed on hold</li>
505
          [% END %]
506
165
507
            [% IF ( biblioloo.alreadyres ) %]
166
                            [% IF amount_outstanding && Koha.Preference('maxoutstanding') && amount_outstanding > Koha.Preference('maxoutstanding') %]
508
              </ul>
167
                                <li><a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a>: <strong>Patron has outstanding fines: [% amount_outstanding | $Price %]</strong></li>
509
            [% ELSE %]
168
                            [% END %]
510
              [% IF ( biblioloo.none_avail ) %]
511
                </ul>
512
              [% END %]
513
            [% END %]
514
169
515
          </td>
170
                            [% IF ( diffbranch ) %]
516
        </tr>
171
                                <li> <strong>Pickup library is different. </strong>Patron: <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a> Patron's home library: ([% Branches.GetName(patron.branchcode) | html %] / [% patron.branchcode | html %] )</li>
517
      [% END %]
172
                            [% END %]
518
    </table>
519
173
520
  [% END %]<!-- /multi_hold -->
174
                        </ul>
175
                    </div>
176
                [% END %]
521
177
522
    <fieldset class="action">
178
                [% IF ( messageborrower ) %]
523
        [% IF ( patron AND patron.borrowernumber ) %]
179
                    <div class="dialog alert">
524
            [% IF ( override_required ) %]
180
                        <h3>Patron not found:</h3>
525
                <input type="submit" class="warning" value="Place hold" />
181
                        <p>Name or barcode not found. Please try an other </p>
526
            [% ELSIF ( none_available ) %]
182
                    </div>
527
                <input type="submit" disabled="disabled" value="Place hold" />
528
            [% ELSE %]
529
                [% IF ( multi_hold ) %]
530
                    <input type="submit" value="Place hold" id="multi_hold_submit"/>
531
                [% ELSE %]
532
                    <input type="submit" value="Place hold" />
533
                [% END %]
183
                [% END %]
534
            [% END %]
535
        [% END %]
536
    </fieldset>
537
    </form>
538
	</fieldset>
539
[% END %]
540
184
541
[% UNLESS ( patron ) %]
185
                <fieldset class="rows left">
542
    [% IF ( reserveloop ) %]
186
                    <legend>Hold details</legend>
543
        <form name="T[% time | html %]" action="modrequest.pl" method="post">
187
                        <form action="placerequest.pl" method="post" name="form" id="hold-request-form">
544
            [% IF ( multi_hold ) %]
545
                <input type = "hidden" name="multi_hold" value="1"/>
546
                <input type = "hidden" name="biblionumbers" value="[% biblionumbers | html %]"/>
547
            [% END %]
548
188
549
            <fieldset class="rows left">
189
                        <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
550
                <legend>Existing holds</legend>
190
                        <input type="hidden" name="type" value="str8" />
551
191
552
                [% FOREACH biblioloo IN biblioloop %]
553
                    [% IF ( biblioloo.reserveloop ) %]
554
                        [% IF ( multi_hold ) %]
192
                        [% IF ( multi_hold ) %]
555
                            <h3>
193
                            <input type="hidden" name="multi_hold" value="[% multi_hold | html %]"/>
556
                                <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]">
194
                            <input type="hidden" name="biblionumbers" id="multi_hold_bibs" value="[% biblionumbers | html %]"/>
557
                                    [% biblioloo.title | html %]
195
                            <input type="hidden" name="bad_bibs" id="bad_bibs" value=""/>
558
                                </a>
196
                            <input type="hidden" name="request" value="any"/>
559
                            </h3>
197
                            [% FOREACH biblioloo IN biblioloop %]
198
                                <input type="hidden" name="title_[% biblioloo.biblionumber | html %]" value="[% biblioloo.title | html %]"/>
199
                                <input type="hidden" name="rank_[% biblioloo.biblionumber | html %]" value="[% biblioloo.rank | html %]"/>
200
                            [% END %]
201
                        [% ELSE %]
202
                            <input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
203
                            <input type="hidden" name="title" value="[% biblio.title | html %]" />
204
                            <input type="hidden" name="rank-request" value="[% fixedRank | html %]" />
560
                        [% END %]
205
                        [% END %]
561
206
562
                        [% IF Koha.Preference('HoldsSplitQueue') == 'branch' %]
207
                        <ol>
563
                            [% SET branchcodes = [] %]
208
                            <li>
209
                                <span class="label">Patron:</span>
210
                                [% IF ( patron.borrowernumber ) %]
211
                                    <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %] ([% patron.cardnumber | html %])</a>
212
                                [% ELSE %]
213
                                    Not defined yet
214
                                [% END %]
215
                            </li>
564
216
565
                            [% FOREACH h IN biblioloo.reserveloop %]
217
                            [% UNLESS ( multi_hold ) %]
566
                                [% branchcodes.push( h.branchcode ) %]
218
                                <li>
219
                                    <span class="label">Estimated priority:</span>
220
                                    <strong>[% fixedRank | html %]</strong>
221
                                </li>
567
                            [% END %]
222
                            [% END %]
568
                            [% branchcodes = branchcodes.unique %]
569
223
570
                            [% FOREACH b IN branchcodes.sort %]
224
                            <li>
571
                                [% SET holds_by_branch = [] %]
225
                                <label for="holdnotes">Notes:</label>
572
                                [% FOREACH h IN biblioloo.reserveloop %]
226
                                <textarea id="holdnotes" name="notes" cols="30" rows="1"></textarea>
573
                                    [% IF h.branchcode == b %]
227
                            </li>
574
                                        [% holds_by_branch.push( h ) %]
228
                            <li>
575
                                    [% END %]
229
                                <label for="pickup">Pickup at:</label>
230
                                <select name="pickup" size="1" id="pickup">
231
                                    [% PROCESS options_for_libraries libraries => Branches.all({ selected => pickup, search_params => { pickup_location => 1 } }) %]
232
                                </select>
233
                            </li>
234
235
                            [% UNLESS ( multi_hold ) %]
236
                                [% IF Koha.Preference('AllowHoldItemTypeSelection') %]
237
                                    <li>
238
                                        <label for="itemtype">Request specific item type:</label>
239
                                        <select name="itemtype" size="1" id="itemtype">
240
                                            <option value="">Any item type</option>
241
                                            [%- FOREACH itemtype IN available_itemtypes %]
242
                                                <option value="[% itemtype | html %]">[% ItemTypes.GetDescription( itemtype ) | html %]</option>
243
                                            [%- END %]
244
                                        </select>
245
                                    </li>
576
                                [% END %]
246
                                [% END %]
577
                                <fieldset>
578
                                    <legend>[% Branches.GetName( b ) | html %]</legend>
579
                                    [% INCLUDE holds_table.inc holds=holds_by_branch %]
580
                                </fieldset>
581
                            [% END %]
247
                            [% END %]
582
                        [% ELSIF Koha.Preference('HoldsSplitQueue') == 'itemtype' %]
583
                            [% SET itemtypes = [] %]
584
248
585
                            [% FOREACH h IN biblioloo.reserveloop %]
249
                            [% IF ( reserve_in_future ) %]
586
                                [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
250
                                <li>
587
                                [% itemtypes.push( hold_itemtype ) %]
251
                                    <label for="from">Hold starts on date:</label>
252
                                    <input name="reserve_date" id="from" size="10" class="datepickerfrom" type="text" >
253
                                    <a href="#" id="clear-date-from" class="clear-date">Clear date</a>
254
                                </li>
588
                            [% END %]
255
                            [% END %]
589
                            [% itemtypes = itemtypes.unique %]
590
591
                            [% FOREACH i IN itemtypes.sort %]
592
                                [% SET holds_by_itemtype = [] %]
593
                                [% FOREACH h IN biblioloo.reserveloop %]
594
                                    [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
595
                                    [% IF hold_itemtype == i %]
596
                                        [% holds_by_itemtype.push( h ) %]
597
                                    [% END %]
598
                                [% END %]
599
256
600
                                <fieldset>
257
                            <li>
601
                                    [% IF i %]
258
                                <label for="to">Hold expires on date:</label>
602
                                        <legend>[% ItemTypes.GetDescription( i ) | html %]</legend>
259
                                <input name="expiration_date" id="to" size="10" class="datepickerto" type="text" />
260
                                <a href="#" id="clear-date-to" class="clear-date">Clear date</a>
261
                            </li>
262
263
                            [% UNLESS ( multi_hold ) %]
264
                                <li>
265
                                    <label for="requestany">Hold next available item </label>
266
                                    [% IF force_hold_level == 'item' %]
267
                                        <input type="checkbox" id="requestany" name="request" disabled="true" />
268
                                    [% ELSIF force_hold_level == 'record' %]
269
                                        <input type="checkbox" id="requestany" checked="checked" value="Any" disabled="true"/>
270
                                        <input type="hidden" name="request" value="Any"/>
603
                                    [% ELSE %]
271
                                    [% ELSE %]
604
                                        <legend>Any item type</legend>
272
                                        <input type="checkbox" id="requestany" name="request" checked="checked" value="Any" />
605
                                    [% END %]
273
                                    [% END %]
606
                                    [% INCLUDE holds_table.inc holds=holds_by_itemtype %]
274
                                    <input type="hidden" name="biblioitem" value="[% biblioitemnumber | html %]" />
607
                                </fieldset>
275
                                    <input type="hidden" name="alreadyreserved" value="[% alreadyreserved | html %]" />
276
                                </li>
277
278
                                [% IF remaining_holds_for_record > 1 %]
279
                                    <li>
280
                                        <label for="holds_to_place_count">Holds to place (count)</label>
281
                                        <input id="holds_to_place_count" type="number" name="holds_to_place_count" min="1" max="[% remaining_holds_for_record | html %]" step="1" value="1" />
282
                                    </li>
283
                                [% ELSE %]
284
                                    <input type="hidden" name="holds_to_place_count" value="1" />
285
                                [% END %]
608
                            [% END %]
286
                            [% END %]
609
                        [% ELSIF Koha.Preference('HoldsSplitQueue') == 'branch_itemtype' %]
287
                        </ol>
610
                            [% SET branchcodes = [] %]
288
289
                        [% UNLESS ( multi_hold ) %]
290
                            <fieldset class="action">
291
                                [% IF ( patron.borrowernumber ) %]
292
                                    [% IF ( override_required ) %]
293
                                        <input type="submit" class="warning" value="Place hold" />
294
                                    [% ELSIF ( none_available ) %]
295
                                        <input type="submit" disabled="disabled" value="Place hold" />
296
                                    [% ELSE %]
297
                                        <input type="submit" value="Place hold" />
298
                                    [% END %]
299
                                [% END %]
300
                            </fieldset>
301
302
                            [% FOREACH bibitemloo IN bibitemloop %]
303
                                <ol>
304
                                    [% UNLESS ( item_level_itypes ) %]
305
                                        <li>
306
                                            <span class="label">Item type:</span>
307
                                            [% bibitemloo.description | html %]
308
                                        </li>
309
                                    [% END %]
611
310
612
                            [% FOREACH h IN biblioloo.reserveloop %]
311
                                    [% IF ( bibitemloo.publicationyear ) %]
613
                                [% branchcodes.push( h.branchcode ) %]
312
                                        <li>
614
                            [% END %]
313
                                            <span class="label">Publication year:</span>
615
                            [% branchcodes = branchcodes.unique %]
314
                                            [% bibitemloo.publicationyear | html %]
616
315
                                        </li>
617
                            [% FOREACH b IN branchcodes.sort %]
618
                                <fieldset class="contrast">
619
                                    <legend>[% Branches.GetName( b ) | html %]</legend>
620
                                    [% SET holds_by_branch = [] %]
621
                                    [% FOREACH h IN biblioloo.reserveloop %]
622
                                        [% IF h.branchcode == b %]
623
                                            [% holds_by_branch.push( h ) %]
624
                                        [% END %]
625
                                    [% END %]
316
                                    [% END %]
317
                                </ol>
626
318
627
                                    [% SET itemtypes = [] %]
319
                                <h2 style="padding: 0 1em;">
628
                                    [% FOREACH h IN holds_by_branch %]
320
                                    Place a hold on a specific item
629
                                        [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
321
                                    [% IF bibitemloo.force_hold_level == 'item' %]
630
                                        [% itemtypes.push( hold_itemtype ) %]
322
                                         <span class="error"><i>(Required)</i></span>
631
                                    [% END %]
323
                                    [% END %]
632
                                    [% itemtypes = itemtypes.unique %]
324
                                </h2>
325
326
                                <table id="requestspecific">
327
                                    <thead>
328
                                        <tr>
329
                                            <th>Hold</th>
330
                                            [% IF ( item_level_itypes ) %]
331
                                                <th>Item type</th>
332
                                            [% END %]
333
                                            <th>Barcode</th>
334
                                            <th>Home library</th>
335
                                            <th>Last location</th>
336
                                            [% IF itemdata_ccode %]
337
                                                <th>Collection</th>
338
                                            [% END %]
339
                                            <th>Call no.</th>
340
                                            <th>Copy number</th>
341
                                            [% IF itemdata_enumchron %]
342
                                                <th>Vol no.</th>
343
                                            [% END %]
344
                                            <th class="title-string">Information</th>
345
                                        </tr>
346
                                    </thead>
347
                                    <tbody>
348
                                        [% SET selected = 0 %]
349
                                        [% FOREACH itemloo IN bibitemloo.itemloop %]
350
                                            [% UNLESS ( itemloo.hide ) %]
351
                                                <tr class="[% itemloo.backgroundcolor | html %]">
352
                                                    <td>
353
                                                        [% IF itemloo.force_hold_level == 'record' # Patron has placed a record level hold previously for this record %]
354
                                                            <span class="error">
355
                                                                <i class="fa fa-times fa-lg" title="Cannot be put on hold"></i>
356
                                                                Hold must be record level
357
                                                            </span>
358
                                                        [% ELSIF ( itemloo.available ) %]
359
                                                            <input type="radio" name="checkitem" value="[% itemloo.itemnumber | html %]" />
360
                                                        [% ELSIF ( itemloo.override ) %]
361
                                                            <input type="radio" name="checkitem" class="needsoverride" value="[% itemloo.itemnumber | html %]" />
362
                                                            <i class="fa fa-exclamation-triangle fa-lg" style="color:gold" title="Requires override of hold policy"/></i>
363
                                                        [% ELSE %]
364
                                                            <span class="error">
365
                                                                <i class="fa fa-times fa-lg" title="Cannot be put on hold"></i>
366
                                                                [% IF itemloo.not_holdable %]
367
                                                                    [% IF itemloo.not_holdable == 'damaged' %]
368
                                                                        Item damaged
369
                                                                    [% ELSIF itemloo.not_holdable == 'ageRestricted' %]
370
                                                                        Age restricted
371
                                                                    [% ELSIF itemloo.not_holdable == 'tooManyHoldsForThisRecord' %]
372
                                                                        Exceeded max holds per record
373
                                                                    [% ELSIF itemloo.not_holdable == 'tooManyReservesToday' %]
374
                                                                        Daily hold limit reached for patron
375
                                                                    [% ELSIF itemloo.not_holdable == 'tooManyReserves' %]
376
                                                                        Too many holds
377
                                                                    [% ELSIF itemloo.not_holdable == 'notReservable' %]
378
                                                                        Not holdable
379
                                                                    [% ELSIF itemloo.not_holdable == 'cannotReserveFromOtherBranches' %]
380
                                                                        Patron is from different library
381
                                                                    [% ELSIF itemloo.not_holdable == 'itemAlreadyOnHold' %]
382
                                                                        Patron already has hold for this item
383
                                                                    [% ELSIF itemloo.not_holdable == 'cannotBeTransferred' %]
384
                                                                        Cannot be transferred to pickup library
385
                                                                    [% ELSE %]
386
                                                                        [% itemloo.not_holdable | html %]
387
                                                                    [% END %]
388
                                                                [% END %]
389
                                                            </span>
390
                                                        [% END %]
391
                                                    </td>
392
                                                    [% IF ( item_level_itypes ) %]
393
                                                        <td>
394
                                                            [% UNLESS ( noItemTypeImages ) %]
395
                                                                [% IF ( itemloo.imageurl ) %]<img src="[% itemloo.imageurl | html %]" alt="" /> <br /> [% END %]
396
                                                            [% END %]
397
                                                            [% itemloo.itypename | html %]
398
                                                        </td>
399
                                                    [% END %]
400
                                                    <td>
401
                                                        [% itemloo.barcode | html %]
402
                                                    </td>
403
                                                    <td>
404
                                                        [% Branches.GetName( itemloo.homebranch ) | html %]
405
                                                    </td>
406
                                                    <td>
407
                                                        [% Branches.GetName( itemloo.holdingbranch ) | html %]
408
                                                    </td>
409
                                                    [% IF itemdata_ccode %]
410
                                                        <td>
411
                                                            [% IF ( itemloo.ccode ) %][% AuthorisedValues.GetByCode( 'CCODE', itemloo.ccode ) | html %][% END %]
412
                                                        </td>
413
                                                    [% END %]
414
                                                    <td>
415
                                                        [% itemloo.itemcallnumber | html %]
416
                                                    </td>
417
                                                    <td>
418
                                                        [% IF ( itemloo.copynumber ) %][% itemloo.copynumber | html %][% ELSE %]&nbsp;[% END %]
419
                                                    </td>
420
                                                    [% IF itemdata_enumchron %]
421
                                                        <td>
422
                                                            [% itemloo.enumchron | html %]
423
                                                        </td>
424
                                                    [% END %]
425
                                                    <td>
426
                                                        [% IF ( itemloo.onloan ) %]
427
                                                            <span title="[% itemloo.date_due | html %]" class="checkedout">Due [% itemloo.date_due | $KohaDates  as_due_date => 1 %]</span>
428
                                                        [% ELSE %]
429
                                                            <span title="0000-00-00">
430
                                                                [% IF ( itemloo.transfertwhen ) %]
431
                                                                    In transit from [% Branches.GetName( itemloo.transfertfrom ) | html %],
432
                                                                    to [% Branches.GetName( itemloo.transfertto ) | html %], since [% itemloo.transfertwhen | html %]
433
                                                                [% END %]
434
                                                            </span>
435
                                                        [% END %]
436
437
                                                        [% IF ( itemloo.reservedate ) %]
438
                                                            [% IF ( itemloo.nocancel ) %]
439
                                                                    Can't be cancelled when item is in transit
440
                                                            [% ELSE %]
441
                                                                [% IF ( itemloo.waitingdate ) %]Waiting[% ELSE %]On hold[% END %]
442
                                                                [% IF ( itemloo.canreservefromotherbranches ) %]
443
                                                                    for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% itemloo.ReservedFor.borrowernumber | uri %]">[% itemloo.ReservedFor.firstname | html %] [% itemloo.ReservedFor.surname | html %]</a>
444
                                                                [% END %]
445
                                                                [% IF ( itemloo.waitingdate ) %]at[% ELSE %]expected at[% END %]
446
                                                                [% Branches.GetName( itemloo.ExpectedAtLibrary ) | html %] since
447
                                                                [% IF ( itemloo.waitingdate ) %]
448
                                                                    [% itemloo.waitingdate | $KohaDates %]
449
                                                                [% ELSE %]
450
                                                                    [% IF ( itemloo.reservedate ) %]
451
                                                                        [% itemloo.reservedate | html %]
452
                                                                    [% END %]
453
                                                                [% END %].
454
                                                                <a class="info cancel-hold" href="modrequest.pl?CancelBiblioNumber=[% itemloo.biblionumber | html %]&amp;CancelBorrowerNumber=[% itemloo.ReservedFor.borrowernumber | html %]&amp;CancelItemnumber=[% itemloo.itemnumber | html %]">Cancel hold</a>
455
                                                            [% END %]
456
                                                        [% ELSE %]
457
                                                            Not on hold
458
                                                        [% END %]
459
460
                                                        [% IF itemloo.item_level_holds == "N" %]
461
                                                            <br/>Item level hold not allowed from OPAC
462
                                                        [% ELSIF itemloo.item_level_holds == "F" %]
463
                                                            <br/>Item level hold forced from OPAC
464
                                                        [% END %]
465
466
                                                        [% IF ( itemloo.itemlost ) %]
467
                                                           <span class="lost">[% AuthorisedValues.GetByCode( 'LOST', itemloo.itemlost ) | html %]</span>
468
                                                        [% END %]
469
470
                                                        [% IF ( itemloo.damaged ) %]
471
                                                            <span class="dmg">[% AuthorisedValues.GetByCode( 'DAMAGED', itemloo.damaged ) | html %]</span>
472
                                                        [% END %]
473
474
                                                        [% IF ( itemloo.notforloan ) %]
475
                                                           <span class="nfl">Not for loan ([% AuthorisedValues.GetByCode( 'NOT_LOAN', itemloo.notforloan ) | html %])</span>
476
                                                        [% END %]
477
                                                    </td>
478
                                                </tr>
479
                                            [% END %] <!--UNLESS item hide-->
480
                                        [% END %] <!-- itemloop -->
481
                                    </tbody>
482
                                </table>
483
484
                                [% IF ( bibitemloo.hiddencount ) %]
485
                                    <form>
486
                                        <p class="hiddencount">
487
                                            <a href="request.pl?biblionumber=[% bibitemloo.biblionumber | uri %]&amp;borrowernumber=[% bibitemloo.borrowernumber | uri %]&amp;showallitems=1">Show all items ([% bibitemloo.hiddencount | html %] hidden)</a>
488
                                        </p>
489
                                    </form>
490
                                [% END %] <!-- hiddencount -->
491
                            [% END %] <!-- bibitemloop -->
492
493
                        [% ELSE %]<!-- UNLESS multi_hold -->
494
495
                            <table id="requesttitles">
496
                                <tr>
497
                                    <th>&nbsp;</th>
498
                                    <th>Title</th>
499
                                    [% UNLESS ( item_level_itypes ) %]
500
                                        <th>Item type</th>
501
                                    [% END %]
502
                                    <th>Priority</th>
503
                                    <th>Information</th>
504
                                </tr>
505
                                [% FOREACH biblioloo IN biblioloop %]
506
                                    [% IF ( biblioloo.warn ) %]
507
                                        <tr class="onissue">
508
                                    [% ELSE %]
509
                                        <tr>
510
                                    [% END %]
511
                                        <td>
512
                                            [% UNLESS ( biblioloo.warn ) %]
513
                                                    <input class="multi_hold_item_checkbox" type="checkbox" checked="checked" title="[% biblioloo.biblionumber | html %]"/>
514
                                                </td>
515
                                            [% END %]
516
                                        <td>
517
                                            <ul>
518
                                                <li>
519
                                                    <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]">[% biblioloo.title | html %]</a>
520
                                                </li>
521
                                                [% IF ( biblioloo.publicationyear ) %]
522
                                                    <li>
523
                                                        <span class="label">Publication year:</span> [% biblioloo.publicationyear | html %]
524
                                                    </li>
525
                                                [% END %]
526
                                            </ul>
527
                                            [% IF ( biblioloo.warn ) %]
528
                                                <span class="not_holdable" title="[% biblioloo.biblionumber | html %]"></span>
529
                                            [% END %]
530
                                        </td>
531
                                        [% UNLESS ( item_level_itypes ) %]
532
                                            <td>
533
                                                <img src="[% biblioloo.imageurl | html %]" alt="[% biblioloo.itypename | html %]" title="[% biblioloo.itypename | html %]" />
534
                                            </td>
535
                                        [% END %]
536
                                        <td>[% biblioloo.rank | html %]</td>
537
                                        <td>
538
                                            [% IF ( biblioloo.checked_previously ) %]
539
                                                <span>Patron has previously checked out this title</span><br/>
540
                                            [% END %]
541
                                            [% IF ( biblioloo.alreadyres ) %]
542
                                                <ul>
543
                                            [% ELSE %]
544
                                                [% IF ( biblioloo.none_avail ) %]
545
                                                    <ul>
546
                                                [% END %]
547
                                            [% END %]
633
548
634
                                    [% FOREACH i IN itemtypes.sort %]
549
                                            [% IF ( biblioloo.alreadyres ) %]
635
                                        <fieldset class="standard">
550
                                                <li>
636
                                            [% IF i %]
551
                                                    <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %]</a>
637
                                                <legend>[% ItemTypes.GetDescription( i ) | html %]</legend>
552
                                                    <strong>already has a hold</strong> on this item
553
                                                </li>
554
                                            [% END %]
555
                                            [% IF ( biblioloo.none_avail ) %]
556
                                                <li> <strong>No items are available</strong> to be placed on hold</li>
557
                                            [% END %]
558
559
                                            [% IF ( biblioloo.alreadyres ) %]
560
                                                </ul>
638
                                            [% ELSE %]
561
                                            [% ELSE %]
639
                                                <legend>Any item type</legend>
562
                                                [% IF ( biblioloo.none_avail ) %]
563
                                                    </ul>
564
                                                [% END %]
640
                                            [% END %]
565
                                            [% END %]
566
                                        </td>
567
                                    </tr>
568
                                [% END %]
569
                            </table>
570
571
                        [% END %]<!-- /multi_hold -->
572
573
                        <fieldset class="action">
574
                            [% IF ( patron AND patron.borrowernumber ) %]
575
                                [% IF ( override_required ) %]
576
                                    <input type="submit" class="warning" value="Place hold" />
577
                                [% ELSIF ( none_available ) %]
578
                                    <input type="submit" disabled="disabled" value="Place hold" />
579
                                [% ELSE %]
580
                                    [% IF ( multi_hold ) %]
581
                                        <input type="submit" value="Place hold" id="multi_hold_submit"/>
582
                                    [% ELSE %]
583
                                        <input type="submit" value="Place hold" />
584
                                    [% END %]
585
                                [% END %]
586
                            [% END %]
587
                        </fieldset>
588
                    </form>
589
                </fieldset>
590
            [% END %]
591
592
            [% UNLESS ( patron ) %]
593
                [% IF ( reserveloop ) %]
594
                    <form name="T[% time | html %]" action="modrequest.pl" method="post">
595
                        [% IF ( multi_hold ) %]
596
                            <input type = "hidden" name="multi_hold" value="1"/>
597
                            <input type = "hidden" name="biblionumbers" value="[% biblionumbers | html %]"/>
598
                        [% END %]
599
600
                        <fieldset class="rows left">
601
                            <legend>Existing holds</legend>
602
603
                            [% FOREACH biblioloo IN biblioloop %]
604
                                [% IF ( biblioloo.reserveloop ) %]
605
                                    [% IF ( multi_hold ) %]
606
                                        <h3>
607
                                            <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]">
608
                                                [% biblioloo.title | html %]
609
                                            </a>
610
                                        </h3>
611
                                    [% END %]
612
613
                                    [% IF Koha.Preference('HoldsSplitQueue') == 'branch' %]
614
                                        [% SET branchcodes = [] %]
615
616
                                        [% FOREACH h IN biblioloo.reserveloop %]
617
                                            [% branchcodes.push( h.branchcode ) %]
618
                                        [% END %]
619
                                        [% branchcodes = branchcodes.unique %]
620
621
                                        [% FOREACH b IN branchcodes.sort %]
622
                                            [% SET holds_by_branch = [] %]
623
                                            [% FOREACH h IN biblioloo.reserveloop %]
624
                                                [% IF h.branchcode == b %]
625
                                                    [% holds_by_branch.push( h ) %]
626
                                                [% END %]
627
                                            [% END %]
628
                                            <fieldset>
629
                                                <legend>[% Branches.GetName( b ) | html %]</legend>
630
                                                [% INCLUDE holds_table.inc holds=holds_by_branch %]
631
                                            </fieldset>
632
                                        [% END %]
633
                                    [% ELSIF Koha.Preference('HoldsSplitQueue') == 'itemtype' %]
634
                                        [% SET itemtypes = [] %]
635
636
                                        [% FOREACH h IN biblioloo.reserveloop %]
637
                                            [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
638
                                            [% itemtypes.push( hold_itemtype ) %]
639
                                        [% END %]
640
                                        [% itemtypes = itemtypes.unique %]
641
641
642
                                        [% FOREACH i IN itemtypes.sort %]
642
                                            [% SET holds_by_itemtype = [] %]
643
                                            [% SET holds_by_itemtype = [] %]
643
                                            [% FOREACH h IN holds_by_branch %]
644
                                            [% FOREACH h IN biblioloo.reserveloop %]
644
                                                [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
645
                                                [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
645
                                                [% IF hold_itemtype == i %]
646
                                                [% IF hold_itemtype == i %]
646
                                                    [% holds_by_itemtype.push( h ) %]
647
                                                    [% holds_by_itemtype.push( h ) %]
647
                                                [% END %]
648
                                                [% END %]
648
                                            [% END %]
649
                                            [% END %]
649
                                            [% INCLUDE holds_table.inc holds=holds_by_itemtype %]
650
650
                                        </fieldset>
651
                                            <fieldset>
652
                                                [% IF i %]
653
                                                    <legend>[% ItemTypes.GetDescription( i ) | html %]</legend>
654
                                                [% ELSE %]
655
                                                    <legend>Any item type</legend>
656
                                                [% END %]
657
                                                [% INCLUDE holds_table.inc holds=holds_by_itemtype %]
658
                                            </fieldset>
659
                                        [% END %]
660
                                    [% ELSIF Koha.Preference('HoldsSplitQueue') == 'branch_itemtype' %]
661
                                        [% SET branchcodes = [] %]
662
663
                                        [% FOREACH h IN biblioloo.reserveloop %]
664
                                            [% branchcodes.push( h.branchcode ) %]
665
                                        [% END %]
666
                                        [% branchcodes = branchcodes.unique %]
667
668
                                        [% FOREACH b IN branchcodes.sort %]
669
                                            <fieldset class="contrast">
670
                                                <legend>[% Branches.GetName( b ) | html %]</legend>
671
                                                [% SET holds_by_branch = [] %]
672
                                                [% FOREACH h IN biblioloo.reserveloop %]
673
                                                    [% IF h.branchcode == b %]
674
                                                        [% holds_by_branch.push( h ) %]
675
                                                    [% END %]
676
                                                [% END %]
677
678
                                                [% SET itemtypes = [] %]
679
                                                [% FOREACH h IN holds_by_branch %]
680
                                                    [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
681
                                                    [% itemtypes.push( hold_itemtype ) %]
682
                                                [% END %]
683
                                                [% itemtypes = itemtypes.unique %]
684
685
                                                [% FOREACH i IN itemtypes.sort %]
686
                                                    <fieldset class="standard">
687
                                                        [% IF i %]
688
                                                            <legend>[% ItemTypes.GetDescription( i ) | html %]</legend>
689
                                                        [% ELSE %]
690
                                                            <legend>Any item type</legend>
691
                                                        [% END %]
692
693
                                                        [% SET holds_by_itemtype = [] %]
694
                                                        [% FOREACH h IN holds_by_branch %]
695
                                                            [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
696
                                                            [% IF hold_itemtype == i %]
697
                                                                [% holds_by_itemtype.push( h ) %]
698
                                                            [% END %]
699
                                                        [% END %]
700
                                                        [% INCLUDE holds_table.inc holds=holds_by_itemtype %]
701
                                                    </fieldset>
702
                                                [% END %]
703
                                            </fieldset>
704
                                        [% END %]
705
                                    [% ELSE %]
706
                                        [% INCLUDE holds_table.inc holds=biblioloo.reserveloop %]
651
                                    [% END %]
707
                                    [% END %]
652
                                </fieldset>
653
                            [% END %]
654
                        [% ELSE %]
655
                            [% INCLUDE holds_table.inc holds=biblioloo.reserveloop %]
656
                        [% END %]
657
708
658
                    [% END %]<!-- /reserveloop -->
709
                                [% END %]<!-- /reserveloop -->
659
                [% END %]<!-- /biblioloop -->
710
                            [% END %]<!-- /biblioloop -->
660
711
661
                <fieldset class="action">
712
                            <fieldset class="action">
662
                    <input type="submit" name="submit" value="Update hold(s)" />
713
                                <input type="submit" name="submit" value="Update hold(s)" />
663
                </fieldset>
714
                            </fieldset>
664
            </fieldset>
715
                        </fieldset>
665
        </form>
716
                    </form>
666
    [% END %]
717
                [% END %]
667
[% END %]
718
            [% END %]
668
719
669
            </main>
720
        </main>
670
721
671
        [% IF ( multi_hold ) # No sidebar menu when placing multiple holds %]
722
        [% IF ( multi_hold ) # No sidebar menu when placing multiple holds %]
672
            </div> <!-- /.col-md-10.col-md-offset-1 -->
723
            </div> <!-- /.col-md-10.col-md-offset-1 -->
673
- 

Return to bug 23458