X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FCsvImport%2FBankTransaction.pm;h=8b5b5e7023e3743c15ff1c6c4a45374581c51d05;hb=c2e4989097c6a6817e6c4d7bbabf70e43f14253d;hp=3e04d3bd6b7dd6b7601d880fc0cc5467ad1f136d;hpb=0f37ddcd492b271a6b316893eda1544931c2a0ad;p=kivitendo-erp.git diff --git a/SL/Controller/CsvImport/BankTransaction.pm b/SL/Controller/CsvImport/BankTransaction.pm index 3e04d3bd6..8b5b5e702 100644 --- a/SL/Controller/CsvImport/BankTransaction.pm +++ b/SL/Controller/CsvImport/BankTransaction.pm @@ -74,8 +74,9 @@ sub check_existing { # * transdate # * remote_account_number (may be empty for records of our own bank) # * amount + # * local_bank_account_id (case flatrate bank charges for two accounts in one bank: same purpose, transdate, remote_account_number(empty), amount. Just different local_bank_account_id) my $num; - if ( $num = SL::DB::Manager::BankTransaction->get_all_count(query =>[ remote_account_number => $object->remote_account_number, transdate => $object->transdate, purpose => $object->purpose, amount => $object->amount] ) ) { + if ( $num = SL::DB::Manager::BankTransaction->get_all_count(query =>[ remote_account_number => $object->remote_account_number, transdate => $object->transdate, purpose => $object->purpose, amount => $object->amount, local_bank_account_id => $object->local_bank_account_id] ) ) { push(@{$entry->{errors}}, $::locale->text('Skipping due to existing bank transaction in database')); }; } else { @@ -174,20 +175,12 @@ sub join_purposes { my $object = $entry->{object}; - my $purpose = join(' ', $entry->{raw_data}->{purpose}, - $entry->{raw_data}->{purpose1}, - $entry->{raw_data}->{purpose2}, - $entry->{raw_data}->{purpose3}, - $entry->{raw_data}->{purpose4}, - $entry->{raw_data}->{purpose5}, - $entry->{raw_data}->{purpose6}, - $entry->{raw_data}->{purpose7}, - $entry->{raw_data}->{purpose8}, - $entry->{raw_data}->{purpose9}, - $entry->{raw_data}->{purpose10}, - $entry->{raw_data}->{purpose11}, - $entry->{raw_data}->{purpose12}, - $entry->{raw_data}->{purpose13} ); + my $purpose = + join ' ', + grep { ($_ // '') !~ m{^ *$} } + map { $entry->{raw_data}->{"purpose$_"} } + ('', 1..13); + $object->purpose($purpose); }