From 7a6a1acff2ace7cdb76f97b304f14ccbd052d91a Mon Sep 17 00:00:00 2001 From: Chris Nighswonger Date: Thu, 19 Nov 2009 11:53:02 -0500 Subject: [PATCH] [16/30] Patron Card Creator print interface and code --- .../prog/en/modules/patroncards/print.tmpl | 135 ++++++++++++++++++ patroncards/print.pl | 131 +++++++++++++++++ 2 files changed, 266 insertions(+) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/print.tmpl create mode 100755 patroncards/print.pl diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/print.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/print.tmpl new file mode 100644 index 0000000000..bd9e6c9400 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/print.tmpl @@ -0,0 +1,135 @@ + + Koha › Tools › Patron Cards › Patron Card Printing/Exporting + + + + + + +
+
+ +
+
+
+ Click on the following link(s) to download the exported batch(es). +
+
+
+ + + + + + + + + + + + + + + +
+ Single Patron Cards + +

+ ?batch_id=&template_id=&layout_id=&start_card=">label_single_.pdf +

+
+ Single Patron Cards + +

+ ?template_id=&layout_id=&start_card=">label_single_.pdf +

+
+ Card Batch Number + +

+ &template_id=&layout_id=&start_card=">label_batch_.pdf +

+
+
+
+
+ +
+
+
+ +
+
+ + Exporting patroncard(s). + + Exporting patroncard(s). + + batch(es) to export. + +
+
+
+ + " /> + + " /> + + + " /> + + + " /> + +
+ + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+
+
+
+ + +
+
+
+ +
+ diff --git a/patroncards/print.pl b/patroncards/print.pl new file mode 100755 index 0000000000..31f78d14d9 --- /dev/null +++ b/patroncards/print.pl @@ -0,0 +1,131 @@ +#!/usr/bin/perl +# +# Copyright 2009 Foundations Bible College. +# +# 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., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA + +use strict; +use warnings; + +use CGI; +use autouse 'Data::Dumper' => qw(Dumper); + +use C4::Auth qw(get_template_and_user); +use C4::Output qw(output_html_with_http_headers); +use C4::Creators::Lib 1.000000 qw(get_all_templates get_all_layouts get_output_formats); +use C4::Patroncards::Batch 1.000000; + +my $cgi = new CGI; +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "patroncards/print.tmpl", + query => $cgi, + type => "intranet", + authnotrequired => 0, + flagsrequired => { catalogue => 1 }, + debug => 1, + } +); + +my $op = $cgi->param('op') || 'none'; +my @label_ids = $cgi->param('label_id') if $cgi->param('label_id'); # this will handle individual card printing; we use label_id to maintain consistency with the column names in the creator_batches table +my @batch_ids = $cgi->param('batch_id') if $cgi->param('batch_id'); +my $layout_id = $cgi->param('layout_id') || undef; +my $template_id = $cgi->param('template_id') || undef; +my $start_card = $cgi->param('start_card') || 1; +my @borrower_numbers = $cgi->param('borrower_number') if $cgi->param('borrower_number'); +my $output_format = $cgi->param('output_format') || 'pdf'; +my $referer = $cgi->param('referer') || undef; + +my $layouts = undef; +my $templates = undef; +my $output_formats = undef; +my @batches = (); +my $multi_batch_count = scalar(@batch_ids); +my $card_count = scalar(@label_ids); +my $borrower_count = scalar(@borrower_numbers); + +if ($op eq 'export') { + if (@label_ids) { + my $label_id_param = '&label_id='; + $label_id_param .= join ('&label_id=',@label_ids); + push (@batches, {create_script => ($output_format eq 'pdf' ? 'create-pdf.pl' : 'create-csv.pl'), + batch_id => $batch_ids[0], + template_id => $template_id, + layout_id => $layout_id, + start_card => $start_card, + label_ids => $label_id_param, + card_count => scalar(@label_ids), + }); + $template->param( + batches => \@batches, + referer => $referer, + ); + } + elsif (@borrower_numbers) { + my $borrower_number_param = '&borrower_number='; + $borrower_number_param .= join ('&borrower_number=',@borrower_numbers); + push (@batches, {create_script => ($output_format eq 'pdf' ? 'create-pdf.pl' : 'create-csv.pl'), + template_id => $template_id, + layout_id => $layout_id, + start_card => $start_card, + borrower_numbers => $borrower_number_param, + card_count => scalar(@borrower_numbers), + }); + $template->param( + batches => \@batches, + referer => $referer, + ); + } + elsif (@batch_ids) { + foreach my $batch_id (@batch_ids) { + push (@batches, {create_script => ($output_format eq 'pdf' ? 'create-pdf.pl' : 'create-csv.pl'), + batch_id => $batch_id, + template_id => $template_id, + layout_id => $layout_id, + start_card => $start_card, + }); + } + $template->param( + batches => \@batches, + referer => $referer, + ); + } +} +elsif ($op eq 'none') { + # setup select menus for selecting layout and template for this run... + $referer = $ENV{'HTTP_REFERER'}; + $referer =~ s/^.*?:\/\/.*?(\/.*)$/$1/m; + @batch_ids = grep{$_ = {batch_id => $_}} @batch_ids; + @label_ids = grep{$_ = {label_id => $_}} @label_ids; + @borrower_numbers = grep{$_ = {borrower_number => $_}} @borrower_numbers; + $templates = get_all_templates(field_list => 'template_id, template_code', filter => 'creator = "Patroncards"'); + $layouts = get_all_layouts(field_list => 'layout_id, layout_name', filter => 'creator = "Patroncards"'); + $output_formats = get_output_formats(); + $template->param( + batch_ids => \@batch_ids, + label_ids => \@label_ids, + borrower_numbers => \@borrower_numbers, + templates => $templates, + layouts => $layouts, + output_formats => $output_formats, + multi_batch_count => $multi_batch_count, + card_count => $card_count, + borrower_count => $borrower_count, + referer => $referer, + ); +} +output_html_with_http_headers $cgi, $cookie, $template->output; -- 2.20.1