From 333624f6c217a6f241e25cf4ff174abed6010a1c Mon Sep 17 00:00:00 2001
From: Elliott Davis <elliott@bywatersolutions.com>
Date: Thu, 5 Jul 2012 09:46:54 -0500
Subject: [PATCH] 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.
http://bugs.koha-community.org/show_bug.cgi?id=8033
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Added copyright to print slip for SCO
Modified POD and copyright. Also perltidied
http://bugs.koha-community.org/show_bug.cgi?id=8033
updated print slip option to show on the click of the finish button instead of the submit button
Signed-off-by: Elliott Davis <elliott@test.bywatersolutions.com>
---
.../opac-tmpl/prog/en/modules/sco/printslip.tt | 26 ++++++++
.../opac-tmpl/prog/en/modules/sco/sco-main.tt | 18 +++++-
opac/sco/printslip.pl | 68 ++++++++++++++++++++
opac/sco/sco-main.pl | 1 +
4 files changed, 111 insertions(+), 2 deletions(-)
create mode 100644 koha-tmpl/opac-tmpl/prog/en/modules/sco/printslip.tt
create mode 100755 opac/sco/printslip.pl
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/sco/printslip.tt b/koha-tmpl/opac-tmpl/prog/en/modules/sco/printslip.tt
new file mode 100644
index 0000000..eaa0d30
--- /dev/null
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/sco/printslip.tt
@@ -0,0 +1,26 @@
+[% INCLUDE 'doc-head-open.inc' %]
+<title>[% title %]</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="shortcut icon" href="[% IF ( IntranetFavicon ) %][% IntranetFavicon %][% ELSE %][% themelang %]/includes/favicon.ico[% END %]" type="image/x-icon" />
+<link rel="stylesheet" type="text/css" href="[% themelang %]/css/print.css" />
+[% IF stylesheet %]
+<link rel="stylesheet" type="text/css" href="[% stylesheet %]" />
+[% END %]
+
+<script language="javascript">
+ function printThenClose() {
+ window.print();
+ window.close();
+ }
+</script>
+</head>
+<body id="circ_printslip" class="circ" onload="printThenClose();">
+<div id="receipt">
+
+[% IF plain %]
+<pre>
+[% slip %]
+</pre>
+[% ELSE %]
+[% slip %]
+[% END %]
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/sco/sco-main.tt b/koha-tmpl/opac-tmpl/prog/en/modules/sco/sco-main.tt
index 66cace5..c8fae51 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/sco/sco-main.tt
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/sco/sco-main.tt
@@ -8,6 +8,7 @@
<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) {
@@ -19,7 +20,12 @@ function dofocus() { // named function req'd for body onload event by some FF
// 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 + "'");
@@ -92,7 +98,15 @@ $(document).ready(function() {
});
});
//]]>
-
+$(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 %]&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 %]
@@ -227,7 +241,7 @@ Sorry, this self-checkout station has lost authentication. Please contact the a
<input type="hidden" name="valid_session" value="1" />
<input type="submit" value="Submit" class="submit" /></fieldset>
</form>
- <div><form method="post" action="/cgi-bin/koha/sco/sco-main.pl?op=logout" ><input type="submit" value="Finish" class="finish" /></form></div>
+ <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 ) %]
diff --git a/opac/sco/printslip.pl b/opac/sco/printslip.pl
new file mode 100755
index 0000000..e8a5685
--- /dev/null
+++ b/opac/sco/printslip.pl
@@ -0,0 +1,68 @@
+#!/usr/bin/perl
+
+# Copyright 2012 ByWater Solutions
+#
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+=head1 printslip.pl
+
+Script to allow SCO patrons to print a receipt for their checkout.
+
+It is called from sco-main.pl
+
+=cut
+
+
+use strict;
+use warnings;
+use CGI;
+use C4::Context;
+use C4::Auth qw/:DEFAULT get_session/;
+use C4::Output;
+use C4::Members;
+use C4::Koha;
+
+my $input = new CGI;
+my $sessionID = $input->cookie("CGISESSID");
+my $session = get_session($sessionID);
+
+my $print = $input->param('print');
+my $error = $input->param('error');
+
+# patrons still need to be able to print receipts
+my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+ {
+ template_name => "/sco/printslip.tmpl",
+ query => $input,
+ type => "opac",
+ }
+);
+
+my $borrowernumber = $input->param('borrowernumber');
+my $branch=C4::Context->userenv->{'branch'};
+my ($slip, $is_html);
+if (my $letter = IssueSlip ($session->param('branch') || $branch, $borrowernumber, $print eq "qslip")) {
+ $slip = $letter->{content};
+ $is_html = $letter->{is_html};
+}
+
+$template->{VARS}->{slip} = $slip;
+$template->{VARS}->{plain} = !$is_html;
+$template->{VARS}->{title} = "Print Receipt for $borrowernumber";
+$template->{VARS}->{stylesheet} = C4::Context->preference("SlipCSS");
+$template->{VARS}->{error} = $error;
+
+output_html_with_http_headers $input, $cookie, $template->output;
diff --git a/opac/sco/sco-main.pl b/opac/sco/sco-main.pl
index 26a8774..f53fcda 100755
--- a/opac/sco/sco-main.pl
+++ b/opac/sco/sco-main.pl
@@ -239,6 +239,7 @@ if ($borrower->{cardnumber}) {
patronlogin => $patronlogin,
patronpw => $patronpw,
noitemlinks => 1 ,
+ borrowernumber => $borrower->{'borrowernumber'},
);
my $inputfocus = ($return_only == 1) ? 'returnbook' :
($confirm_required == 1) ? 'confirm' : 'barcode' ;
--
1.7.2.5