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=165b16ef99a3c79271d6c8e8fec0a853b015a0bb;hpb=a9ded4fa008668df8c485fbbc76efa3cc9cc00d7;p=koha_fer diff --git a/misc/cronjobs/gather_print_notices.pl b/misc/cronjobs/gather_print_notices.pl index 165b16ef99..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; @@ -42,41 +42,89 @@ sub usage { Usage: $0 OUTPUT_DIRECTORY Will print all waiting print notices to OUTPUT_DIRECTORY/notices-CURRENT_DATE.html . + + -s --split Split messages into separate file by borrower home library to OUTPUT_DIRECTORY/notices-CURRENT_DATE-BRANCHCODE.html USAGE exit $_[0]; } -my ( $stylesheet, $help ); +my ( $stylesheet, $help, $split ); GetOptions( - '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 @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" ); + + my $template = + C4::Templates::gettemplate( 'batch/print-notices.tmpl', 'intranet', + new CGI ); + + $template->param( + stylesheet => C4::Context->preference("NoticeCSS"), + today => $today->output(), + messages => \@messages, + ); + + 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 $today = C4::Dates->new(); -my @messages = @{ GetPrintMessages() }; -exit unless( @messages ); + my $template = + C4::Templates::gettemplate( 'batch/print-notices.tmpl', 'intranet', + new CGI ); -open OUTPUT, '>', File::Spec->catdir( $output_directory, "holdnotices-" . $today->output( 'iso' ) . ".html" ); + $template->param( + stylesheet => C4::Context->preference("NoticeCSS"), + today => $today->output(), + messages => \@all_messages, + ); -my $template = C4::Templates::gettemplate( 'batch/print-notices.tmpl', 'intranet', new CGI ); + print $OUTPUT $template->output; -$template->param( - stylesheet => C4::Context->preference("NoticeCSS"), - 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' } ); }