"Mein Name ist Mr. Wolf, ich löse Probleme." (PulpFiction)

Dienstag, 14. August 2012

LX-Office: Name der erzeugten PDF Datei anpassen

Wird eine Rechnung als PDF gedruckt, so trägt diese den Namen Rechnung_0815.pdf. Ich habe diese Rechnungen immer in Rechnung_0815_Max_Musterman_(Musterweg_18).pdf umbenannt. Dies geht auch automatisch.

In der Datei SL/Form.pl die Funktion generate_attachment_filename suchen und nach eigenen Wünschen anpassen. Meine sieht so aus:



sub generate_attachment_filename {
  $main::lxdebug->enter_sub();
  my ($self) = @_;

  my $kundenname = $self->{name};
  my $shiptostreet = $self->{shiptostreet};

  $self->{recipient_locale} ||=  Locale->lang_to_locale($self->{language});
  my $recipient_locale = Locale->new($self->{recipient_locale});

  my $attachment_filename = $main::locale->unquote_special_chars('HTML', $self->get_formname_translation());
  my $prefix              = $self->get_number_prefix_for_type();

  if ($self->{preview} && (first { $self->{type} eq $_ } qw(invoice credit_note))) {
    $attachment_filename .= ' (' . $recipient_locale->text('Preview') . ')';
    $attachment_filename .= '_' . $kundenname . '_';
    $attachment_filename .= '_(' . $shiptostreet . ')';
    $attachment_filename .= $self->get_extension_for_format();

  } elsif ($attachment_filename && $self->{"${prefix}number"}) {
    $attachment_filename .=  "_" . $self->{"${prefix}number"};
    $attachment_filename .= '_' . $kundenname . '_';
    $attachment_filename .= '_(' . $shiptostreet . ')';
    $attachment_filename .= $self->get_extension_for_format();

  } else {
    $attachment_filename = "";
  }

  $attachment_filename =  $main::locale->quote_special_chars('filenames', $attachment_filename);
  $attachment_filename =~ s|[\s/\\]+|_|g;

  $main::lxdebug->leave_sub();
  return $attachment_filename;
}

wobei die roten Zeilen verändert oder ergänzt wurden. An die Variablennamen kommt man leichter wenn man sich den HTML Source anschaut in dem man die Angaben macht.

Den entsprechenden Forums Eintrag gibt es hier. Vielen Dank an alle die geholfen haben!

Keine Kommentare:

Kommentar veröffentlichen