X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/c55ef76464c63eb428f25d7849e6e23f549207a7..9c3eecdfd5610fce7da4d98935b6913ee6ab6b86:/SL/Controller/BankTransaction.pm diff --git a/SL/Controller/BankTransaction.pm b/SL/Controller/BankTransaction.pm index 143d9d99d..ac9c3b123 100644 --- a/SL/Controller/BankTransaction.pm +++ b/SL/Controller/BankTransaction.pm @@ -124,15 +124,14 @@ sub action_list { foreach ( @{$all_open_sepa_export_items}) { if ( $_->ap_id == $open_invoice->id || $_->ar_id == $open_invoice->id ) { my $factor = ( $_->ar_id == $open_invoice->id>0?1:-1); - $open_invoice->{realamount} = $::form->format_amount(\%::myconfig,$open_invoice->amount*$factor,2); - $main::lxdebug->message(LXDebug->DEBUG2(),"exitem=".$_->id." for invoice ".$open_invoice->id." factor=".$factor); + #$main::lxdebug->message(LXDebug->DEBUG2(),"exitem=".$_->id." for invoice ".$open_invoice->id." factor=".$factor); $open_invoice->{sepa_export_item} = $_ ; $open_invoice->{skonto_type} = $_->payment_type; $sepa_exports{$_->sepa_export_id} ||= { count => 0, is_ar => 0, amount => 0, proposed => 0, invoices => [], item => $_ }; $sepa_exports{$_->sepa_export_id}->{count}++ ; $sepa_exports{$_->sepa_export_id}->{is_ar}++ if $_->ar_id == $open_invoice->id; $sepa_exports{$_->sepa_export_id}->{amount} += $_->amount * $factor; - push ( @{ $sepa_exports{$_->sepa_export_id}->{invoices}} , $open_invoice ); + push @{ $sepa_exports{$_->sepa_export_id}->{invoices} }, $open_invoice; #$main::lxdebug->message(LXDebug->DEBUG2(),"amount for export id ".$_->sepa_export_id." = ". # $sepa_exports{$_->sepa_export_id}->{amount}." count = ". # $sepa_exports{$_->sepa_export_id}->{count}." is_ar = ". @@ -161,7 +160,7 @@ sub action_list { if ( $self->is_collective_transaction($bt) ) { foreach ( keys %sepa_exports) { #$main::lxdebug->message(LXDebug->DEBUG2(),"Exp ID=".$_." compare sum amount ".($sepa_exports{$_}->{amount} *1) ." == ".($bt->amount * 1)); - if ( $bt->transactioncode eq '191' && ($sepa_exports{$_}->{amount} * 1) eq ($bt->amount * 1) ) { + if ( $bt->transaction_code eq '191' && abs(($sepa_exports{$_}->{amount} * 1) - ($bt->amount * 1)) < 0.01 ) { ## jupp $bt->{proposals} = $sepa_exports{$_}->{invoices} ; $bt->{agreement} = 20; @@ -184,11 +183,12 @@ sub action_list { $_->amount($_->amount*1); #$main::lxdebug->message(LXDebug->DEBUG2(),"remote account '".$bt->{remote_account_number}."' bt_amount=". ($bt->amount * $factor)); #$main::lxdebug->message(LXDebug->DEBUG2(),"compare with '".$_->vc_iban."' amount=".$_->amount); - if ( $bt->{remote_account_number} eq $_->vc_iban && $_->amount eq ($bt->amount * $factor)) { - push ($bt->{proposals},$open_invoice ); + if ( $bt->{remote_account_number} eq $_->vc_iban && abs(( $_->amount *1 ) - ($bt->amount * $factor)) < 0.01 ) { + push @{ $bt->{proposals} }, $open_invoice; $bt->{agreement} = 20; $bt->{rule_matches} = 'sepa_export_item(20)'; #$main::lxdebug->message(LXDebug->DEBUG2(),"found invoice"); + push(@proposals, $bt); @all_sepa_invoices = grep { $_ != $open_invoice } @all_sepa_invoices; last; } @@ -540,7 +540,7 @@ sub action_save_proposals { sub is_collective_transaction { my ($self, $bt) = @_; - return $bt->transactioncode eq "191"; + return $bt->transaction_code eq "191"; } sub save_single_bank_transaction { @@ -672,7 +672,6 @@ sub save_single_bank_transaction { }; } } - # Record a record link from the bank transaction to the invoice my @props = ( from_table => 'bank_transactions',