X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FAP.pm;h=3c29ca85d89731f7f5dfcaeb9b0c6dee2df58ebf;hb=67079598f8f98a12e12a8acddc3afbf12bb58c5d;hp=2f52c6253faffbccd8a9ea795e9bfc4cfeb1b89d;hpb=890e057f52343ca24bbc74becb2bd715ac2ba3da;p=kivitendo-erp.git diff --git a/SL/AP.pm b/SL/AP.pm index 2f52c6253..3c29ca85d 100644 --- a/SL/AP.pm +++ b/SL/AP.pm @@ -250,7 +250,7 @@ sub post_transaction { # add paid transactions for my $i (1 .. $form->{paidaccounts}) { - if ($form->{"acc_trans_id_$i"} && $payments_only && ($::lx_office_conf{features}->{payments_changeable} == 0)) { + if ($form->{"acc_trans_id_$i"} && $payments_only && ($::lx_office_conf{features}->{payments_changeable} == 0)) { next; } @@ -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") {