X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=labels%2Flabel-create-csv.pl;h=1b0c02c97a3f493dab09624448cb12566b41bb08;hb=fb8e159daad8556832d45c9581e32b76aee02e1c;hp=be29afa5a508f765c4df4e6fa64e24b4fd0ec1a0;hpb=51db13b8da9a63f0f08e361f61ed9df36f4e236a;p=koha_fer diff --git a/labels/label-create-csv.pl b/labels/label-create-csv.pl index be29afa5a5..1b0c02c97a 100755 --- a/labels/label-create-csv.pl +++ b/labels/label-create-csv.pl @@ -1,55 +1,123 @@ #!/usr/bin/perl +# Copyright Koha development team 2011 +# +# 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 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., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA +# + use strict; +use warnings; + use CGI; -use C4::Labels; -use C4::Auth; -use C4::Output; -use C4::Context; -use C4::Biblio; use Text::CSV_XS; +use Data::Dumper; + +use C4::Debug; +use C4::Creators; +use C4::Labels; -my $DEBUG = 0; -my $DEBUG_LPT = 0; +my $cgi = new CGI; -my $htdocs_path = C4::Context->config('intrahtdocs'); -my $cgi = new CGI; +my $batch_id; +my @label_ids; +my @item_numbers; +$batch_id = $cgi->param('batch_id') if $cgi->param('batch_id'); +my $template_id = $cgi->param('template_id') || undef; +my $layout_id = $cgi->param('layout_id') || undef; +@label_ids = $cgi->param('label_id') if $cgi->param('label_id'); +@item_numbers = $cgi->param('item_number') if $cgi->param('item_number'); +my $items = undef; -# get the printing settings -my $template = GetActiveLabelTemplate(); -my $conf_data = get_label_options(); +my $csv_file = (@label_ids || @item_numbers ? "label_single_" . scalar(@label_ids || @item_numbers) : "label_batch_$batch_id"); +print $cgi->header(-type => 'application/vnd.sun.xml.calc', + -encoding => 'utf-8', + -attachment => "$csv_file.csv", + ); -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 = C4::Labels::Batch->retrieve(batch_id => $batch_id); +my $template = C4::Labels::Template->retrieve(template_id => $template_id, profile_id => 1); +my $layout = C4::Labels::Layout->retrieve(layout_id => $layout_id); -my $batch_type = $conf_data->{'type'}; -my $barcodetype = $conf_data->{'barcodetype'}; -my $printingtype = $conf_data->{'printingtype'}; -my @resultsloop = GetLabelItems($batch_id); +if (@label_ids) { + my $batch_items = $batch->get_attr('items'); + grep { + my $label_id = $_; + push(@{$items}, grep{$_->{'label_id'} == $label_id;} @{$batch_items}); + } @label_ids; +} +elsif (@item_numbers) { + grep { + push(@{$items}, {item_number => $_}); + } @item_numbers; +} +else { + $items = $batch->get_attr('items'); +} + 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 = map { C4::Labels::GetBarcodeData($_->{'code'},$item,$record) } @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 +foreach my $item (@$items) { + my $label = C4::Labels::Label->new( + batch_id => $batch_id, + item_number => $item->{'item_number'}, + format_string => $layout->get_attr('format_string'), + ); + my $csv_fields = $label->csv_data(); + if ($csv->combine(@$csv_fields)) { + print $csv->string() . "\n"; + } + else { + warn sprintf('Text::CSV_XS->combine() returned the following error: %s', $csv->error_input); + } +} + +__END__ + +=head1 NAME + +labels/label-create-csv.pl - A script for creating a csv export of labels and label batches in Koha + +=head1 ABSTRACT + +This script provides the means of producing a csv of labels for items either individually, in groups, or in batches from within Koha. + +=head1 AUTHOR + +Chris Nighswonger + +=head1 COPYRIGHT + +Copyright 2009 Foundations Bible College. + +=head1 LICENSE + +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. -exit(1); -# is that the right way to do this ? +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. +=head1 DISCLAIMER OF WARRANTY +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. +=cut