Revision 583544f9
Von Kivitendo Admin vor mehr als 8 Jahren hinzugefügt
- ID 583544f907b11720b8f0bd8b88e7fb20550cba1b
- Vorgänger ad872b5a
SL/Controller/CsvImport.pm | ||
---|---|---|
411 | 411 |
|
412 | 412 |
if ($self->type eq 'orders') { |
413 | 413 |
$::form->{settings}->{max_amount_diff} = $::form->parse_amount(\%::myconfig, $::form->{settings}->{max_amount_diff}); |
414 |
$::form->{settings}->{import_order_despite_part_errors} = $::form->{settings}->{import_order_despite_part_errors}; |
|
414 | 415 |
} |
415 | 416 |
|
416 | 417 |
delete $::form->{profile}->{id}; |
SL/Controller/CsvImport/Order.pm | ||
---|---|---|
41 | 41 |
order_column => $::locale->text('Order'), |
42 | 42 |
item_column => $::locale->text('OrderItem'), |
43 | 43 |
max_amount_diff => 0.02, |
44 |
import_order_despite_part_errors => 0, |
|
44 | 45 |
); |
45 | 46 |
}; |
46 | 47 |
|
... | ... | |
48 | 49 |
sub init_settings { |
49 | 50 |
my ($self) = @_; |
50 | 51 |
|
51 |
return { map { ( $_ => $self->controller->profile->get($_) ) } qw(order_column item_column max_amount_diff) }; |
|
52 |
return { map { ( $_ => $self->controller->profile->get($_) ) } qw(order_column item_column max_amount_diff import_order_despite_part_errors) };
|
|
52 | 53 |
} |
53 | 54 |
|
54 | 55 |
|
... | ... | |
290 | 291 |
foreach my $entry (@{ $self->controller->data }) { |
291 | 292 |
# Search first order |
292 | 293 |
if ($entry->{raw_data}->{datatype} eq $self->_order_column) { |
293 |
if ( $item_column_errors && $last_order_entry ) { |
|
294 |
if ( $item_column_errors && $last_order_entry && !$self->settings->{'import_order_despite_part_errors'} ) {
|
|
294 | 295 |
push @{ $last_order_entry->{errors} }, $::locale->text('Error: there are errors with #1 items', $item_column_errors); |
295 | 296 |
}; |
296 | 297 |
$item_column_errors = 0; # reset for each order if there are several orders in csv file |
... | ... | |
307 | 308 |
}; |
308 | 309 |
} |
309 | 310 |
# when loop ends, run error check for the final order (or the first, if there is only one) |
310 |
if ( $item_column_errors ) { |
|
311 |
if ( $item_column_errors and !$self->settings->{'import_order_despite_part_errors'} ) {
|
|
311 | 312 |
push @{ $last_order_entry->{errors} }, $::locale->text('Error: there are errors with #1 items', $item_column_errors); |
312 | 313 |
}; |
313 | 314 |
} |
locale/de/all | ||
---|---|---|
1430 | 1430 |
'Import finished with errors.' => 'Der Import wurde mit Fehlern beendet.', |
1431 | 1431 |
'Import finished without errors.' => 'Der Import wurde ohne Fehler beendet.', |
1432 | 1432 |
'Import not started yet, please wait...' => 'Der Taskserver ist gerade ausgelastet. Ihr Import wird gleich gestartet, bitte warten...', |
1433 |
'Import order ignoring part errors' => 'Auftrag trotz Positionsfehler importieren', |
|
1433 | 1434 |
'Import preview' => 'Import-Vorschau', |
1434 | 1435 |
'Import profiles' => 'Import-Profil', |
1435 | 1436 |
'Import result' => 'Import-Ergebnis', |
templates/webpages/csv_import/_form_orders.html | ||
---|---|---|
14 | 14 |
[% L.input_tag('settings.max_amount_diff', LxERP.format_amount(SELF.profile.get('max_amount_diff')), size => "5") %] |
15 | 15 |
</td> |
16 | 16 |
</tr> |
17 |
<tr> |
|
18 |
<th align="right">[%- LxERP.t8('Import order ignoring part errors') %]:</th> |
|
19 |
<td colspan="10"> |
|
20 |
[% L.checkbox_tag('settings.import_order_despite_part_errors', checked=SELF.profile.get('import_order_despite_part_errors')) %] |
|
21 |
</td> |
|
22 |
</tr> |
Auch abrufbar als: Unified diff
Auftragsimport - Option "Auftrag trotz Positionsfehler importieren"
siehe Ticket #172
Für den Fall, daß bei einem langen Auftrag nur wenige Positionen
fehlerhaft sind (z.B. Artikelnummer existiert nicht), muß man entweder
alle Positionen händisch einpflegen oder die CSV bearbeiten, so daß sie
ohne Fehler importiert werden kann. Mit dieser Option in den
Einstellungen ist es möglich, den Auftrag trotz fehlerhafter Positionen
zu importieren, wobei die fehlerhaften Positionen ignoriert werden.
Diese muß man dann händisch im importierten Auftrag nachpflegen.
Die Auftragszeile darf in diesem Fall natürlich keine Fehler haben.