X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/9d6a2ef23cd5586ed4ea3d5a8d59362220251d68..00b9499e32bdf89676f1933cbd4cab39502c3210:/SL/Controller/CsvImport/Base.pm diff --git a/SL/Controller/CsvImport/Base.pm b/SL/Controller/CsvImport/Base.pm index a61b03f29..31d1d9ece 100644 --- a/SL/Controller/CsvImport/Base.pm +++ b/SL/Controller/CsvImport/Base.pm @@ -9,12 +9,13 @@ use SL::DB::Customer; use SL::DB::Language; use SL::DB::PaymentTerm; use SL::DB::Vendor; +use SL::DB::Contact; use parent qw(Rose::Object); use Rose::Object::MakeMethods::Generic ( - scalar => [ qw(controller file csv) ], + scalar => [ qw(controller file csv save_with_cascade) ], 'scalar --get_set_init' => [ qw(profile displayable_columns existing_objects class manager_class cvar_columns all_cvar_configs all_languages payment_terms_by all_vc vc_by) ], ); @@ -30,6 +31,10 @@ sub run { strict_profile => 1, map { ( $_ => $self->controller->profile->get($_) ) } qw(sep_char escape_char quote_char), )); + + my $old_numberformat = $::myconfig{numberformat}; + $::myconfig{numberformat} = $self->controller->profile->get('numberformat'); + $self->csv->parse; $self->controller->errors([ $self->csv->errors ]) if $self->csv->errors; @@ -50,6 +55,8 @@ sub run { $self->check_objects; $self->check_duplicates if $self->controller->profile->get('duplicates', 'no_check') ne 'no_check'; $self->fix_field_lengths; + + $::myconfig{numberformat} = $old_numberformat; } sub add_columns { @@ -298,7 +305,7 @@ sub save_objects { my $object = $entry->{object_to_save} || $entry->{object}; - if (!$object->save) { + if ( !$object->save(cascade => !!$self->save_with_cascade()) ) { push @{ $entry->{errors} }, $::locale->text('Error when saving: #1', $entry->{object}->db->error); } else { $self->controller->num_imported($self->controller->num_imported + 1);