|
Lines 49-361
Link Here
|
| 49 |
<main> |
49 |
<main> |
| 50 |
[% INCLUDE 'messages.inc' %] |
50 |
[% INCLUDE 'messages.inc' %] |
| 51 |
|
51 |
|
| 52 |
<h1>Inventory</h1> |
52 |
<h1>Inventory</h1> |
| 53 |
[% IF (moddatecount) %]<div class="dialog message">[% moddatecount | html %] items modified : datelastseen set to [% date | $KohaDates with_hours => 1 %]</div> |
53 |
[% IF (moddatecount) %]<div class="dialog message">[% moddatecount | html %] items modified : datelastseen set to [% date | $KohaDates with_hours => 1 %]</div> |
| 54 |
<div class="dialog alert">Number of potential barcodes read: [% LinesRead | html %]</div>[% END %] |
54 |
<div class="dialog alert">Number of potential barcodes read: [% LinesRead | html %]</div>[% END %] |
| 55 |
[% IF (errorfile) %]<div class="dialog alert">[% errorfile | html %] can't be opened</div>[% END %] |
55 |
[% IF (errorfile) %]<div class="dialog alert">[% errorfile | html %] can't be opened</div>[% END %] |
| 56 |
[% IF (err_length && err_length==1) %]<div class="dialog alert">There was 1 barcode that was too long.</div>[% END %] |
56 |
[% IF (err_length && err_length==1) %]<div class="dialog alert">There was 1 barcode that was too long.</div>[% END %] |
| 57 |
[% IF (err_length && err_length>1) %]<div class="dialog alert">There were [% err_length | html %] barcodes that were too long.</div>[% END %] |
57 |
[% IF (err_length && err_length>1) %]<div class="dialog alert">There were [% err_length | html %] barcodes that were too long.</div>[% END %] |
| 58 |
[% IF (err_data && err_data==1) %]<div class="dialog alert">There was 1 barcode that contained at least one unprintable character.</div>[% END %] |
58 |
[% IF (err_data && err_data==1) %]<div class="dialog alert">There was 1 barcode that contained at least one unprintable character.</div>[% END %] |
| 59 |
[% IF (err_data && err_data>1) %]<div class="dialog alert">There were [% err_data | html %] barcodes that contained at least one unprintable character.</div>[% END %] |
59 |
[% IF (err_data && err_data>1) %]<div class="dialog alert">There were [% err_data | html %] barcodes that contained at least one unprintable character.</div>[% END %] |
| 60 |
[% FOREACH error IN errorloop %] |
60 |
[% FOREACH error IN errorloop %] |
| 61 |
<div class="dialog alert"> |
61 |
<div class="dialog alert"> |
| 62 |
[% error.barcode | html %] |
62 |
[% error.barcode | html %] |
| 63 |
[% IF (error.ERR_BARCODE) %]: <span>Barcode not found.</span>[% END %] |
63 |
[% IF (error.ERR_BARCODE) %]: <span>Barcode not found.</span>[% END %] |
| 64 |
[% IF (error.ERR_WTHDRAWN) %]: <span>Item withdrawn.</span>[% END %] |
64 |
[% IF (error.ERR_WTHDRAWN) %]: <span>Item withdrawn.</span>[% END %] |
| 65 |
[% IF (error.ERR_ONLOAN_RET) %]: <span>Item was on loan. It was checked in before being marked as seen.</span>[% END %] |
65 |
[% IF (error.ERR_ONLOAN_RET) %]: <span>Item was on loan. It was checked in before being marked as seen.</span>[% END %] |
| 66 |
[% IF (error.ERR_ONLOAN_NOT_RET) %]: <span>Item was on loan and could not be checked in.</span>[% END %] |
66 |
[% IF (error.ERR_ONLOAN_NOT_RET) %]: <span>Item was on loan and could not be checked in.</span>[% END %] |
| 67 |
</div> |
67 |
</div> |
| 68 |
[% END %] |
|
|
| 69 |
[% UNLESS op %] |
| 70 |
|
| 71 |
<form method="post" id="inventory_form" action="/cgi-bin/koha/tools/inventory.pl" enctype="multipart/form-data"> |
| 72 |
[% INCLUDE 'csrf-token.inc' %] |
| 73 |
<fieldset class="rows"> |
| 74 |
<legend>Use a barcode file</legend> |
| 75 |
<ol> |
| 76 |
<li><label for="uploadbarcodes">Barcode file: </label> <input type="file" id="uploadbarcodes" name="uploadbarcodes" /> |
| 77 |
<input type="button" id="resetuploadbarcodes" name="resetuploadbarcodes" value="Reset" /></li> |
| 78 |
</ol> |
| 79 |
</fieldset> |
| 80 |
<fieldset class="rows"> |
| 81 |
<legend>Or scan items one by one</legend> |
| 82 |
<ol> |
| 83 |
<li> |
| 84 |
<label for="barcodelist">Barcode list (one barcode per line): </label> |
| 85 |
<textarea rows="10" cols="30" id="barcodelist" name="barcodelist"></textarea> |
| 86 |
</li> |
| 87 |
</ol> |
| 88 |
</fieldset> |
| 89 |
<fieldset class="rows"> |
| 90 |
<legend>Parameters</legend> |
| 91 |
<ol> |
| 92 |
<li><label for="setdate">Set inventory date to:</label> <input type="text" id="setdate" name="setdate" value="[% today | html %]" class="flatpickr" /></li> |
| 93 |
<li><label for="compareinv2barcd">Compare barcodes list to results: </label><input type="checkbox" name="compareinv2barcd" id="compareinv2barcd" disabled /></li> |
| 94 |
<li><label for="dont_checkin">Do not check in items scanned during inventory: </label><input type="checkbox" name="dont_checkin" id="dont_checkin" disabled /></li> |
| 95 |
<li><label for="out_of_order">Check barcodes list for items shelved out of order: </label><input type="checkbox" name="out_of_order" id="out_of_order" disabled /></li> |
| 96 |
</ol> |
| 97 |
</fieldset> |
| 98 |
<fieldset class="rows"> |
| 99 |
<legend>Item location filters</legend> |
| 100 |
<ol><li> |
| 101 |
<label for="branch">Location: </label> |
| 102 |
<input type="radio" name="branch" value="homebranch"> Home library</input> |
| 103 |
<input type="radio" name="branch" value="holdingbranch"> Current library</input> |
| 104 |
</li><li> |
| 105 |
<label for="branchloop">Library: </label><select id="branchloop" name="branchcode" style="width:12em;"> |
| 106 |
<option value="">All libraries</option> |
| 107 |
[% PROCESS options_for_libraries libraries => Branches.all( selected => branchcode, unfiltered => 1, ) %] |
| 108 |
</select> |
| 109 |
</li> |
| 110 |
[% IF (authorised_values) %] |
| 111 |
<li> |
| 112 |
<label for="locationloop">Shelving location (items.location) is: </label> |
| 113 |
<select id="locationloop" name="location"> |
| 114 |
<option value="">Filter location</option> |
| 115 |
[% FOREACH value IN authorised_values %] |
| 116 |
[% IF (value.selected) %] |
| 117 |
<option value="[% value.authorised_value | html %]" selected="selected">[% value.lib | html %]</option> |
| 118 |
[% ELSE %] |
| 119 |
<option value="[% value.authorised_value | html %]">[% value.lib | html %]</option> |
| 120 |
[% END %] |
| 121 |
[% END %] |
| 122 |
</select> </li> |
| 123 |
[% END %] |
| 124 |
[% SET ccodes = AuthorisedValues.GetAuthValueDropbox('CCODE') %] |
| 125 |
[% IF ( ccodes.count > 0 ) %] |
| 126 |
<li> |
| 127 |
<label for="ccode">Collection code: </label> |
| 128 |
<select id="ccodeloop" name="ccode"> |
| 129 |
<option value="">Filter collection</option> |
| 130 |
[% FOREACH cc IN ccodes %] |
| 131 |
[% IF (ccode == cc.authorised_value) %] |
| 132 |
<option value="[% cc.authorised_value | html %]" selected="selected">[% cc.lib | html %]</option> |
| 133 |
[% ELSE %] |
| 134 |
<option value="[% cc.authorised_value | html %]">[% cc.lib | html %]</option> |
| 135 |
[% END %] |
| 136 |
[% END %] |
| 137 |
</select> |
| 138 |
</li> |
| 139 |
[% END %] |
| 140 |
<li> |
| 141 |
<label for="minlocation">Item call number between: </label> |
| 142 |
<input type="text" name="minlocation" id="minlocation" value="[% minlocation | html %]" /> (items.itemcallnumber) </li> |
| 143 |
<li><label for="maxlocation">...and: </label> |
| 144 |
<input type="text" name="maxlocation" id="maxlocation" value="[% maxlocation | html %]" /> |
| 145 |
<li> |
| 146 |
<label for="class_source">Call number classification scheme</label> |
| 147 |
<select name="class_source"> |
| 148 |
[% FOREACH class_source IN class_sources %] |
| 149 |
[% IF class_source.cn_source == pref_class %] |
| 150 |
<option value="[% class_source.cn_source | html %]" selected="selected">[% class_source.description | html %] (default)</option> |
| 151 |
[% ELSE %] |
| 152 |
<option value="[% class_source.cn_source | html %]">[% class_source.description | html %]</option> |
| 153 |
[% END %] |
68 |
[% END %] |
| 154 |
[% END %] |
69 |
|
| 155 |
</select> |
70 |
[% UNLESS op %] |
| 156 |
</li> |
71 |
<form method="post" id="inventory_form" action="/cgi-bin/koha/tools/inventory.pl" enctype="multipart/form-data"> |
| 157 |
</ol> |
72 |
[% INCLUDE 'csrf-token.inc' %] |
| 158 |
</fieldset> |
73 |
<input type="hidden" name="op" value="do_it" /> |
| 159 |
|
74 |
|
| 160 |
<fieldset class="rows" id="optionalfilters"> |
75 |
<fieldset class="rows"> |
| 161 |
<legend>Optional filters for inventory list or comparing barcodes</legend> |
76 |
<legend>Use a barcode file</legend> |
| 162 |
<span class="hint">Scanned items are expected to match one of the selected "not for loan" criteria if any are checked.</span> |
77 |
<ol> |
| 163 |
<br/> |
78 |
<li> |
| 164 |
<div id="statuses" style="display: block;"> |
79 |
<label for="uploadbarcodes">Barcode file: </label> <input type="file" id="uploadbarcodes" name="uploadbarcodes" /> |
| 165 |
[% FOREACH status IN statuses %] |
80 |
<input type="button" id="resetuploadbarcodes" name="resetuploadbarcodes" value="Reset" /> |
| 166 |
[% IF (status.values) %] |
81 |
</li> |
| 167 |
<fieldset style="float: left; padding: 5px; margin: 5px;text-align:right"> |
82 |
</ol> |
| 168 |
<legend>[% status.fieldname | html %]</legend> |
83 |
</fieldset> |
| 169 |
<ul id="statuses-[% fieldname | html %]" style="display: inline;"> |
84 |
|
| 170 |
[% FOREACH value IN status.values %] |
85 |
<fieldset class="rows"> |
| 171 |
[% IF (value.lib) %] |
86 |
<legend>Or scan items one by one</legend> |
| 172 |
<li style="list-style: none;"> |
87 |
<ol> |
| 173 |
<label for="[% value.id | html %]"> |
88 |
<li> |
| 174 |
[% IF ( status.fieldname == 'items.notforloan' && value.authorised_value == 0 && value.lib == '__IGNORE__' ) %] |
89 |
<label for="barcodelist">Barcode list (one barcode per line): </label> |
| 175 |
For loan |
90 |
<textarea rows="10" cols="30" id="barcodelist" name="barcodelist"></textarea> |
| 176 |
[% ELSE %] |
91 |
</li> |
| 177 |
[% value.lib | html %] |
92 |
</ol> |
|
|
93 |
</fieldset> |
| 94 |
|
| 95 |
<fieldset class="rows"> |
| 96 |
<legend>Parameters</legend> |
| 97 |
<ol> |
| 98 |
<li><label for="setdate">Set inventory date to:</label> <input type="text" id="setdate" name="setdate" value="[% today | html %]" class="flatpickr" /></li> |
| 99 |
<li><label for="compareinv2barcd">Compare barcodes list to results: </label><input type="checkbox" name="compareinv2barcd" id="compareinv2barcd" disabled /></li> |
| 100 |
<li><label for="dont_checkin">Do not check in items scanned during inventory: </label><input type="checkbox" name="dont_checkin" id="dont_checkin" disabled /></li> |
| 101 |
<li><label for="out_of_order">Check barcodes list for items shelved out of order: </label><input type="checkbox" name="out_of_order" id="out_of_order" disabled /></li> |
| 102 |
</ol> |
| 103 |
</fieldset> |
| 104 |
|
| 105 |
<fieldset class="rows"> |
| 106 |
<legend>Item location filters</legend> |
| 107 |
<ol> |
| 108 |
<li> |
| 109 |
<label for="branch">Location: </label> |
| 110 |
<input type="radio" name="branch" value="homebranch"> Home library</input> |
| 111 |
<input type="radio" name="branch" value="holdingbranch"> Current library</input> |
| 112 |
</li> |
| 113 |
|
| 114 |
<li> |
| 115 |
<label for="branchloop">Library: </label> |
| 116 |
<select id="branchloop" name="branchcode" style="width:12em;"> |
| 117 |
<option value="">All libraries</option> |
| 118 |
[% PROCESS options_for_libraries libraries => Branches.all( selected => branchcode, unfiltered => 1, ) %] |
| 119 |
</select> |
| 120 |
</li> |
| 121 |
|
| 122 |
[% IF (authorised_values) %] |
| 123 |
<li> |
| 124 |
<label for="locationloop">Shelving location (items.location) is: </label> |
| 125 |
<select id="locationloop" name="location"> |
| 126 |
<option value="">Filter location</option> |
| 127 |
[% FOREACH value IN authorised_values %] |
| 128 |
[% IF (value.selected) %] |
| 129 |
<option value="[% value.authorised_value | html %]" selected="selected">[% value.lib | html %]</option> |
| 130 |
[% ELSE %] |
| 131 |
<option value="[% value.authorised_value | html %]">[% value.lib | html %]</option> |
| 132 |
[% END %] |
| 178 |
[% END %] |
133 |
[% END %] |
| 179 |
</label> |
134 |
</select> |
| 180 |
<input type="checkbox" name="status-[% status.fieldname | html %]-[% value.authorised_value | html %]" id="[% value.authorised_value | html %]" /> |
135 |
</li> |
| 181 |
</li> |
136 |
[% END %] |
| 182 |
[% END %] |
137 |
|
| 183 |
[% END %] |
138 |
[% SET ccodes = AuthorisedValues.GetAuthValueDropbox('CCODE') %] |
| 184 |
</ul> |
139 |
[% IF ( ccodes.count > 0 ) %] |
| 185 |
</fieldset> |
140 |
<li> |
| 186 |
[% END %] |
141 |
<label for="ccode">Collection code: </label> |
| 187 |
[% END %] |
142 |
<select id="ccodeloop" name="ccode"> |
| 188 |
</div> |
143 |
<option value="">Filter collection</option> |
| 189 |
<ol> |
144 |
[% FOREACH cc IN ccodes %] |
| 190 |
<li> |
145 |
[% IF (ccode == cc.authorised_value) %] |
| 191 |
<br/> |
146 |
<option value="[% cc.authorised_value | html %]" selected="selected">[% cc.lib | html %]</option> |
| 192 |
<label for="datelastseen">Last inventory date:</label> |
147 |
[% ELSE %] |
| 193 |
<input type="text" id="datelastseen" name="datelastseen" value="[% datelastseen | html %]" class="flatpickr" /> |
148 |
<option value="[% cc.authorised_value | html %]">[% cc.lib | html %]</option> |
| 194 |
(Skip records marked as seen on or after this date.) |
149 |
[% END %] |
| 195 |
</li> |
150 |
[% END %] |
| 196 |
<li> |
151 |
</select> |
| 197 |
<label for="ignoreissued">Skip items on loan: </label> |
152 |
</li> |
| 198 |
[% IF (ignoreissued) %] |
153 |
[% END %] |
| 199 |
<input type="checkbox" id="ignoreissued" name="ignoreissued" checked="checked" /> |
154 |
|
| 200 |
[% ELSE %] |
155 |
<li> |
| 201 |
<input type="checkbox" id="ignoreissued" name="ignoreissued" /> |
156 |
<label for="minlocation">Item call number between: </label> |
| 202 |
[% END %] |
157 |
<input type="text" name="minlocation" id="minlocation" value="[% minlocation | html %]" /> (items.itemcallnumber) |
| 203 |
</li> |
158 |
</li> |
| 204 |
<li> |
159 |
<li> |
| 205 |
<label for="ignore_waiting_holds">Skip items on hold awaiting pickup: </label> |
160 |
<label for="maxlocation">...and: </label> |
| 206 |
<input type="checkbox" id="ignore_waiting_holds" name="ignore_waiting_holds" /> |
161 |
<input type="text" name="maxlocation" id="maxlocation" value="[% maxlocation | html %]" /> |
| 207 |
</li> |
162 |
<li> |
| 208 |
<li> |
163 |
<label for="class_source">Call number classification scheme</label> |
| 209 |
<label>Item types: </label> |
164 |
<select name="class_source"> |
| 210 |
<div class="branchselector"> |
165 |
[% FOREACH class_source IN class_sources %] |
| 211 |
<p><a href="#" id="checkallitemtypes"> <i class="fa fa-check"></i> Select all</a> | <a href="#" id="checknoneitemtypes"> <i class="fa fa-times"></i> Clear all</a></p> |
166 |
[% IF class_source.cn_source == pref_class %] |
| 212 |
<div class="branchgridrow"> |
167 |
<option value="[% class_source.cn_source | html %]" selected="selected">[% class_source.description | html %] (default)</option> |
| 213 |
[% FOREACH itemtype IN itemtypes %] |
168 |
[% ELSE %] |
| 214 |
<div class="branchgriditem"> |
169 |
<option value="[% class_source.cn_source | html %]">[% class_source.description | html %]</option> |
| 215 |
<input id="itemtype-[% itemtype.itemtype | html %]" class="branch_select" type="checkbox" name="itemtype-[% itemtype.itemtype | html %]" value="[% itemtype.itemtype | html %]" /> |
170 |
[% END %] |
| 216 |
<label for="itemtype-[% itemtype.itemtype | html %]">[% itemtype.description | html %]</label> |
171 |
[% END %] |
|
|
172 |
</select> |
| 173 |
</li> |
| 174 |
</li> |
| 175 |
</ol> |
| 176 |
</fieldset> |
| 177 |
|
| 178 |
<fieldset class="rows" id="optionalfilters"> |
| 179 |
<legend>Optional filters for inventory list or comparing barcodes</legend> |
| 180 |
<span class="hint">Scanned items are expected to match one of the selected "not for loan" criteria if any are checked.</span> |
| 181 |
<br/> |
| 182 |
<div id="statuses" style="display: block;"> |
| 183 |
[% FOREACH status IN statuses %] |
| 184 |
[% IF (status.values) %] |
| 185 |
<fieldset style="float: left; padding: 5px; margin: 5px;text-align:right"> |
| 186 |
<legend>[% status.fieldname | html %]</legend> |
| 187 |
<ul id="statuses-[% fieldname | html %]" style="display: inline;"> |
| 188 |
[% FOREACH value IN status.values %] |
| 189 |
[% IF (value.lib) %] |
| 190 |
<li style="list-style: none;"> |
| 191 |
<label for="[% value.id | html %]"> |
| 192 |
[% IF ( status.fieldname == 'items.notforloan' && value.authorised_value == 0 && value.lib == '__IGNORE__' ) %] |
| 193 |
For loan |
| 194 |
[% ELSE %] |
| 195 |
[% value.lib | html %] |
| 196 |
[% END %] |
| 197 |
</label> |
| 198 |
<input type="checkbox" name="status-[% status.fieldname | html %]-[% value.authorised_value | html %]" id="[% value.authorised_value | html %]" /> |
| 199 |
</li> |
| 200 |
[% END %] |
| 201 |
[% END %] |
| 202 |
</ul> |
| 203 |
</fieldset> |
| 204 |
[% END %] |
| 205 |
[% END %] |
| 217 |
</div> |
206 |
</div> |
| 218 |
[% IF loop.count() % 4 == 0 && !loop.last() %] |
|
|
| 219 |
</div> |
| 220 |
<div class="branchgridrow"> |
| 221 |
[% END %] |
| 222 |
[% END %] |
| 223 |
</div> |
| 224 |
</div> |
| 225 |
</li> |
| 226 |
|
| 227 |
</ol> |
| 228 |
|
207 |
|
| 229 |
</fieldset> |
208 |
<ol> |
| 230 |
|
209 |
<li> |
| 231 |
<fieldset class="rows"> |
210 |
<br/> |
| 232 |
<legend>Additional options</legend> |
211 |
<label for="datelastseen">Last inventory date:</label> |
| 233 |
<ol> |
212 |
<input type="text" id="datelastseen" name="datelastseen" value="[% datelastseen | html %]" class="flatpickr" /> |
| 234 |
|
213 |
(Skip records marked as seen on or after this date.) |
| 235 |
<li> |
214 |
</li> |
| 236 |
<label for="CSVexport">Export to CSV file: </label> |
215 |
<li> |
| 237 |
<input type="checkbox" name="CSVexport" id="CSVexport" /> |
216 |
<label for="ignoreissued">Skip items on loan: </label> |
| 238 |
</li> |
217 |
[% IF (ignoreissued) %] |
| 239 |
</ol> |
218 |
<input type="checkbox" id="ignoreissued" name="ignoreissued" checked="checked" /> |
| 240 |
<input type="hidden" name="op" value="do_it" /> |
219 |
[% ELSE %] |
| 241 |
</fieldset> |
220 |
<input type="checkbox" id="ignoreissued" name="ignoreissued" /> |
|
|
221 |
[% END %] |
| 222 |
</li> |
| 223 |
<li> |
| 224 |
<label for="ignore_waiting_holds">Skip items on hold awaiting pickup: </label> |
| 225 |
<input type="checkbox" id="ignore_waiting_holds" name="ignore_waiting_holds" /> |
| 226 |
</li> |
| 227 |
<li> |
| 228 |
<label>Item types: </label> |
| 229 |
<div class="branchselector"> |
| 230 |
<p><a href="#" id="checkallitemtypes"> <i class="fa fa-check"></i> Select all</a> | <a href="#" id="checknoneitemtypes"> <i class="fa fa-times"></i> Clear all</a></p> |
| 231 |
<div class="branchgridrow"> |
| 232 |
[% FOREACH itemtype IN itemtypes %] |
| 233 |
<div class="branchgriditem"> |
| 234 |
<input id="itemtype-[% itemtype.itemtype | html %]" class="branch_select" type="checkbox" name="itemtype-[% itemtype.itemtype | html %]" value="[% itemtype.itemtype | html %]" /> |
| 235 |
<label for="itemtype-[% itemtype.itemtype | html %]">[% itemtype.description | html %]</label> |
| 236 |
</div> |
| 237 |
[% IF loop.count() % 4 == 0 && !loop.last() %] |
| 238 |
</div> |
| 239 |
<div class="branchgridrow"> |
| 240 |
[% END %] |
| 241 |
[% END %] |
| 242 |
</div> |
| 243 |
</div> |
| 244 |
</li> |
| 245 |
</ol> |
| 246 |
</fieldset> |
| 247 |
|
| 248 |
<fieldset class="rows"> |
| 249 |
<legend>Additional options</legend> |
| 250 |
<ol> |
| 251 |
<li> |
| 252 |
<label for="CSVexport">Export to CSV file: </label> |
| 253 |
<input type="checkbox" name="CSVexport" id="CSVexport" /> |
| 254 |
</li> |
| 255 |
</ol> |
| 256 |
</fieldset> |
| 257 |
|
| 258 |
<fieldset class="action"> |
| 259 |
<input type="submit" class="btn btn-primary" value="Submit" /> |
| 260 |
</fieldset> |
| 261 |
</form> |
| 262 |
[% END %] |
| 242 |
|
263 |
|
| 243 |
<fieldset class="action"><input type="submit" class="btn btn-primary" value="Submit" /></fieldset> |
264 |
[% IF op %] |
| 244 |
</form> |
265 |
<form method="post" action="/cgi-bin/koha/tools/inventory.pl"> |
|
|
266 |
[% INCLUDE 'csrf-token.inc' %] |
| 267 |
<input type="hidden" name="minlocation" value="[% minlocation | html %]" /> |
| 268 |
<input type="hidden" name="maxlocation" value="[% maxlocation | html %]" /> |
| 269 |
<input type="hidden" name="location" value="[% location | html %]" /> |
| 270 |
<input type="hidden" name="branchcode" value="[% branchcode | html %]" /> |
| 271 |
<input type="hidden" name="datelastseen" value="[% datelastseen | html %]" /> |
| 272 |
<input type="hidden" name="ccode" value="[% ccode | html %]" /> |
| 273 |
|
| 274 |
[% UNLESS uploadedbarcodesflag %] |
| 275 |
<div><a href="#" class="checkall"><i class="fa fa-check"></i> Select all</a> <a href="#" class="clearall"><i class="fa fa-times"></i> Clear all</a></div> |
| 276 |
[% END %] |
| 245 |
|
277 |
|
| 246 |
[% END %] |
278 |
<div class="page-section"> |
| 247 |
[% IF (op) %] |
279 |
<table id="inventoryt"> |
| 248 |
<form method="post" action="/cgi-bin/koha/tools/inventory.pl"> |
280 |
<thead> |
| 249 |
[% INCLUDE 'csrf-token.inc' %] |
281 |
<tr> |
| 250 |
<input type="hidden" name="minlocation" value="[% minlocation | html %]" /> |
282 |
[% UNLESS uploadedbarcodesflag %] |
| 251 |
<input type="hidden" name="maxlocation" value="[% maxlocation | html %]" /> |
283 |
<th>Seen</th> |
| 252 |
<input type="hidden" name="location" value="[% location | html %]" /> |
284 |
[% END %] |
| 253 |
<input type="hidden" name="branchcode" value="[% branchcode | html %]" /> |
285 |
<th>Barcode</th> |
| 254 |
<input type="hidden" name="datelastseen" value="[% datelastseen | html %]" /> |
286 |
<th>Call number</th> |
| 255 |
<input type="hidden" name="ccode" value="[% ccode | html %]" /> |
287 |
<th>Library</th> |
| 256 |
|
288 |
<th>Collection code</th> |
| 257 |
[% UNLESS uploadedbarcodesflag %] |
289 |
<th class="anti-the">Title</th> |
| 258 |
<div><a href="#" class="checkall"><i class="fa fa-check"></i> Select all</a> <a href="#" class="clearall"><i class="fa fa-times"></i> Clear all</a></div> |
290 |
<th>Not for loan</th> |
| 259 |
[% END %] |
291 |
<th>Lost</th> |
|
|
292 |
<th>Damaged</th> |
| 293 |
<th>Withdrawn</th> |
| 294 |
<th>Last seen</th> |
| 295 |
<th>Problems</th> |
| 296 |
</tr> |
| 297 |
</thead> |
| 298 |
<tbody> |
| 299 |
[% FOREACH result IN loop %] |
| 300 |
<tr> |
| 301 |
[% UNLESS uploadedbarcodesflag %] |
| 302 |
<td> |
| 303 |
<input type="checkbox" name="SEEN-[% result.itemnumber | html %]" value="1" /> |
| 304 |
</td> |
| 305 |
[% END %] |
| 260 |
|
306 |
|
| 261 |
<div class="page-section"> |
307 |
<td> |
| 262 |
<table id="inventoryt"> |
308 |
[% result.barcode | html %] |
| 263 |
<thead> |
309 |
</td> |
| 264 |
<tr> |
310 |
|
| 265 |
[% UNLESS uploadedbarcodesflag %]<th>Seen</th>[% END %] |
311 |
<td data-order="[% result.cn_sort | html %]"> |
| 266 |
<th>Barcode</th> |
312 |
[% result.itemcallnumber | html %] |
| 267 |
<th>Call number</th> |
313 |
</td> |
| 268 |
<th>Library</th> |
314 |
|
| 269 |
<th>Collection code</th> |
315 |
<td> |
| 270 |
<th class="anti-the">Title</th> |
316 |
[% Branches.GetName( result.homebranch ) | html %] |
| 271 |
<th>Not for loan</th> |
317 |
<span class="shelvingloc">[% result.location | html %]</span> |
| 272 |
<th>Lost</th> |
318 |
</td> |
| 273 |
<th>Damaged</th> |
319 |
|
| 274 |
<th>Withdrawn</th> |
320 |
<td> |
| 275 |
<th>Last seen</th> |
321 |
<span class="ccode">[% result.ccode | html %]</span> |
| 276 |
<th>Problems</th> |
322 |
</td> |
| 277 |
</tr> |
323 |
|
| 278 |
</thead> |
324 |
<td> |
| 279 |
<tbody> |
325 |
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% result.biblionumber | uri %]" class="openWin">[% result.title | html %]</a> |
| 280 |
[% FOREACH result IN loop %] |
326 |
[% IF ( result.author ) %] |
| 281 |
<tr> |
327 |
by <span class="author">[% result.author | html %]</span> |
| 282 |
[% UNLESS uploadedbarcodesflag %] |
328 |
[% END %] |
| 283 |
<td> |
329 |
</td> |
| 284 |
<input type="checkbox" name="SEEN-[% result.itemnumber | html %]" value="1" /> |
330 |
|
| 285 |
</td> |
331 |
<td> |
| 286 |
[% END %] |
332 |
[% result.notforloan | html %] |
| 287 |
<td> |
333 |
</td> |
| 288 |
[% result.barcode | html %] |
334 |
|
| 289 |
</td> |
335 |
<td> |
| 290 |
<td data-order="[% result.cn_sort | html %]"> |
336 |
[% result.itemlost | html %] |
| 291 |
[% result.itemcallnumber | html %] |
337 |
</td> |
| 292 |
</td> |
338 |
|
| 293 |
<td> |
339 |
<td> |
| 294 |
[% Branches.GetName( result.homebranch ) | html %] |
340 |
[% result.damaged | html %] |
| 295 |
<span class="shelvingloc">[% result.location | html %]</span> |
341 |
</td> |
| 296 |
</td> |
342 |
|
| 297 |
<td> |
343 |
<td> |
| 298 |
<span class="ccode">[% result.ccode | html %]</span> |
344 |
[% result.withdrawn | html %] |
| 299 |
</td> |
345 |
</td> |
| 300 |
<td> |
346 |
|
| 301 |
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% result.biblionumber | uri %]" class="openWin">[% result.title | html %]</a> |
347 |
<td data-order="[% result.datelastseen | html %]"> |
| 302 |
[% IF ( result.author ) %] |
348 |
[% result.datelastseen | $KohaDates with_hours => 1 %] |
| 303 |
by <span class="author">[% result.author | html %]</span> |
349 |
</td> |
| 304 |
[% END %] |
350 |
|
| 305 |
</td> |
351 |
<td> |
| 306 |
<td> |
352 |
[% FOREACH problem IN result.problems %] |
| 307 |
[% result.notforloan | html %] |
353 |
[% IF problem.key == 'wrongplace' %] |
| 308 |
</td> |
354 |
<span>Found in wrong place</span><br/> |
| 309 |
<td> |
355 |
[% ELSIF problem.key == 'changestatus' %] |
| 310 |
[% result.itemlost | html %] |
356 |
[% IF result.notforloan %] |
| 311 |
</td> |
357 |
<span>Item has unselected "Not for loan" status "[% result.notforloan | html %]"</span><br/> |
| 312 |
<td> |
358 |
[% ELSE %] |
| 313 |
[% result.damaged | html %] |
359 |
<span>Items has no "not for loan" status</span><br/> |
| 314 |
</td> |
360 |
[% END %] |
| 315 |
<td> |
361 |
[% ELSIF problem.key == 'not_scanned' %] |
| 316 |
[% result.withdrawn | html %] |
362 |
<span>Missing (not scanned)</span><br/> |
| 317 |
</td> |
363 |
[% ELSIF problem.key == 'checkedout' %] |
| 318 |
<td data-order="[% result.datelastseen | html %]"> |
364 |
<span>Still checked out</span><br/> |
| 319 |
[% result.datelastseen | $KohaDates with_hours => 1 %] |
365 |
[% ELSIF problem.key == 'no_barcode' %] |
| 320 |
</td> |
366 |
<span>No barcode</span><br/> |
| 321 |
<td> |
367 |
[% ELSIF problem.key == 'out_of_order' %] |
| 322 |
[% FOREACH problem IN result.problems %] |
368 |
<span>Item may be shelved out of order</span><br/> |
| 323 |
[% IF problem.key == 'wrongplace' %] |
369 |
[% END %] |
| 324 |
<span>Found in wrong place</span><br/> |
370 |
[% END %] |
| 325 |
[% ELSIF problem.key == 'changestatus' %] |
371 |
</td> |
| 326 |
[% IF result.notforloan %] |
372 |
</tr> |
| 327 |
<span>Item has unselected "Not for loan" status "[% result.notforloan | html %]"</span><br/> |
373 |
[% END %] |
| 328 |
[% ELSE %] |
374 |
</tbody> |
| 329 |
<span>Items has no "not for loan" status</span><br/> |
375 |
</table> |
|
|
376 |
</div> |
| 377 |
|
| 378 |
<div class="spacer"></div> |
| 379 |
|
| 380 |
[% UNLESS uploadedbarcodesflag %] |
| 381 |
<div style="padding : .3em 0"><a href="#" class="checkall"><i class="fa fa-check"></i> Select all</a> <a href="#" class="clearall"><i class="fa fa-times"></i> Clear all</a></div> |
| 382 |
<input type="submit" id="markseenandquit" class="btn btn-primary" value="Mark seen and quit" /> |
| 383 |
<input type="submit" value="Mark seen and continue >>" id="markseenandcontinuebutton" /> |
| 384 |
<input type="submit" value="Continue without marking >>" id="continuewithoutmarkingbutton" class="submit" /> |
| 330 |
[% END %] |
385 |
[% END %] |
| 331 |
[% ELSIF problem.key == 'not_scanned' %] |
386 |
</form> |
| 332 |
<span>Missing (not scanned)</span><br/> |
|
|
| 333 |
[% ELSIF problem.key == 'checkedout' %] |
| 334 |
<span>Still checked out</span><br/> |
| 335 |
[% ELSIF problem.key == 'no_barcode' %] |
| 336 |
<span>No barcode</span><br/> |
| 337 |
[% ELSIF problem.key == 'out_of_order' %] |
| 338 |
<span>Item may be shelved out of order</span><br/> |
| 339 |
[% END %] |
387 |
[% END %] |
| 340 |
[% END %] |
|
|
| 341 |
</td> |
| 342 |
</tr> |
| 343 |
[% END %] |
| 344 |
</tbody> |
| 345 |
</table> |
| 346 |
</div> |
| 347 |
|
| 348 |
<div class="spacer"></div> |
| 349 |
[% UNLESS uploadedbarcodesflag %] |
| 350 |
<div style="padding : .3em 0"><a href="#" class="checkall"><i class="fa fa-check"></i> Select all</a> <a href="#" class="clearall"><i class="fa fa-times"></i> Clear all</a></div> |
| 351 |
<input type="submit" id="markseenandquit" class="btn btn-primary" value="Mark seen and quit" /> |
| 352 |
<input type="submit" value="Mark seen and continue >>" id="markseenandcontinuebutton" /> |
| 353 |
<input type="submit" value="Continue without marking >>" id="continuewithoutmarkingbutton" class="submit" /> |
| 354 |
[% END %] |
| 355 |
</form> |
| 356 |
|
| 357 |
|
| 358 |
[% END %] |
| 359 |
|
388 |
|
| 360 |
</main> |
389 |
</main> |
| 361 |
</div> <!-- /.col-sm-10.col-sm-push-2 --> |
390 |
</div> <!-- /.col-sm-10.col-sm-push-2 --> |
| 362 |
- |
|
|