Dateimanagement: Mahnung: Mahnrechnung bekommt Typ dunning_invoice statt dunning
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 19 Mar 2021 10:48:05 +0000 (11:48 +0100)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Thu, 25 Mar 2021 10:22:24 +0000 (11:22 +0100)
Hintergrund: Es soll umgestellt werden, dass bei einem Mahnlauf erzeugte
Dokumente zur Mahnenden Rechnung gespeichert werden. Sattdessen sollen diese
zum Mahnlauf gespeichert werden. Dazu wird dann der object_type "dunning"
verwendet, der bisher für die Mahnrechnung benutzt wurde. Die bisher
gespeicherten Mahnrechnungen bekommen nun den object_type "dunning_invoice".

Später könnten die object_typen "dunning1-3", "dunning_invoice",
"dunning_orig_invoice" dann raus, sofern es ein Migrationsskript gibt ;)

SL/Controller/File.pm
sql/Pg-upgrade2/file_storage_dunning_invoice.sql [new file with mode: 0644]

index 1a244f0..fdfded2 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 dunning_orig_invoice) if $self->object_type eq 'invoice'; # hardcoded object types?
+    push @object_types, qw(dunning1 dunning2 dunning3 dunning_invoice 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,
diff --git a/sql/Pg-upgrade2/file_storage_dunning_invoice.sql b/sql/Pg-upgrade2/file_storage_dunning_invoice.sql
new file mode 100644 (file)
index 0000000..583f194
--- /dev/null
@@ -0,0 +1,20 @@
+-- @tag: file_storage_dunning_invoice
+-- @description: Datei pro Mahnlauf als dunning. Altes dunning (Mahnrechnung) wird dunning_invoice
+-- @depends: file_storage_type_dunning_orig_invoice
+
+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 = 'dunning_invoice' ) OR (object_type = 'draft'                   ) OR (object_type = 'statement'            )
+          OR (object_type = 'shop_image'      )
+          OR (object_type = 'letter'          )
+  );
+
+UPDATE files SET object_type = 'dunning_invoice' WHERE object_type LIKE 'dunning';