X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=labels%2Flabel-print.pl;h=5cab28486cf116c7fae2c3eddef478e3b1a9cc37;hb=f585e88472151401ef409d08a3a35ea21825400a;hp=32eeb076f3e1f71f54143c5f803405ad7836082f;hpb=51db13b8da9a63f0f08e361f61ed9df36f4e236a;p=koha.git diff --git a/labels/label-print.pl b/labels/label-print.pl index 32eeb076f3..5cab28486c 100755 --- a/labels/label-print.pl +++ b/labels/label-print.pl @@ -3,7 +3,7 @@ # 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 @@ -13,20 +13,20 @@ # 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 +# 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. use strict; use warnings; use CGI; -use HTML::Template::Pro; 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::Creators::Lib 1.000000 qw(get_all_templates get_all_layouts get_output_formats); +use C4::Labels::Batch 1.000000; my $cgi = new CGI; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( @@ -41,43 +41,91 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( ); my $op = $cgi->param('op') || 'none'; -my @select_labels = $cgi->param('label_id') if $cgi->param('label_id'); # this will handle individual label printing +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 $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 $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') { - 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, + 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, + ); } - $template->param( - batches => \@batches, - ); } 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; - $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(); + @label_ids = grep{$_ = {label_id => $_}} @label_ids; + @item_numbers = grep{$_ = {item_number => $_}} @item_numbers; + $templates = get_all_templates(field_list => 'template_id, template_code', filter => 'creator = "Labels"'); + $layouts = get_all_layouts(field_list => 'layout_id, layout_name', filter => 'creator = "Labels"'); + $output_formats = get_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, + output_formats => $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;