#!/usr/bin/perl use strict; use CGI; use C4::Labels; use C4::Auth; use C4::Output; use C4::Context; use C4::Biblio; use Text::CSV_XS; my $DEBUG = 0; my $DEBUG_LPT = 0; my $htdocs_path = C4::Context->config('intrahtdocs'); my $cgi = new CGI; # get the printing settings my $template = GetActiveLabelTemplate(); my $conf_data = get_label_options(); my $batch_id = $cgi->param('batch_id'); my $exportname = 'koha_label_' . $batch_id . '.csv'; print $cgi->header(-type => 'application/vnd.sun.xml.calc', -encoding => 'utf-8', -attachment => $exportname, -filename => $exportname ); my $batch_type = $conf_data->{'type'}; my $barcodetype = $conf_data->{'barcodetype'}; my $printingtype = $conf_data->{'printingtype'}; my @resultsloop = GetLabelItems($batch_id); my $csv = Text::CSV_XS->new(); my @str_fields = get_text_fields($conf_data->{'id'}, 'codes' ); for my $item (@resultsloop) { my $record = GetMarcBiblio($item->{biblionumber}); my @datafields = ($conf_data->{'formatstring'}) ? map { C4::Labels::GetBarcodeData($_->{'code'},$item,$record) } @str_fields : map { $_->{'code'} } @str_fields ; my $csvout ; if($csv->combine(@datafields)) { $csvout = $csv->string(); print "$csvout\n"; } else { warn "CSV ERROR: " . $csv->error_input; } } # end for item loop exit(1); # is that the right way to do this ?