@@ -, +, @@ - an error on reading the discharges directory - the parameter sent to CancelReserves (API has been changed) - the parameters sent to output_pref (API has been changed) --- C4/Discharges.pm | 22 ++++++++++++++-------- members/discharge.pl | 6 +++--- 2 files changed, 17 insertions(+), 11 deletions(-) --- a/C4/Discharges.pm +++ a/C4/Discharges.pm @@ -62,16 +62,22 @@ sub GetDischarges { my $dischargePath = C4::Context->preference('dischargePath'); my $dischargeWebPath = C4::Context->preference('dischargeWebPath'); - my @return; - - my $pdf_path = qq{$dischargePath/$borrowernumber/*.pdf}; - my @files = <$pdf_path>; - foreach (@files) { - my ($file, $dir, $ext) = fileparse("$_"); - push @return, $file; + my @discharges; + + my $discharges_dir = qq{$dischargePath/$borrowernumber}; + opendir my $dh, $discharges_dir + or warn qq{Error: Can't open dir $discharges_dir} + and return (); + + for my $file ( readdir $dh ) { + next unless $file =~ /\.pdf$/; + my $filepath = qq{$discharges_dir/$file}; + my ($file, $dir, $ext) = fileparse( $filepath ); + push @discharges, $file; } + closedir $dh; - return @return; + return @discharges; } =head2 removeUnprocessedDischarges($borrowernumber) --- a/members/discharge.pl +++ a/members/discharge.pl @@ -71,8 +71,8 @@ if ( $input->param('borrowernumber') ) { # Generating discharge if needed if ($input->param('generatedischarge')) { # If borrower has pending reserves, we cancel them - foreach (@reserves) { - CancelReserve($_->{'reservenumber'}); + for my $reserve (@reserves) { + CancelReserve({ reserve_id => $reserve->{reserve_id} }); } $hasreserves = 0; @@ -118,7 +118,7 @@ if ( $input->param('borrowernumber') ) { # Error handling: # Check if we really got our discharge as a pdf file - my $todayiso = output_pref(dt_from_string(), 'iso', 1); + my $todayiso = output_pref(dt_from_string(), 'iso', 0, 1); # If we don't, then unless (-e "$dischargePath/$borrowernumber/discharge-$todayiso.pdf") { # Show an error message to the librarian --