X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FCsvImportProfile.pm;h=9980ad52865b64e6262c5549888c7d08c1fda4e0;hb=7ff7dd017542c32a8f8111167fda69857de50910;hp=ea7b4fe287cec7addf07618f12477e77294593fa;hpb=72b340de2352eec7d3f99a00e2141a2df35f07f3;p=kivitendo-erp.git diff --git a/SL/DB/CsvImportProfile.pm b/SL/DB/CsvImportProfile.pm index ea7b4fe28..9980ad528 100644 --- a/SL/DB/CsvImportProfile.pm +++ b/SL/DB/CsvImportProfile.pm @@ -4,7 +4,8 @@ use strict; use List::Util qw(first); -use SL::DB::MetaSetup::CsvImportProfile; +require SL::DB::MetaSetup::CsvImportProfile; +use Rose::DB::Object::Helpers qw(clone_and_reset); __PACKAGE__->meta->add_relationship( settings => { @@ -33,13 +34,6 @@ sub new_with_default { sub set_defaults { my ($self) = @_; - $self->_set_defaults(sep_char => ',', - quote_char => '"', - escape_char => '"', - charset => 'CP850', - numberformat => $::myconfig{numberformat}, - duplicates => 'no_check', - ); if ($self->type eq 'parts') { my $bugru = SL::DB::Manager::Buchungsgruppe->find_by(description => { like => 'Standard%19%' }); @@ -53,10 +47,38 @@ sub set_defaults { default_buchungsgruppe => ($bugru ? $bugru->id : undef), apply_buchungsgruppe => 'all', ); + } elsif ($self->type eq 'orders') { + $self->_set_defaults(order_column => $::locale->text('Order'), + item_column => $::locale->text('OrderItem'), + max_amount_diff => 0.02, + ); + } elsif ($self->type eq 'mt940') { + $self->_set_defaults(charset => 'UTF8', + sep_char => ';', + numberformat => '1000.00', + update_policy => 'skip', + ); + } elsif ($self->type eq 'bank_transactions') { + $self->_set_defaults(charset => 'UTF8', + update_policy => 'skip', + ); } else { $self->_set_defaults(table => 'customer'); } + # TODO: move the defaults into their own controller + # defaults can only be set once, so use these values as default if they + # haven't already been set above for one of the special import types + # If the values have been set above they won't be overwritten here: + + $self->_set_defaults(sep_char => ',', + quote_char => '"', + escape_char => '"', + charset => 'CP850', + numberformat => $::myconfig{numberformat}, + duplicates => 'no_check', + ); + return $self; } @@ -94,6 +116,24 @@ sub _set_defaults { return $self; } +sub clone_and_reset_deep { + my ($self) = @_; + + my $clone = $self->clone_and_reset; + $clone->settings(map { $_->clone_and_reset } $self->settings); + $clone->name(''); + + return $clone; +} + +sub flatten { + my ($self) = @_; + + return map { + $_->key => $_->value + } $self->settings; +} + # # hooks #