MRCP.pm. Falls Webdav Archivierung auch PDF in Webdav kopieren
authorJan Büren <jan@kivitendo-premium.de>
Wed, 30 Sep 2015 17:29:24 +0000 (19:29 +0200)
committerJan Büren <jan@kivitendo-premium.de>
Wed, 30 Sep 2015 17:29:24 +0000 (19:29 +0200)
Beim Massenwandeln prinizipiell auch den WebDAV Ordner und die
Datei plus Zeitstempel erstellen. Entsprechende Fehlermeldungen
an die Oberfläche zurückgeben, wie allen anderen Meldungen in MRCP auch.

SL/BackgroundJob/MassRecordCreationAndPrinting.pm

index 6ebe086..9b374f6 100644 (file)
@@ -11,6 +11,8 @@ use SL::DB::Invoice;
 use SL::DB::Printer;
 use SL::SessionFile;
 use SL::Template;
+use SL::Locale::String qw(t8);
+use SL::Webdav;
 
 use constant WAITING_FOR_EXECUTION       => 0;
 use constant CONVERTING_DELIVERY_ORDERS  => 1;
@@ -106,6 +108,24 @@ sub convert_invoices_to_pdf {
 
       push @pdf_file_names, $ctrl->create_pdf(%create_params);
 
+      # copy file to webdav folder
+      if ($::instance_conf->get_webdav_documents) {
+        my $webdav = SL::Webdav->new(
+          type     => 'invoice',
+          number   => $invoice->invnumber,
+        );
+        my $webdav_file = SL::Webdav::File->new(
+          webdav   => $webdav,
+          filename => t8('Invoice') . '_' . $invoice->invnumber . '.pdf',
+        );
+        eval {
+          $webdav_file->store(file => $pdf_file_names[-1]);
+          1;
+        } or do {
+          push @{ $data->{print_errors} }, { id => $invoice->id, number => $invoice->invnumber, message => $@ };
+        }
+      }
+
       $data->{num_printed}++;
 
       1;