X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=misc%2Fcronjobs%2Fgather_print_notices.pl;h=286b035372a931ef3dca4a602464d0f76ad1fb2a;hb=92782d38328e712ddde5c7f879473c6cb46aaef3;hp=a72d6a61be16e0d103d8f931b2e80ea1de053f98;hpb=aef1dd15fbe37a8a9c30ba4b38f7ecd6c1fea54d;p=koha_fer diff --git a/misc/cronjobs/gather_print_notices.pl b/misc/cronjobs/gather_print_notices.pl index a72d6a61be..286b035372 100755 --- a/misc/cronjobs/gather_print_notices.pl +++ b/misc/cronjobs/gather_print_notices.pl @@ -21,14 +21,14 @@ use strict; use warnings; BEGIN { - # find Koha's Perl modules # test carefully before changing this use FindBin; eval { require "$FindBin::Bin/../kohalib.pl" }; } -use CGI; # NOT a CGI script, this is just to keep C4::Templates::gettemplate happy +use + CGI; # NOT a CGI script, this is just to keep C4::Templates::gettemplate happy use C4::Context; use C4::Dates; use C4::Debug; @@ -39,54 +39,92 @@ use Getopt::Long; sub usage { print STDERR < \$stylesheet, - 'h|help' => \$help, -) || usage( 1 ); + 'h|help' => \$help, + 's|split' => \$split, +) || usage(1); -usage( 0 ) if ( $help ); +usage(0) if ($help); my $output_directory = $ARGV[0]; if ( !$output_directory || !-d $output_directory ) { - print STDERR "Error: You must specify a valid directory to dump the print notices in.\n"; - usage( 1 ); + print STDERR +"Error: You must specify a valid directory to dump the print notices in.\n"; + usage(1); } -my $today = C4::Dates->new(); -my @messages = @{ GetPrintMessages() }; -exit unless( @messages ); +my $today = C4::Dates->new(); +my @all_messages = @{ GetPrintMessages() }; +exit unless (@all_messages); + +my $OUTPUT; + +if ($split) { + my %messages_by_branch; + foreach my $message (@all_messages) { + push( @{ $messages_by_branch{ $message->{'branchcode'} } }, $message ); + } + + foreach my $branchcode ( keys %messages_by_branch ) { + my @messages = @{ $messages_by_branch{$branchcode} }; + open $OUTPUT, '>', + File::Spec->catdir( $output_directory, + "holdnotices-" . $today->output('iso') . "-$branchcode.html" ); -open OUTPUT, '>', File::Spec->catdir( $output_directory, "holdnotices-" . $today->output( 'iso' ) . ".html" ); + my $template = + C4::Templates::gettemplate( 'batch/print-notices.tmpl', 'intranet', + new CGI ); -my $template = C4::Templates::gettemplate( 'batch/print-notices.tmpl', 'intranet', new CGI ); -my $stylesheet_contents = ''; + $template->param( + stylesheet => C4::Context->preference("NoticeCSS"), + today => $today->output(), + messages => \@messages, + ); -if ($stylesheet) { - open STYLESHEET, '<', $stylesheet; - while ( ) { $stylesheet_contents .= $_ } - close STYLESHEET; + print $OUTPUT $template->output; + + foreach my $message (@messages) { + C4::Letters::_set_message_status( + { message_id => $message->{'message_id'}, status => 'sent' } ); + } + + close $OUTPUT; + } } +else { + open $OUTPUT, '>', + File::Spec->catdir( $output_directory, + "holdnotices-" . $today->output('iso') . ".html" ); + + my $template = + C4::Templates::gettemplate( 'batch/print-notices.tmpl', 'intranet', + new CGI ); + + $template->param( + stylesheet => C4::Context->preference("NoticeCSS"), + today => $today->output(), + messages => \@all_messages, + ); + + print $OUTPUT $template->output; -$template->param( - stylesheet => $stylesheet_contents, - today => $today->output(), - messages => \@messages, -); + foreach my $message (@all_messages) { + C4::Letters::_set_message_status( + { message_id => $message->{'message_id'}, status => 'sent' } ); + } -print OUTPUT $template->output; + close $OUTPUT; -foreach my $message ( @messages ) { - C4::Letters::_set_message_status( { message_id => $message->{'message_id'}, status => 'sent' } ); }