X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FDeliveryOrder%2FTypeData.pm;h=8b523fb5a4b8203bed30dce2fbd08275d91c992c;hb=1b032ef45d886922f1fe347ec234c9b0c8c50efd;hp=7cde08ede1a5c17b638096ed581b4c55aa0352e4;hpb=c9847742e79d1b484d3304664352cedeb7df0f26;p=kivitendo-erp.git diff --git a/SL/DB/DeliveryOrder/TypeData.pm b/SL/DB/DeliveryOrder/TypeData.pm index 7cde08ede..8b523fb5a 100644 --- a/SL/DB/DeliveryOrder/TypeData.pm +++ b/SL/DB/DeliveryOrder/TypeData.pm @@ -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->()