From a4b1bf3e649358583446a279ca0afe438c771c99 Mon Sep 17 00:00:00 2001 From: Chris Nighswonger Date: Tue, 3 Nov 2009 09:17:46 -0500 Subject: [PATCH] [14/30] Patron Card Creator card printing interface and code More cut and paste --- .../en/modules/patroncards/card-print.tmpl | 165 ++++++++++++++++++ patroncards/card-print.pl | 131 ++++++++++++++ 2 files changed, 296 insertions(+) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/card-print.tmpl create mode 100755 patroncards/card-print.pl diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/card-print.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/card-print.tmpl new file mode 100644 index 0000000000..85eea0b826 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/card-print.tmpl @@ -0,0 +1,165 @@ + + Koha › Tools › Labels › Label Printing/Exporting + + + + + + +
+
+ +
+
+
+ Click on the following link(s) to download the exported batch(es). +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+ Single Labels + +

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

+
+

+ &template_id=&layout_id=">label_single_.csv +

+
+

+ &template_id=&layout_id=">label_single_.xml +

+
+ Single Labels + +

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

+
+

+ &template_id=&layout_id=">label_single_.csv +

+
+

+ &template_id=&layout_id=">label_single_.xml +

+
+ Label Batch Number + +

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

+
+

+ &template_id=&layout_id=">label_batch_.csv +

+
+

+ &template_id=&layout_id=">label_batch_.xml +

+
+
+
+
+ +
+
+
+ +
+
+ + Exporting label(s). + + Exporting label(s). + + batch(es) to export. + +
+
+
+ + " /> + + " /> + + + " /> + + + " /> + +
+ + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+
+
+
+ + +
+
+
+ +
+ diff --git a/patroncards/card-print.pl b/patroncards/card-print.pl new file mode 100755 index 0000000000..26c0cd18b0 --- /dev/null +++ b/patroncards/card-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 Data::Dumper; + +use C4::Auth qw(get_template_and_user); +use C4::Output qw(output_html_with_http_headers); +use C4::Labels::Lib 1.000000 qw(get_all_templates get_all_layouts get_label_output_formats); +use C4::Labels::Batch 1.000000; + +my $cgi = new CGI; +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "patroncards/card-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 label printing +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_label = $cgi->param('start_label') || 1; +my @item_numbers = $cgi->param('item_number') if $cgi->param('item_number'); +my $output_format = $cgi->param('output_format') || 'pdf'; +my $referer = $cgi->param('referer') || undef; + +my $layouts = undef; +my $templates = undef; +my $label_output_formats = undef; +my @batches = (); +my $multi_batch_count = scalar(@batch_ids); +my $label_count = scalar(@label_ids); +my $item_count = scalar(@item_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' ? 'label-create-pdf.pl' : 'label-create-csv.pl'), + batch_id => $batch_ids[0], + template_id => $template_id, + layout_id => $layout_id, + start_label => $start_label, + label_ids => $label_id_param, + label_count => scalar(@label_ids), + }); + $template->param( + batches => \@batches, + referer => $referer, + ); + } + elsif (@item_numbers) { + my $item_number_param = '&item_number='; + $item_number_param .= join ('&item_number=',@item_numbers); + push (@batches, {create_script => ($output_format eq 'pdf' ? 'label-create-pdf.pl' : 'label-create-csv.pl'), + template_id => $template_id, + layout_id => $layout_id, + start_label => $start_label, + item_numbers => $item_number_param, + label_count => scalar(@item_numbers), + }); + $template->param( + batches => \@batches, + referer => $referer, + ); + } + elsif (@batch_ids) { + foreach my $batch_id (@batch_ids) { + push (@batches, {create_script => ($output_format eq 'pdf' ? 'label-create-pdf.pl' : 'label-create-csv.pl'), + batch_id => $batch_id, + template_id => $template_id, + layout_id => $layout_id, + start_label => $start_label, + }); + } + $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; + @item_numbers = grep{$_ = {item_number => $_}} @item_numbers; + $templates = get_all_templates(field_list => 'template_id, template_code'); + $layouts = get_all_layouts(field_list => 'layout_id, layout_name'); + $label_output_formats = get_label_output_formats(); + $template->param( + batch_ids => \@batch_ids, + label_ids => \@label_ids, + item_numbers => \@item_numbers, + templates => $templates, + layouts => $layouts, + label_output_formats => $label_output_formats, + multi_batch_count => $multi_batch_count, + label_count => $label_count, + item_count => $item_count, + referer => $referer, + ); +} +output_html_with_http_headers $cgi, $cookie, $template->output; -- 2.39.5