X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/ae47b240b0a1d1d793240c660feeb3f0532122ab..464f44a:/SL/Controller/CsvImport/Order.pm?ds=inline diff --git a/SL/Controller/CsvImport/Order.pm b/SL/Controller/CsvImport/Order.pm index 2f6b4e7a3..f8dbbb1cb 100644 --- a/SL/Controller/CsvImport/Order.pm +++ b/SL/Controller/CsvImport/Order.pm @@ -34,6 +34,16 @@ sub init_class { $self->class(['SL::DB::Order', 'SL::DB::OrderItem']); } +sub set_profile_defaults { + my ($self) = @_; + + $self->controller->profile->_set_defaults( + order_column => $::locale->text('Order'), + item_column => $::locale->text('OrderItem'), + max_amount_diff => 0.02, + ); +}; + sub init_settings { my ($self) = @_; @@ -426,7 +436,7 @@ sub check_part { my $object = $entry->{object}; - # Check wether or non part ID is valid. + # Check wether or not part ID is valid. if ($object->parts_id && !$self->parts_by->{id}->{ $object->parts_id }) { push @{ $entry->{errors} }, $::locale->text('Error: Invalid part'); return 0; @@ -443,6 +453,17 @@ sub check_part { $object->parts_id($part->id); } + # Map description to ID if given. + if (!$object->parts_id && $entry->{raw_data}->{description}) { + my $part = $self->parts_by->{description}->{ $entry->{raw_data}->{description} }; + if (!$part) { + push @{ $entry->{errors} }, $::locale->text('Error: Invalid part'); + return 0; + } + + $object->parts_id($part->id); + } + if ($object->parts_id) { $entry->{info_data}->{partnumber} = $self->parts_by->{id}->{ $object->parts_id }->partnumber; } else { @@ -624,10 +645,10 @@ sub add_items_to_order { my $order_entry; my @orderitems; foreach my $entry (@{ $self->controller->data }) { - # search first order + # search first/next order if ($entry->{raw_data}->{datatype} eq $self->_order_column) { - # new order entry: add collected orderitems to the previous one + # next order entry: add collected orderitems to the previous one if (defined $order_entry) { $order_entry->{object}->orderitems(@orderitems); @orderitems = (); @@ -654,7 +675,7 @@ sub handle_prices_and_taxes() { foreach my $entry (@{ $self->controller->data }) { next if @{ $entry->{errors} }; - if ($entry->{raw_data}->{datatype} eq $self->_order_column) { + if ($entry->{raw_data}->{datatype} eq $self->_order_column && $entry->{object}->orderitems) { $entry->{object}->calculate_prices_and_taxes;