Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5c0d66f1

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

  • ID 5c0d66f1bac1c81ba16077a27f17508bc8bf2375
  • Vorgänger 2729421a
  • Nachfolger bee7d33f

Auftrags-Controller: auch bei E-Mail erzeugtes Dokument im WebDAV/DMS speichern

Unterschiede anzeigen:

SL/Controller/Order.pm
$self->js->flash('info', t8('The PDF has been printed'));
}
# copy file to webdav folder
if ($self->order->number && $::instance_conf->get_webdav_documents) {
my $webdav = SL::Webdav->new(
type => $self->type,
number => $self->order->number,
);
my $webdav_file = SL::Webdav::File->new(
webdav => $webdav,
filename => $pdf_filename,
);
eval {
$webdav_file->store(data => \$pdf);
1;
} or do {
$self->js->flash('error', t8('Storing PDF to webdav folder failed: #1', $@));
}
}
if ($self->order->number && $::instance_conf->get_doc_storage) {
eval {
SL::File->save(object_id => $self->order->id,
object_type => $self->type,
mime_type => 'application/pdf',
source => 'created',
file_type => 'document',
file_name => $pdf_filename,
file_contents => $pdf);
1;
} or do {
$self->js->flash('error', t8('Storing PDF in storage backend failed: #1', $@));
}
my @warnings = store_pdf_to_webdav_and_filemanegement($self->order, $pdf, $pdf_filename);
if (scalar @warnings) {
$self->js->flash('warning', $_) for @warnings;
}
$self->save_history('PRINTED');
......
return $self->js->flash('error', t8('Conversion to PDF failed: #1', $errors[0]))->render($self);
}
my @warnings = store_pdf_to_webdav_and_filemanegement($self->order, $pdf, $::form->{attachment_filename});
if (scalar @warnings) {
flash_later('warning', $_) for @warnings;
}
my $sfile = SL::SessionFile::Random->new(mode => "w");
$sfile->fh->print($pdf);
$sfile->fh->close;
......
)->save;
}
sub store_pdf_to_webdav_and_filemanegement {
my($order, $content, $filename) = @_;
my @errors;
# copy file to webdav folder
if ($order->number && $::instance_conf->get_webdav_documents) {
my $webdav = SL::Webdav->new(
type => $order->type,
number => $order->number,
);
my $webdav_file = SL::Webdav::File->new(
webdav => $webdav,
filename => $filename,
);
eval {
$webdav_file->store(data => \$content);
1;
} or do {
push @errors, t8('Storing PDF to webdav folder failed: #1', $@);
};
}
if ($order->id && $::instance_conf->get_doc_storage) {
eval {
SL::File->save(object_id => $order->id,
object_type => $order->type,
mime_type => 'application/pdf',
source => 'created',
file_type => 'document',
file_name => $filename,
file_contents => $content);
1;
} or do {
push @errors, t8('Storing PDF in storage backend failed: #1', $@);
};
}
return @errors;
}
1;
__END__

Auch abrufbar als: Unified diff