X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=labels%2Flabel-print.pl;h=f3dd120f18ce421dcd9809d00422f3402d437621;hb=9d6d641d1f8b77271800f43bc027b651f9aea52b;hp=e8a42fa20628542011b8cb354cbae6538be70ae8;hpb=165c56de29b259c0607d5e3000045ae5fe481af0;p=srvgit diff --git a/labels/label-print.pl b/labels/label-print.pl index e8a42fa206..f3dd120f18 100755 --- a/labels/label-print.pl +++ b/labels/label-print.pl @@ -20,22 +20,24 @@ use Modern::Perl; use CGI qw ( -utf8 ); -use Data::Dumper; -use C4::Auth qw(get_template_and_user); -use C4::Output qw(output_html_with_http_headers); -use C4::Creators::Lib qw(get_all_templates get_all_layouts get_output_formats); +use C4::Context; +use C4::Auth qw( get_template_and_user ); +use C4::Output qw( output_html_with_http_headers ); +use C4::Creators::Lib qw( + get_all_layouts + get_all_templates + get_output_formats +); use C4::Labels::Batch; -my $cgi = new CGI; +my $cgi = CGI->new; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { template_name => "labels/label-print.tt", query => $cgi, type => "intranet", - authnotrequired => 0, flagsrequired => { catalogue => 1 }, - debug => 1, } ); @@ -52,11 +54,17 @@ my @item_numbers; my $output_format = $cgi->param('output_format') || 'pdf'; my $referer = $cgi->param('referer') || undef; +my $txt_from = $cgi->param('from') || undef; +my $txt_to = $cgi->param('to') || undef; +my $from = int($txt_from) || undef; +my $to = int($txt_to) || undef; +my $barcode_length = length($txt_from) || undef; + my $layouts = undef; my $templates = undef; my $output_formats = undef; my @batches = (); -my $multi_batch_count = scalar(@batch_ids); +my $multi_batch_count = scalar(@batch_ids) || ($from && $to) ? 1 : 0; my $label_count = scalar(@label_ids); my $item_count = scalar(@item_numbers); @@ -106,6 +114,32 @@ if ($op eq 'export') { referer => $referer, ); } + elsif ($from and $to) { + my $dbh = C4::Context->dbh; + + my $sth = $dbh->prepare('SELECT COUNT(*) AS has_barcode FROM creator_layouts WHERE printing_type LIKE("%BAR%") AND layout_id = ?;'); + $sth->execute($layout_id); + if ($sth->fetchrow_hashref->{'has_barcode'} == 0) { + $sth = $dbh->prepare('SELECT COUNT(*) AS existing_count FROM items WHERE CAST(barcode AS unsigned) BETWEEN ? AND ?;'); + $sth->execute($from, $to); + if ($sth->fetchrow_hashref->{'existing_count'} < ($to - $from + 1)) { + $template->param( warn_empty_range => 1 ) + } + } + + push (@batches, {create_script => 'label-create-pdf.pl', + from => $from, + to => $to, + barcode_length => $barcode_length, + 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... @@ -128,6 +162,11 @@ elsif ($op eq 'none') { label_count => $label_count, item_count => $item_count, referer => $referer, + from => $from, + to => $to, + barcode_length => $barcode_length, + txt_from => $txt_from, + txt_to => $txt_to ); } output_html_with_http_headers $cgi, $cookie, $template->output;