X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/c6af9711e167b2bba757e337bca50861e60d34f5..e0f5deeae4cdcf3faf3bc68a202f20ec6cd9af2e:/SL/DB/Helper/Payment.pm diff --git a/SL/DB/Helper/Payment.pm b/SL/DB/Helper/Payment.pm index 3d97be0f6..2507e45ec 100644 --- a/SL/DB/Helper/Payment.pm +++ b/SL/DB/Helper/Payment.pm @@ -119,7 +119,7 @@ sub pay_invoice { my $fx_gain_loss_amount = 0; # for fx_gain and fx_loss my $db = $self->db; - $db->do_transaction(sub { + $db->with_transaction(sub { my $new_acc_trans; # all three payment type create 1 AR/AP booking (the paid part) @@ -304,11 +304,13 @@ sub pay_invoice { $datev->export; if ($datev->errors) { - # this exception should be caught by do_transaction, which handles the rollback + # this exception should be caught by with_transaction, which handles the rollback die join "\n", $::locale->text('DATEV check returned errors:'), $datev->errors; } } + 1; + }) || die t8('error while paying invoice #1 : ', $self->invnumber) . $db->error . "\n"; return 1; @@ -385,7 +387,7 @@ sub open_amount { # if the difference is 0.01 Cent this may end up as 0.009999999999998 # numerically, so round this value when checking for cent threshold >= 0.01 - return $self->amount - $self->paid; + return ($self->amount // 0) - ($self->paid // 0); }; sub open_percent { @@ -704,6 +706,13 @@ sub get_payment_suggestions { return 1; }; +# locales for payment type +# +# $main::locale->text('without_skonto') +# $main::locale->text('with_skonto_pt') +# $main::locale->text('difference_as_skonto') +# + sub validate_payment_type { my $payment_type = shift;