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;
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' } );
}