From b63cc1ed739e06f7fa526eecbf63e67a08fb348e Mon Sep 17 00:00:00 2001 From: Bernd Blessmann Date: Thu, 29 Sep 2011 22:07:56 +0200 Subject: [PATCH] =?utf8?q?Bug=20bei=20'=C3=84nderbarkeit=20der=20Zahlungen?= =?utf8?q?=20bei=20K./D.-Buchungen'=20behoben.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Die nicht geänderten Zahlungen wurden aus der Datenbank und nicht aus der Form (hiddens) genommen. Damit lag ein falsches Zahlenformat vor. --- SL/AP.pm | 11 ++++++++--- SL/AR.pm | 10 +++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/SL/AP.pm b/SL/AP.pm index 08ec7a353..3c29ca85d 100644 --- a/SL/AP.pm +++ b/SL/AP.pm @@ -591,7 +591,7 @@ sub post_payment { # Set up the content of $form in the way that AR::post_transaction() expects. - $self->setup_form($form); + $self->setup_form($form, 1); $form->{exchangerate} = $form->format_amount($myconfig, $form->{exchangerate}); $form->{defaultcurrency} = $form->get_default_currency($myconfig); @@ -625,7 +625,7 @@ sub post_payment { sub setup_form { $main::lxdebug->enter_sub(); - my ($self, $form) = @_; + my ($self, $form, $for_post_payments) = @_; my ($exchangerate, $i, $j, $k, $key, $akey, $ref, $index, $taxamount, $totalamount, $totaltax, $totalwithholding, $withholdingrate, $taxincluded, $tax, $diff); @@ -645,11 +645,16 @@ sub setup_form { $form->{$key} = $form->{"select$key"}; - # if there is a value we have an old entry $j = 0; $k = 0; + # if there is a value we have an old entry next unless $form->{acc_trans}{$key}; + + # do not use old entries for payments. They come from the form + # even if they are not changeable (then they are in hiddens) + next if $for_post_payments && $key eq "AP_paid"; + for $i (1 .. scalar @{ $form->{acc_trans}{$key} }) { if ($key eq "AP_paid") { diff --git a/SL/AR.pm b/SL/AR.pm index 7aa709df4..a39481b82 100644 --- a/SL/AR.pm +++ b/SL/AR.pm @@ -354,7 +354,7 @@ sub post_payment { # Set up the content of $form in the way that AR::post_transaction() expects. - $self->setup_form($form); + $self->setup_form($form, 1); $form->{exchangerate} = $form->format_amount($myconfig, $form->{exchangerate}); $form->{defaultcurrency} = $form->get_default_currency($myconfig); @@ -560,7 +560,7 @@ sub get_transdate { sub setup_form { $main::lxdebug->enter_sub(); - my ($self, $form) = @_; + my ($self, $form, $for_post_payments) = @_; my ($exchangerate, $akey, $j, $k, $index, $taxamount, $totaltax, $taxrate, $diff, $totalwithholding, $withholdingrate, $totalamount, $taxincluded, $tax); @@ -570,12 +570,16 @@ sub setup_form { $exchangerate = $form->{exchangerate} ? $form->{exchangerate} : 1; foreach my $key (keys %{ $form->{AR_links} }) { - # if there is a value we have an old entry $j = 0; $k = 0; + # if there is a value we have an old entry next unless $form->{acc_trans}{$key}; + # do not use old entries for payments. They come from the form + # even if they are not changeable (then they are in hiddens) + next if $for_post_payments && $key eq "AR_paid"; + for my $i (1 .. scalar @{ $form->{acc_trans}{$key} }) { if ($key eq "AR_paid") { $j++; -- 2.20.1