X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/632f0308562656fd01b8bcf75839f2ce5490c03b..7335b28fb5c1761a2fa8589fd0018f58c3cfaa81:/SL/DB/DeliveryOrder.pm diff --git a/SL/DB/DeliveryOrder.pm b/SL/DB/DeliveryOrder.pm index a7c20cb9b..3c293e027 100644 --- a/SL/DB/DeliveryOrder.pm +++ b/SL/DB/DeliveryOrder.pm @@ -17,7 +17,7 @@ use SL::DB::Helper::TransNumberGenerator; use SL::DB::Part; use SL::DB::Unit; -use SL::Controller::DeliveryOrder::TypeData; +use SL::DB::DeliveryOrder::TypeData qw(:types); use SL::Helper::Number qw(_format_total _round_total); @@ -82,6 +82,10 @@ sub type { goto &order_type; } +sub is_type { + return shift->type eq shift; +} + sub displayable_type { my $type = shift->type; @@ -136,8 +140,8 @@ sub new_from { ordnumber payment_id reqdate salesman_id shippingpoint shipvia taxincluded taxzone_id transaction_description vendor_id billing_address_id )), closed => 0, - is_sales => !!$source->customer_id, delivered => 0, + order_type => $params{type}, transdate => DateTime->today_local, ); @@ -153,12 +157,10 @@ 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; - - # overwrite legacy is_sales from type_data - $args{is_sales} = SL::Controller::DeliveryOrder::TypeData::get3($params{order_type}, "properties", "is_customer"); + $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"; my $delivery_order = $class->new(%args); $delivery_order->assign_attributes(%{ $params{attributes} }) if $params{attributes}; @@ -320,11 +322,14 @@ 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::DB::DeliveryOrder::TypeData::get3($_[0]->order_type, "properties", "is_customer"); + } + return $_[0]{is_sales}; } sub customervendor { - SL::Controller::DeliveryOrder::TypeData::get3($_[0]->order_type, "properties", "is_customer") ? $_[0]->customer : $_[0]->vendor; + SL::DB::DeliveryOrder::TypeData::get3($_[0]->order_type, "properties", "is_customer") ? $_[0]->customer : $_[0]->vendor; } sub convert_to_invoice {