Vorschläge für Kontoauszüge verbessern, fall: remote_account_number
[kivitendo-erp.git] / SL / DB / DeliveryOrder / TypeData.pm
index 7cde08e..8b523fb 100644 (file)
@@ -37,6 +37,7 @@ my %type_data = (
       save_and_ap_transaction => 0,
       save_and_invoice        => 0,
       delete                  => sub { $::instance_conf->get_sales_delivery_order_show_delete },
+      new_controller          => 0,
     },
     properties => {
       customervendor => "customer",
@@ -46,7 +47,10 @@ my %type_data = (
       transnumber    => 'sdonumber',
     },
     part_classification_query => [ "used_for_sale" => 1 ],
-    right => "sales_delivery_order_edit",
+    rights => {
+      edit => "sales_delivery_order_edit",
+      view => "sales_delivery_order_edit | sales_delivery_order_view",
+    },
   },
   PURCHASE_DELIVERY_ORDER_TYPE() => {
     text => {
@@ -65,6 +69,7 @@ my %type_data = (
       save_and_ap_transaction => 0,
       save_and_invoice        => 0,
       delete                  => sub { $::instance_conf->get_sales_delivery_order_show_delete },
+      new_controller          => 0,
     },
     properties => {
       customervendor => "vendor",
@@ -74,12 +79,15 @@ my %type_data = (
       transnumber    => 'pdonumber',
     },
     part_classification_query => [ "used_for_purchase" => 1 ],
-    right => "purchase_delivery_order_edit",
+    rights => {
+      edit => "purchase_delivery_order_edit",
+      view => "purchase_delivery_order_edit | purchase_delivery_order_view",
+    },
   },
   SUPPLIER_DELIVERY_ORDER_TYPE() => {
     text => {
-      delete => t8('Delivery Order has been deleted'),
-      saved  => t8('Delivery Order has been saved'),
+      delete => t8('Supplier Delivery Order has been deleted'),
+      saved  => t8('Supplier Delivery Order has been saved'),
       add    => t8("Add Supplier Delivery Order"),
       edit   => t8("Edit Supplier Delivery Order"),
       attachment => t8("supplier_delivery_order_list"),
@@ -93,6 +101,7 @@ my %type_data = (
       save_and_ap_transaction => 0,
       save_and_invoice        => 0,
       delete                  => sub { $::instance_conf->get_sales_delivery_order_show_delete },
+      new_controller          => 1,
     },
     properties => {
       customervendor => "vendor",
@@ -102,7 +111,10 @@ my %type_data = (
       transnumber    => 'sudonumber',
     },
     part_classification_query => [ "used_for_purchase" => 1 ],
-    right => "purchase_delivery_order_edit",
+    rights => {
+      edit => "purchase_delivery_order_edit",
+      view => "purchase_delivery_order_edit | purchase_delivery_order_view",
+    },
   },
   RMA_DELIVERY_ORDER_TYPE() => {
     text => {
@@ -121,6 +133,7 @@ my %type_data = (
       save_and_ap_transaction => 0,
       save_and_invoice        => 0,
       delete                  => sub { $::instance_conf->get_sales_delivery_order_show_delete },
+      new_controller          => 1,
     },
     properties => {
       customervendor => "customer",
@@ -130,7 +143,10 @@ my %type_data = (
       transnumber    => 'rdonumber',
     },
     part_classification_query => [ "used_for_sale" => 1 ],
-    right => "sales_delivery_order_edit",
+    rights => {
+      edit => "sales_delivery_order_edit",
+      view => "sales_delivery_order_edit | sales_delivery_order_view",
+    },
   },
 );
 
@@ -154,12 +170,14 @@ sub is_valid_type {
 sub validate_type {
   my ($type) = @_;
 
-  return $valid_types{$type} // confess "invalid type '$type'";
+  return $valid_types{$type} // croak "invalid type '$type'";
 }
 
 sub get {
   my ($type, $key) = @_;
 
+  croak "invalid type '$type'" unless exists $type_data{$type};
+
   my $ret = $type_data{$type}->{$key} // die "unknown property '$key'";
 
   ref $ret eq 'CODE'
@@ -170,7 +188,9 @@ sub get {
 sub get3 {
   my ($type, $topic, $key) = @_;
 
-  my $ret = $type_data{$type}{$topic}{$key} // die "unknown property '$key' in topic '$topic' for type '$type'";
+  croak "invalid type '$type'" unless exists $type_data{$type};
+
+  my $ret = $type_data{$type}{$topic}{$key} // croak "unknown property '$key' in topic '$topic' for type '$type'";
 
   ref $ret eq 'CODE'
     ? $ret->()