ffzg/recall_notices.pl: added --interval and --dedup
[koha.git] / patroncards / print.pl
index 6ba5226..8992038 100755 (executable)
@@ -17,8 +17,7 @@
 # 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 qw ( -utf8 );
 use autouse 'Data::Dumper' => qw(Dumper);
@@ -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,