X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/a386ea48944a5fff408862f5c6622ddfd5cde736..a0392369b75efa2fa8958f5cf2519272c960040d:/bin/mozilla/dn.pl diff --git a/bin/mozilla/dn.pl b/bin/mozilla/dn.pl index 1ac780f58..93e57d02e 100644 --- a/bin/mozilla/dn.pl +++ b/bin/mozilla/dn.pl @@ -34,6 +34,7 @@ use POSIX qw(strftime); +use List::Util qw(notall); use List::MoreUtils qw(none); use SL::IS; @@ -210,6 +211,7 @@ sub save_dunning { my $active=1; my @rows = (); + my @status; undef($form->{DUNNING_PDFS}); my $saved_language_id = $form->{language_id}; @@ -242,7 +244,10 @@ sub save_dunning { if (!$form->{force_lang}) { $form->{language_id} = @{$level}[0]->{language_id}; } - DN->save_dunning(\%myconfig, $form, $level); + my $rc = DN->save_dunning(\%myconfig, $form, $level); + $rc->{error} =~ s{\n}{
}g if $rc->{error}; + push @status, { invnumbers => [map { $form->{'invnumber_' . $_->{row}} } @$level], + map { ( $_ => $rc->{$_} ) } qw(error dunning_id print_original_invoice send_email), }; } } @@ -260,15 +265,27 @@ sub save_dunning { if (!$form->{force_lang}) { $form->{language_id} = @{$level}[0]->{language_id}; } - DN->save_dunning(\%myconfig, $form, $level); + my $rc = DN->save_dunning(\%myconfig, $form, $level); + $rc->{error} =~ s{\n}{
}g if $rc->{error}; + push @status, { invnumbers => [map { $form->{'invnumber_' . $_->{row}} } @$level], + map { ( $_ => $rc->{$_} ) } qw(error dunning_id print_original_invoice send_email), }; } } $form->{language_id} = $saved_language_id; - if (scalar @{ $form->{DUNNING_PDFS} }) { + my $pdf_filename; + my $pdf_content; + if ($form->{DUNNING_PDFS} && scalar @{ $form->{DUNNING_PDFS} }) { $form->{dunning_id} = strftime("%Y%m%d", localtime time) if scalar @{ $form->{DUNNING_PDFS}} > 1; - DN->melt_pdfs(\%myconfig, $form, $form->{copies}); + ($pdf_filename, $pdf_content) = DN->melt_pdfs(\%myconfig, $form, $form->{copies}, return_content => $form->{media} ne 'printer'); + + flash('info', t8('Dunning Process started for selected invoices!')); + if ($form->{media} eq 'printer') { + flash('info', t8('The PDF has been printed')); + } else { + flash('info', t8('The PDF has been created')); + } } # saving the history @@ -279,10 +296,13 @@ sub save_dunning { } # /saving the history - if ($form->{media} eq 'printer') { - delete $form->{callback}; - $form->redirect($locale->text('Dunning Process started for selected invoices!')); - } + setup_dn_status_action_bar(); + $form->{"title"} = $locale->text("Dunning status"); + $form->header(); + print $form->parse_html_template('dunning/status', { + pdf_filename => $pdf_filename, + pdf_content => $pdf_content, + status => \@status, }); $main::lxdebug->leave_sub(); } @@ -692,4 +712,17 @@ sub setup_dn_edit_config_action_bar { } } +sub setup_dn_status_action_bar { + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Back'), + link => $::form->{callback}, + accesskey => 'enter', + ], + ); + } + +} + # end of main