3 [% INCLUDE 'doc-head-open.inc' %]
4 <title>Koha › Reports › Holds statistics [% IF ( do_it ) %]› Results[% END %]</title>
5 [% INCLUDE 'doc-head-close.inc' %]
6 <style type="text/css">
11 <body id="rep_reserve_stats" class="rep">
12 [% INCLUDE 'header.inc' %]
13 [% INCLUDE 'cat-search.inc' %]
15 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/reports/reports-home.pl">Reports</a> [% IF ( do_it ) %]› <a href="/cgi-bin/koha/reports/reserves_stats.pl">Holds statistics</a> › Results [% ELSE %]› Holds statistics[% END %]</div>
17 <div id="doc3" class="yui-t2">
25 <h1>Holds statistics</h1>
26 [% IF ( loopfilter ) %]
29 [% FOREACH loopfilte IN loopfilter %]
30 [% IF ( loopfilte.err ) %]<li class="error">Error:
31 [% ELSIF ( loopfilte.sql ) %]<li class="sql">
34 [% loopfilte.crit %] [% loopfilte.filter %]
40 [% FOREACH mainloo IN mainloop %]
44 <th>[% mainloo.line %] / [% mainloo.column %]</th>
45 [% FOREACH loopco IN mainloo.loopcol %]
46 <th>[% loopco.coltitle_display |html %]</th>
50 [% FOREACH loopro IN mainloo.looprow %]
52 <td>[% loopro.rowtitle_display or "UNKNOWN VALUE" |html %]</td>
53 [% FOREACH loopcel IN loopro.loopcell %]
55 [% IF ( loopcel.url_complement ) %]<a href="reserves_stats.pl?output=[% loopcel.output %]&[% loopcel.url_complement %]">[% loopcel.value %]</a>[% ELSE %][% loopcel.value %][% END %]
58 <td align="center">[% loopro.totalrow %]</td>
63 [% FOREACH loopfoote IN mainloo.loopfooter %]
64 <th>[% loopfoote.totalcol %]</th>
66 <th>[% mainloo.total %]</th>
73 <form method="post" action="/cgi-bin/koha/reports/reserves_stats.pl">
74 <fieldset class="rows">
75 <legend>Holds statistics</legend><table>
87 <td><input type="radio" name="Line" value="reservestatus" /></td>
88 <td><input type="radio" name="Column" value="reservestatus" checked="checked" /></td>
90 <input type="checkbox" name="filter_reservestatus_or_1" value="1" /> Asked
91 <input type="checkbox" name="filter_reservestatus_or_2" value="2" /> Processing
92 <input type="checkbox" name="filter_reservestatus_or_3" value="3" /> Waiting
93 <input type="checkbox" name="filter_reservestatus_or_4" value="4" /> Satisfied
94 <input type="checkbox" name="filter_reservestatus_or_5" value="5" /> Cancelled
99 <td><input type="radio" name="Line" value="reservedate" /></td>
100 <td><input type="radio" name="Column" value="reservedate" /></td>
101 <td><label for="filter_reservedate_begin">From</label> <input type="text" size="10" id="filter_reservedate_begin" name="filter_reservedate_begin" />
102 <label for="filter_reservedate_end">To</label> <input size="10" id="filter_reservedate_end" name="filter_reservedate_end" value="" type="text" />
106 <td>Notification date</td>
107 <td><input type="radio" name="Line" value="notificationdate" /></td>
108 <td><input type="radio" name="Column" value="notificationdate" /></td>
109 <td><label for="filter_notificationdate_begin">From</label> <input type="text" size="10" id="filter_notificationdate_begin" name="filter_notificationdate_begin" />
110 <label for="filter_notificationdate_end">To</label> <input size="10" id="filter_notificationdate_end" name="filter_notificationdate_end" value="" type="text" />
114 <td>Reminder date</td>
115 <td><input type="radio" name="Line" value="reminderdate" /></td>
116 <td><input type="radio" name="Column" value="reminderdate" /></td>
117 <td><label for="filter_reminderdate_begin">From</label> <input type="text" size="10" id="filter_reminderdate_begin" name="Filter" />
118 <label for="filter_reminderdate_end">To</label> <input size="10" id="filter_reminderdate_end" name="filter_reminderdate_end" value="" type="text" />
122 <td>Waiting date</td>
123 <td><input type="radio" name="Line" value="waitingdate" /></td>
124 <td><input type="radio" name="Column" value="waitingdate" /></td>
125 <td><label for="filter_waitingdate_begin">From</label> <input type="text" size="10" id="filter_waitingdate_begin" name="filter_waitingdate_begin" />
126 <label for="filter_waitingdate_end">To</label> <input size="10" id="filter_waitingdate_end" name="filter_waitingdate_end" value="" type="text" />
130 <td>Cancellation date</td>
131 <td><input type="radio" name="Line" value="cancellationdate" /></td>
132 <td><input type="radio" name="Column" value="cancellationdate" /></td>
133 <td><label for="filter_cancellationdate_begin">From</label> <input type="text" size="10" id="filter_cancellationdate_begin" name="filter_cancellationdate_begin" />
134 <label for="filter_cancellationdate_end">To</label> <input size="10" id="filter_cancellationdate_end" name="filter_cancellationdate_end" value="" type="text" />
138 <td>Patron category</td>
139 <td><input type="radio" name="Line" value="borrowers.categorycode" /></td>
140 <td><input type="radio" name="Column" value="borrowers.categorycode" /></td>
141 <td><select name="filter_categorycode" id="borcat">
142 <option value=""> </option>
143 [% FOREACH categoryloo IN categoryloop %]
144 <option value="[% categoryloo.categorycode %]">[% categoryloo.description %]</option>
151 <td><input type="radio" name="Line" value="items.itype" /></td>
152 <td><input type="radio" name="Column" value="items.itype" /></td>
153 <td><select name="filter_items.itype" id="itype">
154 <option value=""> </option>
155 [% FOREACH itemtype IN itemtypes %]
156 <option value="[% itemtype.itemtype %]">[% itemtype.translated_description %]</option>
162 <td>Pickup library</td>
163 <td><input type="radio" name="Line" value="reserves.branchcode" checked="checked" /></td>
164 <td><input type="radio" name="Column" value="reserves.branchcode" /></td>
165 <td><select name="filter_reserves.branchcode" id="resbranchcode">
166 <option value=""> </option>
167 [% PROCESS options_for_libraries libraries => Branches.all() %]
172 <td>Holding library</td>
173 <td><input type="radio" name="Line" value="items.holdingbranch" /></td>
174 <td><input type="radio" name="Column" value="items.holdingbranch" /></td>
175 <td><select name="filter_items.holdingbranch" id="holdingbranch">
176 <option value=""> </option>
177 [% PROCESS options_for_libraries libraries => Branches.all() %]
182 <td>Home library</td>
183 <td><input type="radio" name="Line" value="items.homebranch" /></td>
184 <td><input type="radio" name="Column" value="items.homebranch" /></td>
185 <td><select name="filter_items.homebranch" id="homebranch">
186 <option value=""> </option>
187 [% PROCESS options_for_libraries libraries => Branches.all() %]
193 <td><input type="radio" name="Line" value="items.ccode" /></td>
194 <td><input type="radio" name="Column" value="items.ccode" /></td>
195 <td><select name="filter_items.ccode" id="ccode">
196 <option value=""> </option>
197 [% FOREACH ccodeloo IN ccodeloop %]
198 [% IF ( ccodeloo.selected ) %] <option value="[% ccodeloo.code %]" selected="selected">[% ccodeloo.description %]</option>[% ELSE %]<option value="[% ccodeloo.code %]">[% ccodeloo.description %]</option>[% END %]
204 <td>Shelving location</td>
205 <td><input type="radio" name="Line" value="items.location" /></td>
206 <td><input type="radio" name="Column" value="items.location" /></td>
207 <td><select name="filter_items.location" id="location">
208 <option value=""> </option>
209 [% FOREACH locationloo IN locationloop %]
210 [% IF ( locationloo.selected ) %]<option value="[% locationloo.code %]" selected="selected">[% locationloo.description %]</option>[% ELSE %]<option value="[% locationloo.code %]">[% locationloo.description %]</option>[% END %]
216 <td>Item call number</td>
219 <td>From <input type="text" name="filter_items.itemcallnumber_begin" size="10" /> (inclusive) to <input type="text" name="filter_items.itemcallnumber_endex" size="10" /> (exclusive) </td>
221 [% IF ( hassort1 ) %]
222 <tr><td>Patron sort 1</td>
223 <td><input type="radio" name="Line" value="borrowers.sort1" /></td>
224 <td><input type="radio" name="Column" value="borrowers.sort1" /></td>
225 <td><select name="filter_borrowers.sort1" id="sort1">
226 <option value=""> </option>
227 [% FOREACH Bsort IN Bsort1 %]
228 [% IF ( Bsort.selected ) %]<option value="[% Bsort.authorised_value %]" selected="selected">[% Bsort.lib %]</option>[% ELSE %]<option value="[% Bsort.authorised_value %]" >[% Bsort.lib %]</option>[% END %]
234 [% IF ( hassort2 ) %]
235 <tr><td>Patron sort 2</td>
236 <td><input type="radio" name="Line" value="borrowers.sort2" /></td>
237 <td><input type="radio" name="Column" value="borrowers.sort2" /></td>
238 <td><select name="filter_borrowers.sort2" id="sort2">
239 <option value=""> </option>
240 [% FOREACH Bsort IN Bsort2 %]
241 [% IF ( Bsort.selected ) %]<option value="[% Bsort.authorised_value %]" selected="selected">[% Bsort.lib %]</option>[% ELSE %]<option value="[% Bsort.authorised_value %]" >[% Bsort.lib %]</option>[% END %]
248 </table><br /></fieldset>
250 <fieldset class="rows"><legend>Cell value </legend><ol><li><label for="cellvalue1">Count holds:</label> <input type="radio" name="Cellvalue" value="1" id="cellvalue1" checked="checked" /> </li>
251 <li><label for="cellvalue2">Count unique borrowers:</label> <input type="radio" name="Cellvalue" value="2" id="cellvalue2" /> </li><li><label for="cellvalue3">Count unique items:</label> <input type="radio" name="Cellvalue" id="cellvalue3" value="3" /> </li><li><label for="cellvalue4">Count unique biblios:</label> <input type="radio" name="Cellvalue" id="cellvalue4" value="4" /> </li></ol></fieldset>
253 <fieldset class="rows">
254 <legend>Output</legend>
257 <label for="outputscreen">To screen into the browser: </label><input type="radio" checked="checked" name="output" id="outputscreen" value="screen" />
260 <label for="outputfile">To a file:</label> <input type="radio" name="output" value="file" id="outputfile" />
261 <label class="inline" for="basename">Named: </label><input type="text" name="basename" id="basename" value="Export" />
262 <label class="inline" for="MIME">Into an application:</label>
263 <select name="MIME" id="MIME" size="1">
264 [% FOREACH value IN CGIextChoice %]
265 <option value="[% value %]">[% value %]</option>
268 <select name="sep" id="sep" size="1">
269 [% FOREACH value IN CGIsepChoice.values.sort() %]
270 [% IF ( value == CGIsepChoice.default ) %]
271 <option value="[% value %]" selected="selected">[% value %]</option>
273 <option value="[% value %]">[% value %]</option>
281 <fieldset class="action">
282 <input type="submit" value="Submit" />
283 <input type="hidden" name="report_name" value="[% report_name %]" />
284 <input type="hidden" name="do_it" value="1" />
292 [% INCLUDE 'reports-menu.inc' %]
296 [% MACRO jsinclude BLOCK %]
297 [% INCLUDE 'calendar.inc' %]
298 <script type="text/javascript">
299 $(document).ready(function() {
300 // http://jqueryui.com/demos/datepicker/#date-range
301 var dates = $( "#filter_reservedate_begin, #filter_reservedate_end" ).datepicker({
304 onSelect: function( selectedDate ) {
305 var option = this.id == "filter_reservedate_begin" ? "minDate" : "maxDate",
306 instance = $( this ).data( "datepicker" );
307 date = $.datepicker.parseDate(
308 instance.settings.dateFormat ||
309 $.datepicker._defaults.dateFormat,
310 selectedDate, instance.settings );
311 dates.not( this ).datepicker( "option", option, date );
314 var datesND = $( "#filter_notificationdate_begin, #filter_notificationdate_end" ).datepicker({
317 onSelect: function( selectedDate ) {
318 var option = this.id == "filter_notificationdate_begin" ? "minDate" : "maxDate",
319 instance = $( this ).data( "datepicker" );
320 date = $.datepicker.parseDate(
321 instance.settings.dateFormat ||
322 $.datepicker._defaults.dateFormat,
323 selectedDate, instance.settings );
324 datesND.not( this ).datepicker( "option", option, date );
327 var datesRD = $( "#filter_reminderdate_begin, #filter_reminderdate_end" ).datepicker({
330 onSelect: function( selectedDate ) {
331 var option = this.id == "filter_reminderdate_begin" ? "minDate" : "maxDate",
332 instance = $( this ).data( "datepicker" );
333 date = $.datepicker.parseDate(
334 instance.settings.dateFormat ||
335 $.datepicker._defaults.dateFormat,
336 selectedDate, instance.settings );
337 datesRD.not( this ).datepicker( "option", option, date );
340 var datesWD = $( "#filter_waitingdate_begin, #filter_waitingdate_end" ).datepicker({
343 onSelect: function( selectedDate ) {
344 var option = this.id == "filter_waitingdate_begin" ? "minDate" : "maxDate",
345 instance = $( this ).data( "datepicker" );
346 date = $.datepicker.parseDate(
347 instance.settings.dateFormat ||
348 $.datepicker._defaults.dateFormat,
349 selectedDate, instance.settings );
350 datesWD.not( this ).datepicker( "option", option, date );
353 var datesCD = $( "#filter_cancellationdate_begin, #filter_cancellationdate_end" ).datepicker({
356 onSelect: function( selectedDate ) {
357 var option = this.id == "filter_cancellationdate_begin" ? "minDate" : "maxDate",
358 instance = $( this ).data( "datepicker" );
359 date = $.datepicker.parseDate(
360 instance.settings.dateFormat ||
361 $.datepicker._defaults.dateFormat,
362 selectedDate, instance.settings );
363 datesCD.not( this ).datepicker( "option", option, date );
370 [% INCLUDE 'intranet-bottom.inc' %]