Bug 9656: Make logging to a file optional (for fines)

To test:
1/ Before the patch run misc/cronjobs/fines.pl
   Notice that a file has been written to /tmp

2/ rm the file

3/ Apply the patch and run the script again
   Notice the file is not created

4/ run the script with -l
   Notice the file is created again

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>

Comment: Now it work as described. No errors.
Signed-off-by: Elliott Davis <elliott@bywatersolions.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
This commit is contained in:
Chris Cormack 2013-02-21 22:10:48 +13:00 committed by Chris Cormack
parent 555a9e02f4
commit 3db006c3b9
1 changed files with 29 additions and 14 deletions

View File

@ -42,10 +42,12 @@ use Koha::DateUtils;
my $help;
my $verbose;
my $output_dir;
my $log;
GetOptions(
'h|help' => \$help,
'v|verbose' => \$verbose,
'l|log' => \$log,
'o|out:s' => \$output_dir,
);
my $usage = << 'ENDUSAGE';
@ -58,6 +60,7 @@ calculated but not applied.
This script has the following parameters :
-h --help: this message
-l --log: log the output to a file
-o --out: ouput directory for logs (defaults to env or /tmp if !exist)
-v --verbose
@ -81,11 +84,13 @@ my %is_holiday;
my $today = DateTime->now( time_zone => C4::Context->tz() );
my $filename = get_filename($output_dir);
open my $fh, '>>', $filename or croak "Cannot write file $filename: $!";
print {$fh} join $delim, ( @borrower_fields, @item_fields, @other_fields );
print {$fh} "\n";
my $counted = 0;
my $fh;
if ($log) {
open $fh, '>>', $filename or croak "Cannot write file $filename: $!";
print {$fh} join $delim, ( @borrower_fields, @item_fields, @other_fields );
print {$fh} "\n";
}
my $counted = 0;
my $overdues = Getoverdues();
for my $overdue ( @{$overdues} ) {
if ( !defined $overdue->{borrowernumber} ) {
@ -126,19 +131,29 @@ for my $overdue ( @{$overdues} ) {
);
}
}
my @cells;
push @cells,
map { defined $borrower->{$_} ? $borrower->{$_} : q{} } @borrower_fields;
push @cells, map { $overdue->{$_} } @item_fields;
push @cells, $type, $unitcounttotal, $amount;
say {$fh} join $delim, @cells;
if ($log) {
my @cells;
push @cells,
map { defined $borrower->{$_} ? $borrower->{$_} : q{} }
@borrower_fields;
push @cells, map { $overdue->{$_} } @item_fields;
push @cells, $type, $unitcounttotal, $amount;
say {$fh} join $delim, @cells;
}
}
if ($log){
close $fh;
}
close $fh;
if ($verbose) {
my $overdue_items = @{$overdues};
print <<"EOM";
Fines assessment -- $today -- Saved to $filename
Fines assessment -- $today
EOM
if ($log) {
say "Saved to $filename";
}
print <<"EOM";
Number of Overdue Items:
counted $overdue_items
reported $counted
@ -165,7 +180,7 @@ sub get_filename {
$name =~ s/\W//;
$name .= join q{}, q{_}, $today->ymd(), '.log';
$name = File::Spec->catfile( $directory, $name );
if ($verbose) {
if ($verbose && $log) {
say "writing to $name";
}
return $name;