Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a0392369

Von Bernd Bleßmann vor etwa 3 Jahren hinzugefügt

  • ID a0392369b75efa2fa8958f5cf2519272c960040d
  • Vorgänger a386ea48
  • Nachfolger 62ac28ee

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.

Unterschiede anzeigen:

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