0313856d9a
* when a file was uploaded and the comparison with catalogue range requested, the comparison was wrong: the logic was wrong * items that were not supposed to be scanned (ie: supposed to be on another shelf) didn't had the author and title, it was hard to retrieve them on the shelved * some useful fields were missing, like homebranch, location, status * the CSV export contained all the item information. It should contain the same informations as the screen Behaviour now: * scan a list of barcode & select a range of location * if a barcode has been scanned and should not be (misplaced item), the information is displayed * if you choose "compare barcodes list to result option", the resulting list contains all items that have been scanned and those that were supposed to be. Any item not in both list appears with a specific message on the last column Signed-off-by: Leila <koha.aixmarseille@gmail.com> Signed-off-by: Koha Team Amu <koha.aixmarseille@gmail.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
274 lines
12 KiB
Text
274 lines
12 KiB
Text
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Tools › Inventory</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
|
|
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script>
|
|
<script type="text/javascript" src="[% themelang %]/js/datatables.js"></script>
|
|
[% INCLUDE 'calendar.inc' %]
|
|
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
|
|
<script type="text/javascript">
|
|
//<![CDATA[
|
|
$(document).ready(function(){
|
|
|
|
inventorydt = $('#inventoryt').dataTable($.extend(true, {}, dataTablesDefaults, {
|
|
'sPaginationType': 'full_numbers',
|
|
"aoColumnDefs": [ { "bSortable": false, "aTargets": [ 0 ] } ]
|
|
} ));
|
|
|
|
|
|
$("#continuewithoutmarkingbutton").click(function(){
|
|
inventorydt.fnPageChange( 'next' );
|
|
return false;
|
|
});
|
|
|
|
$("#markseenandcontinuebutton").click(function(){
|
|
var param = '';
|
|
$("input:checked").each(function() {
|
|
param += "|" + $(this).attr('name');
|
|
});
|
|
$.post('/cgi-bin/koha/tools/ajax-inventory.pl', { seen: param });
|
|
inventorydt.fnPageChange( 'next' );
|
|
return false;
|
|
});
|
|
|
|
$("#markseenandquit").click(function(){
|
|
var param = '';
|
|
$("input:checked").each(function() {
|
|
param += "|" + $(this).attr('name');
|
|
});
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: '/cgi-bin/koha/tools/ajax-inventory.pl',
|
|
data: { seen: param},
|
|
async: false
|
|
});
|
|
document.location.href = '/cgi-bin/koha/tools/inventory.pl';
|
|
return false;
|
|
});
|
|
|
|
|
|
|
|
$(".checkall").click(function(){
|
|
$(".checkboxed").checkCheckboxes();
|
|
return false;
|
|
});
|
|
$(".clearall").click(function(){
|
|
$(".checkboxed").unCheckCheckboxes();
|
|
return false;
|
|
});
|
|
[% IF ( offset ) %]$("#markseen").before("<input type=\"submit\" value=\"<< " + _("Mark seen and continue") + "\" id=\"markback\" /> ");[% END %]
|
|
[% IF ( nextoffset ) %]$("#markseen").after(" <input type=\"submit\" id=\"marknext\" value=\"" + _("Mark seen and continue") + " >>\" />");[% END %]
|
|
$("#markback").click(function(){
|
|
$(".checkboxed").find("input").filter("[name=offset]").attr("value","[% prevoffset %]");
|
|
return true;
|
|
});
|
|
$("#marknext").click(function(){
|
|
$(".checkboxed").find("input").filter("[name=offset]").attr("value","[% nextoffset %]");
|
|
return true;
|
|
});
|
|
});
|
|
//]]>
|
|
</script>
|
|
</head>
|
|
<body id="tools_inventory" class="tools">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'cat-search.inc' %]
|
|
|
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> › [% IF (loop) %]<a href="/cgi-bin/koha/tools/inventory.pl">Inventory</a> › Results[% ELSE %]Inventory[% END %]</div>
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
<h1>Inventory/Stocktaking</h1>
|
|
[% IF (moddatecount) %]<div class="dialog message">[% moddatecount %] items modified : datelastseen set to [% date %]</div>[% END %]
|
|
[% IF (errorfile) %]<div class="dialog alert">[% errorfile %] can't be opened</div>[% END %]
|
|
[% FOREACH error IN errorloop %]
|
|
<div class="dialog alert">
|
|
[% error.barcode %]
|
|
[% IF (error.ERR_BARCODE) %]: barcode not found[% END %]
|
|
[% IF (error.ERR_WTHDRAWN) %]: item withdrawn[% END %]
|
|
[% IF (error.ERR_ONLOAN_RET) %]: item was on loan. It was returned before marked as seen[% END %]
|
|
[% IF (error.ERR_ONLOAN_NOT_RET) %]: item was on loan. couldn't be returned.[% END %]
|
|
</div>
|
|
[% END %]
|
|
[% UNLESS op %]
|
|
<div class="yui-g">
|
|
<form method="post" action="/cgi-bin/koha/tools/inventory.pl" enctype="multipart/form-data">
|
|
<fieldset class="rows">
|
|
<legend>Use a barcode file</legend>
|
|
<ol>
|
|
<li><label for="uploadbarcodes">Barcode file: </label> <input type="file" id="uploadbarcodes" name="uploadbarcodes" /></li>
|
|
<li><label for="setdate">Set inventory date to:</label> <input type="text" id="setdate" name="setdate" value="[% today %]" class="datepickerfrom" />
|
|
</li>
|
|
</ol>
|
|
</fieldset>
|
|
<fieldset class="rows">
|
|
<legend>Select items you want to check</legend>
|
|
<ol><li>
|
|
<label for="branch">Library: </label>
|
|
<input type="radio" name="branch" value="homebranch"> Home library</input>
|
|
<input type="radio" name="branch" value="holdingbranch"> Current location</input>
|
|
</li><li>
|
|
<label for="branchloop">Library: </label><select id="branchloop" name="branchcode" style="width:12em;">
|
|
<option value="">All locations</option>
|
|
[% FOREACH branchloo IN branchloop %]
|
|
[% IF ( branchloo.selected ) %]
|
|
<option value="[% branchloo.value %]" selected="selected">[% branchloo.branchname %]</option>
|
|
[% ELSE %]
|
|
<option value="[% branchloo.value %]">[% branchloo.branchname %]</option>
|
|
[% END %]
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
[% IF (authorised_values) %]
|
|
<li>
|
|
<label for="locationloop">Shelving location (items.location) is: </label>
|
|
<select id="locationloop" name="location">
|
|
<option value="">Filter location</option>
|
|
[% FOREACH value IN authorised_values %]
|
|
[% IF (value.selected) %]
|
|
<option value="[% value.authorised_value %]" selected="selected">[% value.lib %]</option>
|
|
[% ELSE %]
|
|
<option value="[% value.authorised_value %]">[% value.lib %]</option>
|
|
[% END %]
|
|
[% END %]
|
|
</select> </li>
|
|
[% END %]
|
|
<li>
|
|
<label for="minlocation">Item callnumber between: </label>
|
|
<input type="text" name="minlocation" id="minlocation" value="[% minlocation %]" /> (items.itemcallnumber) </li>
|
|
<li><label for="maxlocation">...and: </label>
|
|
<input type="text" name="maxlocation" id="maxlocation" value="[% maxlocation %]" />
|
|
</li>
|
|
[% IF (statuses) %]
|
|
</ol>
|
|
</fieldset>
|
|
<fieldset class="rows">
|
|
<legend>Item statuses</legend>
|
|
<div name="statuses" style="display: block;">
|
|
[% FOREACH status IN statuses %]
|
|
[% IF (status.values) %]
|
|
<fieldset style="float: left; padding: 5px; margin: 5px;text-align:right">
|
|
<legend>[% status.fieldname %]</legend>
|
|
<ul id="statuses-[% fieldname %]" style="display: inline;">
|
|
[% FOREACH value IN status.values %]
|
|
[% IF (value.lib) %]<li>
|
|
<label for="[% value.id %]">
|
|
[% value.lib %]
|
|
</label>
|
|
<input type="checkbox" name="status-[% status.fieldname %]-[% value.authorised_value %]" id="[% value.authorised_value %]" />
|
|
</li>[% END %]
|
|
[% END %]
|
|
</ul>
|
|
</fieldset>
|
|
[% END %]
|
|
[% END %]
|
|
</div>
|
|
</fieldset>
|
|
<fieldset class="rows">
|
|
<ol>
|
|
[% END %]
|
|
|
|
<li><label for="datelastseen">Inventory date:</label>
|
|
<input type="text" id="datelastseen" name="datelastseen" value="[% datelastseen %]" class="datepickerfrom" />
|
|
</li>
|
|
<li><label for="ignoreissued">Skip copies on loan: </label>
|
|
[% IF (ignoreissued) %]
|
|
<input type="checkbox" id="ignoreissued" name="ignoreissued" checked="checked" /></li>
|
|
[% ELSE %]
|
|
<input type="checkbox" id="ignoreissued" name="ignoreissued" /></li>
|
|
[% END %]
|
|
<li>
|
|
<label for="CSVexport">Export to CSV file: </label>
|
|
<input type="checkbox" name="CSVexport" id="CSVexport" />
|
|
</li>
|
|
<li>
|
|
<label for="compareinv2barcd">Compare barcodes list to results: </label>
|
|
<input type="checkbox" name="compareinv2barcd" id="compareinv2barcd" />
|
|
</li>
|
|
</ol>
|
|
</fieldset>
|
|
<input type="hidden" name="op" value="do_it" />
|
|
<fieldset class="action"><input type="submit" value="Submit" class="button" /></fieldset>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
[% END %]
|
|
[% IF (op) %]
|
|
<form method="post" action="/cgi-bin/koha/tools/inventory.pl" class="checkboxed">
|
|
<input type="hidden" name="markseen" value="1" />
|
|
<input type="hidden" name="minlocation" value="[% minlocation %]" />
|
|
<input type="hidden" name="maxlocation" value="[% maxlocation %]" />
|
|
<input type="hidden" name="location" value="[% location %]" />
|
|
<input type="hidden" name="branchcode" value="[% branchcode %]" />
|
|
<input type="hidden" name="datelastseen" value="[% datelastseen %]" />
|
|
<input type="hidden" name="pagesize" value="[% pagesize %]" />
|
|
<input type="hidden" name="offset" value="[% offset %]" />
|
|
<div><a href="#" class="checkall">[Select All]</a> <a href="#" class="clearall">[Clear All]</a></div>
|
|
<table id="inventoryt">
|
|
<thead>
|
|
<tr>
|
|
<th>Seen</th>
|
|
<th>Barcode</th>
|
|
<th>Location</th>
|
|
<th>Title</th>
|
|
<th>Status</th>
|
|
<th>Lost</th>
|
|
<th>Damaged</th>
|
|
<th>Unseen since</th>
|
|
<th>Problems</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% FOREACH result IN loop %]
|
|
<tr>
|
|
<td>
|
|
<input type="checkbox" name="SEEN-[% result.itemnumber %]" value="1" />
|
|
</td>
|
|
<td>
|
|
[% result.barcode | html %]
|
|
</td>
|
|
<td>
|
|
[% result.homebranch | html %] [% result.location | html %] [[% result.itemcallnumber | html %]]
|
|
</td>
|
|
<td>
|
|
<p><a href="#" onclick="window.open('/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% result.biblionumber %]','marcview','width=800,height=600,toolbar=0,scrollbars=1');">[% result.title | html %]</a></p><p>[% result.author | html %]</p>
|
|
</td>
|
|
<td>
|
|
[% result.notforloan | html %]
|
|
</td>
|
|
<td>
|
|
[% result.itemlost | html %]
|
|
</td>
|
|
<td>
|
|
[% result.damaged | html %]
|
|
</td>
|
|
<td>
|
|
[% result.datelastseen | html %]
|
|
</td>
|
|
<td>
|
|
[% IF (result.wrongplace) %]<p>Item should not have been scanned</p>[% ELSIF (result.missingitem) %]<p>Item missing</p>[% ELSIF (result.changestatus) %]<p>Change item status</p>[% END %]
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
<div class="spacer"></div>
|
|
<p style="display:block;"><span class="exportSelected"></span></p>
|
|
<div style="padding : .3em 0"><a href="#" class="checkall">[Select All]</a> <a href="#" class="clearall">[Clear All]</a></div>
|
|
<input type="submit" id="markseenandquit" value="Mark seen and quit" />
|
|
<input type="submit" value="Mark Seen and Continue >>" id="markseenandcontinuebutton" />
|
|
<input type="submit" value="Continue without Marking >>" id="continuewithoutmarkingbutton" class="submit" />
|
|
</form>
|
|
|
|
</div>
|
|
|
|
[% END %]
|
|
</div>
|
|
<div class="yui-b">
|
|
[% INCLUDE 'tools-menu.inc' %]
|
|
</div>
|
|
</div>
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|