Revision a0392369
Von Bernd Bleßmann vor etwa 3 Jahren hinzugefügt
bin/mozilla/dn.pl | ||
---|---|---|
34 | 34 |
|
35 | 35 |
use POSIX qw(strftime); |
36 | 36 |
|
37 |
use List::Util qw(notall); |
|
37 | 38 |
use List::MoreUtils qw(none); |
38 | 39 |
|
39 | 40 |
use SL::IS; |
... | ... | |
210 | 211 |
|
211 | 212 |
my $active=1; |
212 | 213 |
my @rows = (); |
214 |
my @status; |
|
213 | 215 |
undef($form->{DUNNING_PDFS}); |
214 | 216 |
|
215 | 217 |
my $saved_language_id = $form->{language_id}; |
... | ... | |
242 | 244 |
if (!$form->{force_lang}) { |
243 | 245 |
$form->{language_id} = @{$level}[0]->{language_id}; |
244 | 246 |
} |
245 |
DN->save_dunning(\%myconfig, $form, $level); |
|
247 |
my $rc = DN->save_dunning(\%myconfig, $form, $level); |
|
248 |
$rc->{error} =~ s{\n}{<br />}g if $rc->{error}; |
|
249 |
push @status, { invnumbers => [map { $form->{'invnumber_' . $_->{row}} } @$level], |
|
250 |
map { ( $_ => $rc->{$_} ) } qw(error dunning_id print_original_invoice send_email), }; |
|
246 | 251 |
} |
247 | 252 |
} |
248 | 253 |
|
... | ... | |
260 | 265 |
if (!$form->{force_lang}) { |
261 | 266 |
$form->{language_id} = @{$level}[0]->{language_id}; |
262 | 267 |
} |
263 |
DN->save_dunning(\%myconfig, $form, $level); |
|
268 |
my $rc = DN->save_dunning(\%myconfig, $form, $level); |
|
269 |
$rc->{error} =~ s{\n}{<br />}g if $rc->{error}; |
|
270 |
push @status, { invnumbers => [map { $form->{'invnumber_' . $_->{row}} } @$level], |
|
271 |
map { ( $_ => $rc->{$_} ) } qw(error dunning_id print_original_invoice send_email), }; |
|
264 | 272 |
} |
265 | 273 |
} |
266 | 274 |
|
267 | 275 |
$form->{language_id} = $saved_language_id; |
268 | 276 |
|
269 |
if (scalar @{ $form->{DUNNING_PDFS} }) { |
|
277 |
my $pdf_filename; |
|
278 |
my $pdf_content; |
|
279 |
if ($form->{DUNNING_PDFS} && scalar @{ $form->{DUNNING_PDFS} }) { |
|
270 | 280 |
$form->{dunning_id} = strftime("%Y%m%d", localtime time) if scalar @{ $form->{DUNNING_PDFS}} > 1; |
271 |
DN->melt_pdfs(\%myconfig, $form, $form->{copies}); |
|
281 |
($pdf_filename, $pdf_content) = DN->melt_pdfs(\%myconfig, $form, $form->{copies}, return_content => $form->{media} ne 'printer'); |
|
282 |
|
|
283 |
flash('info', t8('Dunning Process started for selected invoices!')); |
|
284 |
if ($form->{media} eq 'printer') { |
|
285 |
flash('info', t8('The PDF has been printed')); |
|
286 |
} else { |
|
287 |
flash('info', t8('The PDF has been created')); |
|
288 |
} |
|
272 | 289 |
} |
273 | 290 |
|
274 | 291 |
# saving the history |
... | ... | |
279 | 296 |
} |
280 | 297 |
# /saving the history |
281 | 298 |
|
282 |
if ($form->{media} eq 'printer') { |
|
283 |
delete $form->{callback}; |
|
284 |
$form->redirect($locale->text('Dunning Process started for selected invoices!')); |
|
285 |
} |
|
299 |
setup_dn_status_action_bar(); |
|
300 |
$form->{"title"} = $locale->text("Dunning status"); |
|
301 |
$form->header(); |
|
302 |
print $form->parse_html_template('dunning/status', { |
|
303 |
pdf_filename => $pdf_filename, |
|
304 |
pdf_content => $pdf_content, |
|
305 |
status => \@status, }); |
|
286 | 306 |
|
287 | 307 |
$main::lxdebug->leave_sub(); |
288 | 308 |
} |
... | ... | |
692 | 712 |
} |
693 | 713 |
} |
694 | 714 |
|
715 |
sub setup_dn_status_action_bar { |
|
716 |
for my $bar ($::request->layout->get('actionbar')) { |
|
717 |
$bar->add( |
|
718 |
action => [ |
|
719 |
t8('Back'), |
|
720 |
link => $::form->{callback}, |
|
721 |
accesskey => 'enter', |
|
722 |
], |
|
723 |
); |
|
724 |
} |
|
725 |
|
|
726 |
} |
|
727 |
|
|
695 | 728 |
# end of main |
Auch abrufbar als: Unified diff
Mahnungen: Status-Bericht nach Mahnlauf mit evtl. Fehlermeldungen.
Das Erzeugen der Mahnungen erfolgt je nach ausgewählten Rechnungen in mehreren
Schritten (Zusammenfassen je Kunde und Mahnlevel oder auch einzeln für jede
Rechnung).
Hierbei können in einem Schritt durchaus Mahnungen für einen Kunden oder einen
Mahnlevel erfolgreich erzeugt und per Mail verschickt werden. In einem
folgenden Schritt kann aber ein Fehler auftreten, der dann zum Abbruch und
einer Fehlermeldung führt.
Dabei gab es bisher keinen Hinweis, ob einzelne Schritte erfolgreich waren und
Mahnungen erzeugt wurden.
Dieser commit sammelt die Ergebnisse der einzelnen Schritte und zeigt am Ende
aller Schritte einen Status-Bericht an.