RDBO Normalisierung Part 2
[kivitendo-erp.git] / SL / DN.pm
index 0e378d6..72154c2 100644 (file)
--- a/SL/DN.pm
+++ b/SL/DN.pm
@@ -363,7 +363,7 @@ sub send_email {
     return;
   }
 
-  my $template     = PlainTextTemplate->new(undef, $form, $myconfig);
+  my $template     = SL::Template::create(type => 'PlainText', form => $form, myconfig => $myconfig);
   my $mail         = Mailer->new();
   $mail->{from}    = $myconfig->{email};
   $mail->{to}      = $ref->{recipient};
@@ -469,6 +469,7 @@ sub get_invoices {
     qq|SELECT
          a.id, a.ordnumber, a.transdate, a.invnumber, a.amount,
          ct.name AS customername, a.customer_id, a.duedate,
+         a.amount - a.paid AS open_amount,
 
          cfg.dunning_description, cfg.dunning_level,
 
@@ -662,29 +663,26 @@ sub melt_pdfs {
   my $in = IO::File->new("gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=- $inputfiles |");
   $form->error($main::locale->text('Could not spawn ghostscript.')) unless $in;
 
-  my $out;
-
   if ($form->{media} eq 'printer') {
     $form->get_printer_code($myconfig);
+    my $out;
     if ($form->{printer_command}) {
       $out = IO::File->new("| $form->{printer_command}");
     }
 
+    $::locale->with_raw_io($out, sub { $out->print($_) while <$in> });
+
     $form->error($main::locale->text('Could not spawn the printer command.')) unless $out;
 
   } else {
     my $dunning_filename = $form->get_formname_translation('dunning');
-    $out = IO::File->new('>-');
-    $out->print(qq|Content-Type: Application/PDF\n| .
-                qq|Content-Disposition: attachment; filename="${dunning_filename}_${dunning_id}.pdf"\n\n|);
-  }
+    print qq|Content-Type: Application/PDF\n| .
+          qq|Content-Disposition: attachment; filename="${dunning_filename}_${dunning_id}.pdf"\n\n|;
 
-  while (my $line = <$in>) {
-    $out->print($line);
+    $::locale->with_raw_io(\*STDOUT, sub { print while <$in> });
   }
 
   $in->close();
-  $out->close();
 
   map { unlink("${main::spool}/$_") } @{ $form->{DUNNING_PDFS} };