X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/632f0308562656fd01b8bcf75839f2ce5490c03b..2cf35cb6f7e1ae4d0adb0cc36d804528f84ffb0b:/SL/DB/DeliveryOrder.pm diff --git a/SL/DB/DeliveryOrder.pm b/SL/DB/DeliveryOrder.pm index a7c20cb9b..5f6056dbc 100644 --- a/SL/DB/DeliveryOrder.pm +++ b/SL/DB/DeliveryOrder.pm @@ -153,12 +153,13 @@ sub new_from { } # infer type from legacy fields if not given - $params{order_type} //= $source->customer_id ? 'sales_delivery_order' - : $source->vendor_id ? 'purchase_delivery_order' - : undef; + $args{order_type} //= $source->customer_id ? 'sales_delivery_order' + : $source->vendor_id ? 'purchase_delivery_order' + : $source->is_sales ? 'sales_delivery_order' + : croak "need some way to set delivery order type from source"; # overwrite legacy is_sales from type_data - $args{is_sales} = SL::Controller::DeliveryOrder::TypeData::get3($params{order_type}, "properties", "is_customer"); + $args{is_sales} = SL::Controller::DeliveryOrder::TypeData::get3($args{order_type}, "properties", "is_customer"); my $delivery_order = $class->new(%args); $delivery_order->assign_attributes(%{ $params{attributes} }) if $params{attributes}; @@ -320,7 +321,10 @@ sub new_from_time_recordings { # legacy for compatibility # use type_data cusomtervendor and transfer direction instead sub is_sales { - SL::Controller::DeliveryOrder::TypeData::get3($_[0]->order_type, "properties", "is_customer"); + if ($_[0]->order_type) { + return SL::Controller::DeliveryOrder::TypeData::get3($_[0]->order_type, "properties", "is_customer"); + } + return $_[0]{is_sales}; } sub customervendor {