Koha/koha-tmpl/opac-tmpl/prog/en/modules/sco/sco-main.tt
Elliott Davis 05c47d5040 Bug 8033: This patch adds print slips to self checkout.
To Test:

Sign in to self checkout.
Enter a barcode and click submit.
Click the finish button
You should be prompted with a message asking if you would like a receipt.
If you click OK you should be taken to the page with the receipt.
If you click Cancel you should not see the reciept and you should be logged out.

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>

Added copyright to print slip for SCO

Modified POD and copyright.  Also perltidied

updated print slip option to show on the click of the finish button instead of the submit button

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Elliott Davis <elliott@bywatersolutions.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2012-12-13 17:48:09 -05:00

321 lines
14 KiB
Text

[% USE KohaDates %]
[% INCLUDE 'doc-head-open.inc' %][% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha [% END %] &rsaquo; Self checkout </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Koha [% Version %]" /> <!-- leave this for stats -->
<link rel="shortcut icon" href="[% themelang %]/includes/favicon.ico" type="image/x-icon" />
<!-- yui js -->
<script type="text/javascript" src="[% yuipath %]/utilities/utilities.js"></script>
<script type="text/javascript" src="[% yuipath %]/container/container-min.js"></script>
<script type="text/javascript" src="[% yuipath %]/menu/menu-min.js"></script>
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery-ui.js"></script>
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
<script type="text/javascript">//<![CDATA[
function sco_init(valid_session) {
if (valid_session == 1) {
setTimeout("location.href='/cgi-bin/koha/sco/sco-main.pl?op=logout';",[% SelfCheckTimeout %]);
}
}
function dofocus() { // named function req'd for body onload event by some FF and IE7 security models
// alert("dofocus called");
$(".focus:last").select();
}
var slip_re = /slip/;
function printx_window(print_type) {
var handler = print_type.match(slip_re) ? "printslip" : "moremember";
return false;
}
function checkout_confirm(patronid) {
var barcode = $("#barcode").val();
// alert("checkout_confirm('" + patronid + "') called for barcode '" + barcode + "'");
if (! barcode) { dofocus(); return false; } // no barcode
if (barcode == "__KOHA_NEW_CIRC__") { // magic barcode
window.location.href='/cgi-bin/koha/sco/sco-main.pl?op=logout';
return false;
}
if (this.valid_session == 0) {
// probably should force logout like above ? --atz 6/09
if (confirm('Session has expired. Click \'OK\' to continue processing this item. Click Cancel if you are not ' + patronid)){
this.op.value='logout';
this.patronid.value='';
}
}
return true;
}
// build Change Language menus
YAHOO.util.Event.onContentReady("changelanguage", function () {
$(".sublangs").each(function(){
var menuid = $(this).attr("id");
var menuid = menuid.replace("show","");
var oMenu = new YAHOO.widget.Menu("sub"+menuid, { zindex: 2 });
function positionoMenu() {
oMenu.align("bl", "tl");
}
oMenu.subscribe("beforeShow", function () {
if (this.getRoot() == this) {
positionoMenu();
}
});
oMenu.render();
oMenu.cfg.setProperty("context", ["show"+menuid, "bl", "tl"]);
function onYahooClick(p_oEvent) {
// Position and display the menu
positionoMenu();
oMenu.show();
// Stop propagation and prevent the default "click" behavior
YAHOO.util.Event.stopEvent(p_oEvent);
}
YAHOO.util.Event.addListener("show"+menuid, "click", onYahooClick);
YAHOO.widget.Overlay.windowResizeEvent.subscribe(positionoMenu);
});
});
$.tablesorter.addParser({
id: 'articles',
is: function(s) {return false; },
format: function(s) { return s.toLowerCase().replace(/^(the|an|a) /,''); },
type: 'text'
});
$(document).ready(function() {
[% IF ( patronid ) %] sco_init(1);
[% ELSIF ( timedout ) %] sco_init(1);
[% END %]
$("#loanTable").tablesorter({
[% IF ( dateformat_metric ) %]
dateFormat: 'uk',
[% END %]
widgets: ['zebra'],
sortList: [[2, 1], [0, 0]],
headers: {
0: { sorter: 'articles' },
3: { sorter: false }
[% UNLESS ( nofines ) %], 4: { sorter: false }[% END %]
}
});
});
//]]>
$(document).ready(function(){
$("#logout_form input.finish").click(function(){
if(confirm("Would you like to print a receipt?")){
window.open("/cgi-bin/koha/sco/printslip.pl?borrowernumber=[% borrowernumber %]&amp;print=qslip");
}
$(this).parent().attr("action", "/cgi-bin/koha/sco/sco-main.pl?op=logout");
$(this).parent().submit();
});
});
</script>
[% IF ( opacuserjs ) %]<script type="text/javascript">[% opacuserjs %]</script>[% END %]
<link rel="stylesheet" type="text/css" href="[% yuipath %]/reset-fonts-grids.css" />
<link rel="stylesheet" type="text/css" href="[% yuipath %]/skin.css" />
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/sco.css" />
[% IF ( OPACUserCSS ) %]<style type="text/css">[% OPACUserCSS %]</style>[% END %]
</head>
<body onload="dofocus();">
<div id="doc" class="yui-t7">
<div id="masthead"><h1>[% LibraryName %] Self checkout system</h1></div>
<div id="bd">
[% IF ( impossible ) %]<!-- We tried to issue, but failed. -->
<div class="dialog alert"><h3>Item cannot be checked out.</h3><p>Sorry, This item cannot be checked out at this station. </p>
[% IF ( title ) %]<p>Title: <em>[% title |html %]</em> </p>[% END %]
<p>
[% IF ( circ_error_UNKNOWN_BARCODE ) %]
<em>MESSAGE 1:</em> The system does not recognize this barcode.
[% ELSIF ( circ_error_TOO_MANY ) %]
<em>MESSAGE 2:</em> You have borrowed too many items and can't check out any more.
[% ELSIF ( circ_error_ISSUED_TO_ANOTHER ) %]
<em>MESSAGE 3:</em> This item is checked out to someone else.
[% ELSIF ( circ_error_NO_MORE_RENEWALS ) %]
<em>MESSAGE 4:</em> You cannot renew this item again.
[% ELSIF ( circ_error_NOT_FOR_LOAN ) %]
<em>MESSAGE 5:</em> This item is not for loan.
[% ELSIF ( circ_error_DEBT ) %]
<em>MESSAGE 6:</em> You owe the library [% amount %] and cannot borrow.
[% ELSIF ( circ_error_WTHDRAWN ) %]
<em>MESSAGE 7:</em> This item has been withdrawn from the collection.
[% ELSIF ( circ_error_RESTRICTED ) %]
<em>MESSAGE 8:</em>
[% ELSIF ( circ_error_RESERVED ) %]
<em>MESSAGE 9:</em> This item is reserved for another patron.
[% ELSIF ( circ_error_ITEMNOTSAMEBRANCH ) %]
<em>MESSAGE 10:</em>
[% ELSIF ( circ_error_EXPIRED ) %]
<em>MESSAGE 11:</em> Your account has expired.
[% ELSIF ( circ_error_DEBARRED ) %]
<em>MESSAGE 12:</em> Your account has been suspended.
[% ELSIF ( circ_error_CARD_LOST ) %]
<em>MESSAGE 13:</em> This card has been declared lost.
[% ELSIF ( circ_error_GNA ) %]
<em>MESSAGE 14:</em>
[% ELSIF ( circ_error_INVALID_DATE ) %]
<em>MESSAGE 15:</em>
[% END %]
Please see a member of the library staff.
</p>
<form action="/cgi-bin/koha/sco/sco-main.pl" name="errorForm" method="post">
<input type="hidden" name="op" value="login" />
<input type="hidden" name="patronid" value="[% patronid %]" />
[% IF ( returnitem ) %]
[% IF ( AllowSelfCheckReturns ) %]
<input type="hidden" name="barcode" value="[% barcode %]" />
<input type="button" name="returnbook" value="Return this item" class="return" onclick="this.form.op.value='returnbook';this.form.submit();" />
[% END %]
[% END %]
<input type="submit" name= "confirm" value="Return to Account Summary" class="back focus" />
</form>
[% END %]
[% IF ( confirm ) %]<!-- We need to confirm the issue.. -->
<div class="dialog alert"><h3>Please confirm the checkout:</h3>
<p>[% IF ( confirm_renew_issue ) %]This item is already checked out to you.[% END %]</p>
<form action="/cgi-bin/koha/sco/sco-main.pl" name="confirmForm" method="post">
<input type="hidden" name="op" value="checkout" />
<input type="hidden" name="patronid" value="[% patronid %]" />
<input type="hidden" name="barcode" value="[% barcode %]" />
<input type="hidden" name="confirmed" value="" />
[% IF ( renew ) %]
[% IF ( AllowSelfCheckReturns ) %]
<input type="button" value="Return item" name="confirm" class="return" onclick="this.form.op.value='returnbook';this.form.submit();" />
[% END %]
[% END %]
[% UNLESS ( renew ) %]<input type="button" value="Renew item" name="confirm" class="renew" onclick="this.form.confirmed.value='1';this.form.submit();" />
[% ELSE %]<input type="button" value="Renew item" class="renew" onclick="this.form.confirmed.value='1';this.form.submit();" />[% END %]
<input type="button" value="Cancel" class="cancel" onclick="this.form.op.value='';this.form.submit();return true;" />
</form>
</div>
[% END %]
[% IF ( nopermission ) %]<!-- This is what is displayed if user doesnt have permission --><div class="dialog alert"><h3>Access denied</h3>
Sorry, this self-checkout station has lost authentication. Please contact the administrator to resolve this problem. </div>
[% END %]
[% IF ( timed_out ) %]<!-- This is what is displayed if login has timed out -->
<div class="dialog alert"><h3>Session timed out</h3>Sorry, your session has timed out, please log in again.</div>[% END %]
[% IF ( different_ip ) %]<!-- This is what is displayed if user doesnt have permission --><div class="dialog alert"><h3>Session lost</h3>You are accessing self-checkout from a different IP address! please log in again.</div>[% END %]
[% IF ( invalid_username_or_password ) %]
<!-- This is what is displayed if user doesnt have permission --><div class="dialog alert"><h3>Record not found</h3><p>Your userid was not found in the database. Please try again.</p></div>[% END %]
[% UNLESS ( hide_main ) %]
<div class="sco_head">
[% UNLESS ( validuser ) %]
<h3>Self checkout</h3>
[% END %]
<div id="checkouthelp">
<a href="/cgi-bin/koha/sco/help.pl">HELP</a> with the self checkout system
</div>
[% IF ( patronid ) %]
[% IF ( validuser ) %]
<h3 class="warning">You are logged in as [% borrowername %].</h3>
[% END %]
</div>
[% IF ( nouser ) %]
<div class="dialog alert"><h4>Sorry</h4><p>The userid <strong>[% patronid %]</strong> was not found in the database. Please try again.</p></div>
<br />
[% END %]
[% END %]
[% IF ( timedout ) %]
<div class="dialog message"><h4>Sorry</h4><p>Your session has timed out due to inactivity. Please sign in.</p></div>
<br />
[% END %]
[% IF ( validuser ) %]
[% IF ( display_patron_image ) %]<div class="yui-ge"><div class="yui-u first">[% END %]
<div id="newcheckout" class="sco_entry">
<form id="scan_form" name="scan_form" method="post" action="/cgi-bin/koha/sco/sco-main.pl" onsubmit="return checkout_confirm('[% patronid %]');">
<fieldset><legend> Check out[% IF ( AllowSelfCheckReturns ) %], return[% END %] or renew an item: </legend>
<label for="barcode">Scan a new item or enter its barcode:</label>
<input id="barcode" name="barcode" size="20" class="focus" />
<input type="hidden" name="op" value="checkout" />
<input type="hidden" name="patronid" value="[% patronid %]" />
<input type="hidden" name="valid_session" value="1" />
<input type="submit" value="Submit" class="submit" /></fieldset>
</form>
<div><form method="post" action="#" id="logout_form"><input type="submit" value="Finish" class="finish" /></form></div>
</div> <!-- sco_entry --> <!-- newcheckout -->
[% IF ( display_patron_image ) %]</div> <!-- /yui-u first -->[% END %]
[% IF ( display_patron_image ) %]
<div class="yui-u">
<img src="/cgi-bin/koha/sco/sco-patron-image.pl?cardnumber=[% cardnumber %]" alt="" />
</div>
[% END %]
</div> <!-- /yui-ge -->
<div class="yui-g">
<div id="borrowerdetails">
[% IF ( issues_count ) %]
<table id="loanTable"><caption>Checkouts for [% borrowername %] <span class="count">([% issues_count %] total)</span></caption>
<!-- ISSUES TABLE ROWS -->
<thead>
<tr><th>Title</th><th>Call no.</th><th>Due</th><th>Renew</th>[% UNLESS ( nofines ) %]<th>Fines</th>[% END %]</tr>
</thead>
<tbody>
[% FOREACH ISSUE IN ISSUES %]
[% UNLESS ( loop.odd ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
<!-- FIXME: yet another jacket image breakpoint -->
<td>[% UNLESS ( ISSUE.noitemlinks ) %]<a href="/cgi-bin/koha/opac-detail.pl?bib=[% ISSUE.biblionumber %]">[% ISSUE.title |html %]</a>[% ELSE %]<strong>[% ISSUE.title |html %]</strong>[% END %]<span class="item-details">
[% ISSUE.author %]</span> ([% ISSUE.barcode %])</td>
<td>[% ISSUE.itemcallnumber %]</td>
[% IF ( ISSUE.overdue ) %]<td class="overdue">[% ISSUE.date_due | $KohaDates %]</td>[% ELSE %]<td>[% ISSUE.date_due | $KohaDates %]</td>[% END %]
<td>
<form action="/cgi-bin/koha/sco/sco-main.pl" method="post">
<input type="hidden" name="op" value="checkout" />
<input type="hidden" name="patronid" value="[% patronid %]" />
<input type="hidden" name="barcode" value="[% ISSUE.barcode %]" />
<input type="hidden" name="confirmed" value="" />
[% IF ( ISSUE.norenew ) %]
[% IF ( ISSUE.AllowSelfCheckReturns ) %]
<input type="button" value="Return Item" name="confirm" class="return" onclick="this.form.op.value='returnbook';this.form.submit();" />
[% ELSE %]
<span>No renewals allowed</span>
[% END %]
[% ELSE %]
[% UNLESS ( ISSUE.renew ) %]<input type="button" value="Renew Item" name="confirm" class="renew" onclick="this.form.confirmed.value='1';this.form.submit();" />
[% ELSE %]<input type="button" value="Renew Item" class="renew" onclick="this.form.confirmed.value='1';this.form.submit();" />[% END %]
[% END %]
</form>
</td>
[% UNLESS ( nofines ) %]<td>[% IF ( ISSUE.charges ) %]Yes[% ELSE %]No[% END %]</td>[% END %]</tr>
[% END %]
</tbody>
</table>
[% ELSE %]
<h3>You currently have nothing checked out.</h3>
[% END %]
</div> <!-- /yui-g -->
[% ELSE %]<!-- not validuser -->
<div class="sco_entry" >
<form id="mainform" action="/cgi-bin/koha/sco/sco-main.pl" name="mainform" method="post">
[% IF ( authbylogin ) %]
<fieldset class="checkout">
<legend>Please login with your username and password</legend>
<label for="patronlogin">Username:</label>
<input type="text" id="patronlogin" class="focus" size="20" name="patronlogin" />
<label for="patronpw">Password:</label>
<input type="password" id="patronpw" size="20" name="patronpw" />
[% ELSE %]
<fieldset class="checkout"><label for="patronid">Please enter your card number:</label>
<input type="text" id="patronid" class="focus" size="20" name="patronid" />
[% END %]
[% FOREACH INPUT IN INPUTS %]<input type="hidden" name="[% INPUT.name |html %]" value="[% INPUT.value |html %]">[% END %]
<input type="hidden" name="op" value="login" />
<input type="submit" value="Submit" class="submit" /></fieldset></form>
</div>
[% END %]
[% END %] <!-- ( / hide main) -->
</div>
</div>
[% INCLUDE 'opac-bottom.inc' %]