@@ -, +, @@ OrderPdfFormat system preference OrderPdfFormat system preference --- {acqui => Koha}/pdfformat/layout2pages.pm | 3 +-- {acqui => Koha}/pdfformat/layout2pagesde.pm | 3 +-- {acqui => Koha}/pdfformat/layout3pages.pm | 3 +-- {acqui => Koha}/pdfformat/layout3pagesfr.pm | 2 +- acqui/basketgroup.pl | 31 ++++++++++++++--------------- 5 files changed, 19 insertions(+), 23 deletions(-) rename {acqui => Koha}/pdfformat/layout2pages.pm (99%) rename {acqui => Koha}/pdfformat/layout2pagesde.pm (99%) rename {acqui => Koha}/pdfformat/layout3pages.pm (99%) rename {acqui => Koha}/pdfformat/layout3pagesfr.pm (99%) --- a/acqui/pdfformat/layout2pages.pm +++ a/acqui/pdfformat/layout2pages.pm @@ -1,4 +1,4 @@ -#!/usr/bin/perl +package Koha::pdfformat::layout2pages; #example script to print a basketgroup #written 07/11/08 by john.soros@biblibre.com and paul.poulain@biblibre.com @@ -21,7 +21,6 @@ # along with Koha; if not, see . #you can use any PDF::API2 module, all you need to do is return the stringifyed pdf object from the printpdf sub. -package pdfformat::layout2pages; use vars qw(@ISA @EXPORT); use MIME::Base64; use Modern::Perl; --- a/acqui/pdfformat/layout2pagesde.pm +++ a/acqui/pdfformat/layout2pagesde.pm @@ -1,4 +1,4 @@ -#!/usr/bin/perl +package Koha::pdfformat::layout2pagesde; #example script to print a basketgroup #written 07/11/08 by john.soros@biblibre.com and paul.poulain@biblibre.com @@ -21,7 +21,6 @@ # along with Koha; if not, see . #you can use any PDF::API2 module, all you need to do is return the stringifyed pdf object from the printpdf sub. -package pdfformat::layout2pagesde; use vars qw(@ISA @EXPORT); use MIME::Base64; use Modern::Perl; --- a/acqui/pdfformat/layout3pages.pm +++ a/acqui/pdfformat/layout3pages.pm @@ -1,4 +1,4 @@ -#!/usr/bin/perl +package Koha::pdfformat::layout3pages; #example script to print a basketgroup #written 07/11/08 by john.soros@biblibre.com and paul.poulain@biblibre.com @@ -21,7 +21,6 @@ # along with Koha; if not, see . #you can use any PDF::API2 module, all you need to do is return the stringifyed pdf object from the printpdf sub. -package pdfformat::layout3pages; use vars qw(@ISA @EXPORT); use MIME::Base64; use List::MoreUtils qw/uniq/; --- a/acqui/pdfformat/layout3pagesfr.pm +++ a/acqui/pdfformat/layout3pagesfr.pm @@ -1,4 +1,4 @@ -#!/usr/bin/perl +package Koha::pdfformat::layout3pagesfr; #example script to print a basketgroup #written 07/11/08 by john.soros@biblibre.com and paul.poulain@biblibre.com --- a/acqui/basketgroup.pl +++ a/acqui/basketgroup.pl @@ -49,6 +49,7 @@ use Carp; use C4::Auth; use C4::Output; use CGI qw ( -utf8 ); +use File::Spec; use C4::Acquisition qw/CloseBasketgroup ReOpenBasketgroup GetOrders GetBasketsByBasketgroup GetBasketsByBookseller ModBasketgroup NewBasketgroup DelBasketgroup GetBasketgroups ModBasket GetBasketgroup GetBasket GetBasketGroupAsCSV/; use Koha::EDI qw/create_edi_order get_edifact_ean/; @@ -123,29 +124,27 @@ sub displaybasketgroups { sub printbasketgrouppdf{ my ($basketgroupid) = @_; - + my $pdfformat = C4::Context->preference("OrderPdfFormat"); - if ($pdfformat eq 'pdfformat::layout3pages' || $pdfformat eq 'pdfformat::layout2pages' || $pdfformat eq 'pdfformat::layout3pagesfr' - || $pdfformat eq 'pdfformat::layout2pagesde'){ - eval { - eval "require $pdfformat"; - import $pdfformat; - }; - if ($@){ - } + my @valid_pdfformats = qw(pdfformat::layout3pages pdfformat::layout2pages pdfformat::layout3pagesfr pdfformat::layout2pagesde); + if (grep {$_ eq $pdfformat} @valid_pdfformats) { + $pdfformat = "Koha::$pdfformat"; + my $pdfformat_filepath = File::Spec->catfile(split /::/, $pdfformat) . '.pm'; + require $pdfformat_filepath; + import $pdfformat; } else { - print $input->header; - print $input->start_html; # FIXME Should do a nicer page - print "

Invalid PDF Format set

"; - print "Please go to the systempreferences and set a valid pdfformat"; - exit; + print $input->header; + print $input->start_html; # FIXME Should do a nicer page + print "

Invalid PDF Format set

"; + print "Please go to the systempreferences and set a valid pdfformat"; + exit; } - + my $basketgroup = GetBasketgroup($basketgroupid); my $bookseller = Koha::Acquisition::Booksellers->find( $basketgroup->{booksellerid} ); my $baskets = GetBasketsByBasketgroup($basketgroupid); - + my %orders; for my $basket (@$baskets) { my @ba_orders; --