X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDN.pm;h=72154c24fa08745304161ab98887afc44f81fbab;hb=f4f55336d3a96ab42f7874f90304e078a6201ff3;hp=a325766cd1a4f3a2012aae55c7ab0c38f896016b;hpb=8e08bedb4b4bfb97adcb4f4eb94a60012ca3729b;p=kivitendo-erp.git diff --git a/SL/DN.pm b/SL/DN.pm index a325766cd..72154c24f 100644 --- a/SL/DN.pm +++ b/SL/DN.pm @@ -41,6 +41,8 @@ use SL::Mailer; use SL::MoreCommon; use SL::Template; +use strict; + sub get_config { $main::lxdebug->enter_sub(); @@ -361,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}; @@ -467,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, @@ -598,6 +601,11 @@ sub get_dunning { push(@values, $form->{dunningto}); } + if ($form->{salesman_id}) { + $where .= qq| AND a.salesman_id = ?|; + push(@values, conv_i($form->{salesman_id})); + } + my %sort_columns = ( 'dunning_description' => [ qw(dn.dunning_description customername invnumber) ], 'customername' => [ qw(customername invnumber) ], @@ -606,6 +614,7 @@ sub get_dunning { 'duedate' => [ qw(a.duedate a.invnumber) ], 'dunning_date' => [ qw(dunning_date a.invnumber) ], 'dunning_duedate' => [ qw(dunning_duedate a.invnumber) ], + 'salesman' => [ qw(salesman) ], ); my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC'; @@ -616,9 +625,11 @@ sub get_dunning { qq|SELECT a.id, a.ordnumber, a.invoice, a.transdate, a.invnumber, a.amount, ct.name AS customername, ct.id AS customer_id, a.duedate, da.fee, da.interest, dn.dunning_description, da.transdate AS dunning_date, - da.duedate AS dunning_duedate, da.dunning_id, da.dunning_config_id + da.duedate AS dunning_duedate, da.dunning_id, da.dunning_config_id, + e2.name AS salesman FROM ar a - JOIN customer ct ON (a.customer_id = ct.id), dunning da + JOIN customer ct ON (a.customer_id = ct.id) + LEFT JOIN employee e2 ON (a.salesman_id = e2.id), dunning da LEFT JOIN dunning_config dn ON (da.dunning_config_id = dn.id) $where ORDER BY $sortorder|; @@ -652,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} };