Mahnungen: DMS: orig. Rechnung als eigenen Typ
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Wed, 17 Mar 2021 08:34:31 +0000 (09:34 +0100)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Wed, 17 Mar 2021 16:09:36 +0000 (17:09 +0100)
SL/Controller/File.pm
SL/DN.pm
bin/mozilla/dn.pl
sql/Pg-upgrade2/file_storage_type_dunning_orig_invoice.sql [new file with mode: 0644]

index 5d2e97c..1a244f0 100644 (file)
@@ -399,7 +399,7 @@ sub _do_list {
   if ( $self->file_type eq 'document' ) {
     my @object_types;
     push @object_types, $self->object_type;
-    push @object_types, qw(dunning dunning1 dunning2 dunning3) if $self->object_type eq 'invoice'; # hardcoded object types?
+    push @object_types, qw(dunning dunning1 dunning2 dunning3 dunning_orig_invoice) if $self->object_type eq 'invoice'; # hardcoded object types?
     @files = SL::File->get_all_versions(object_id   => $self->object_id,
                                         object_type => \@object_types,
                                         file_type   => $self->file_type,
index aa82aa9..32e3bfa 100644 (file)
--- a/SL/DN.pm
+++ b/SL/DN.pm
@@ -1226,7 +1226,7 @@ sub print_original_invoices {
   if ($::instance_conf->get_doc_storage) {
     SL::File->save(
       object_id   => $invoice_id,
-      object_type => 'dunning',
+      object_type => 'dunning_orig_invoice',
       mime_type   => 'application/pdf',
       source      => 'created',
       file_type   => 'document',
index ec46a47..5634c90 100644 (file)
@@ -456,6 +456,10 @@ sub show_dunning {
       push @files, SL::File->get_all_versions(object_id   => $ref->{id},
                                               object_type => 'dunning',
                                               file_type   => 'document',);
+      # object_type  dunning_orig_invoice is the original dunned invoice.
+      push @files, SL::File->get_all_versions(object_id   => $ref->{id},
+                                              object_type => 'dunning_orig_invoice',
+                                              file_type   => 'document',);
       if (scalar @files) {
         my $html          = join '<br>', map { SL::Presenter::FileObject::file_object($_) } @files;
         my $text          = join "\n",   map { $_->file_name                              } @files;
diff --git a/sql/Pg-upgrade2/file_storage_type_dunning_orig_invoice.sql b/sql/Pg-upgrade2/file_storage_type_dunning_orig_invoice.sql
new file mode 100644 (file)
index 0000000..92ee580
--- /dev/null
@@ -0,0 +1,17 @@
+-- @tag: file_storage_type_dunning_orig_invoice
+-- @description: original gemahnte Rechnung als valid_type für Filemanagement
+-- @depends: file_storage_type_letter
+
+ALTER TABLE files
+  DROP CONSTRAINT valid_type;
+ALTER TABLE files
+  ADD  CONSTRAINT valid_type CHECK (
+             (object_type = 'credit_note'     ) OR (object_type = 'invoice'                 ) OR (object_type = 'sales_order'          )
+          OR (object_type = 'sales_quotation' ) OR (object_type = 'sales_delivery_order'    ) OR (object_type = 'request_quotation'    )
+          OR (object_type = 'purchase_order'  ) OR (object_type = 'purchase_delivery_order' ) OR (object_type = 'purchase_invoice'     )
+          OR (object_type = 'vendor'          ) OR (object_type = 'customer'                ) OR (object_type = 'part'                 )
+          OR (object_type = 'gl_transaction'  ) OR (object_type = 'dunning'                 ) OR (object_type = 'dunning1'             )
+          OR (object_type = 'dunning2'        ) OR (object_type = 'dunning3'                ) OR (object_type = 'dunning_orig_invoice' )
+          OR (object_type = 'draft'           ) OR (object_type = 'statement'               ) OR (object_type = 'shop_image'           )
+          OR (object_type = 'letter'          )
+  );