ffzg/recall_notices.pl: added --interval and --dedup
[koha.git] / patroncards / print.pl
index fcd1dc1..8992038 100755 (executable)
@@ -4,23 +4,22 @@
 #
 # 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 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 3 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.
+# 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.
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
 
-use strict;
-use warnings;
+use Modern::Perl;
 
-use CGI;
+use CGI qw ( -utf8 );
 use autouse 'Data::Dumper' => qw(Dumper);
 
 use C4::Auth qw(get_template_and_user);
@@ -31,7 +30,7 @@ use C4::Patroncards;
 my $cgi = new CGI;
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     {
-        template_name   => "patroncards/print.tmpl",
+        template_name   => "patroncards/print.tt",
         query           => $cgi,
         type            => "intranet",
         authnotrequired => 0,
@@ -41,12 +40,14 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
 );
 
 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 @label_ids = $cgi->multi_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->multi_param('batch_id') if $cgi->param('batch_id');
+my $patronlist_id = $cgi->param('patronlist_id') || undef;
 my $layout_id = $cgi->param('layout_id') || undef;
+my $layout_back_id = $cgi->param('layout_back_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 @borrower_numbers = $cgi->multi_param('borrower_number') if $cgi->param('borrower_number');
 my $output_format = $cgi->param('output_format') || 'pdf';
 my $referer = $cgi->param('referer') || undef;
 
@@ -66,6 +67,7 @@ if ($op eq 'export') {
                          batch_id        => $batch_ids[0],
                          template_id     => $template_id,
                          layout_id       => $layout_id,
+                         layout_back_id  => $layout_back_id,
                          start_card      => $start_card,
                          label_ids       => $label_id_param,
                          card_count      => scalar(@label_ids),
@@ -81,6 +83,7 @@ if ($op eq 'export') {
         push (@batches, {create_script   => ($output_format eq 'pdf' ? 'create-pdf.pl' : 'create-csv.pl'),
                          template_id     => $template_id,
                          layout_id       => $layout_id,
+                         layout_back_id  => $layout_back_id,
                          start_card      => $start_card,
                          borrower_numbers    => $borrower_number_param,
                          card_count      => scalar(@borrower_numbers),
@@ -96,6 +99,7 @@ if ($op eq 'export') {
                             batch_id        => $batch_id,
                             template_id     => $template_id,
                             layout_id       => $layout_id,
+                            layout_back_id  => $layout_back_id,
                             start_card      => $start_card,
                             });
         }
@@ -104,6 +108,16 @@ if ($op eq 'export') {
                         referer     => $referer,
                         );
     }
+    elsif ($patronlist_id ) {
+        $template->param(
+                         patronlist_id   => $patronlist_id,
+                         template_id     => $template_id,
+                         layout_id       => $layout_id,
+                         layout_back_id  => $layout_back_id,
+                         start_card      => $start_card,
+                         referer         => $referer,
+                        );
+    }
 }
 elsif ($op eq 'none') {
     # setup select menus for selecting layout and template for this run...
@@ -112,13 +126,14 @@ elsif ($op eq 'none') {
     @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"');
+    $templates = get_all_templates( { fields => [qw( template_id template_code ) ], filters => { creator => "Patroncards" } });
+    $layouts = get_all_layouts({ fields => [ qw( layout_id layout_name ) ], filters => { creator => "Patroncards" } });
     $output_formats = get_output_formats();
     $template->param(
                     batch_ids                   => \@batch_ids,
                     label_ids                   => \@label_ids,
                     borrower_numbers            => \@borrower_numbers,
+                    patronlist_id               => $patronlist_id,
                     templates                   => $templates,
                     layouts                     => $layouts,
                     output_formats              => $output_formats,