From: Moritz Bunkus Date: Thu, 14 May 2009 12:19:21 +0000 (+0000) Subject: Beim Wechsel des Kunden das Konto und den Steuerschlüssel richtig vorbelegen. X-Git-Tag: release-2.6.0rc1~66 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=8f8ad003294a3a8277500ca7ec436f9f92999de2;p=kivitendo-erp.git Beim Wechsel des Kunden das Konto und den Steuerschlüssel richtig vorbelegen. Zum Einen sollte das Konto in der ersten Positionszeile nur dann gewechselt werden, wenn in der Zeile noch kein Betrag eingetragen wurde. Zum Anderen sollte, wenn das Konto auf das zuletzt für diesen Lieferanten bebuchte Konto gesetzt wird, auch der zum neu ausgewählten Konto dazugehörige Steuerschlüssel ausgewählt werden und nicht derjenige, der in der Maske vorher ausgewählt war. Teil des Fixes für Bug 960. Weiterhin bei Debitoren- und Kreditorenbuchungen die versteckten Variablen für den Steuerbetrag bei jedem Erneuern neu berechnen lassen. Ansonsten kann es passieren, dass in einer Zeile, in der zwischenzeitlich ein Betrag stand, der seitdem entfernt und die Zeile dadurch resettet wurde, trotzdem ein Steuerbetrag angezeigt wird, weil die versteckte Variable immer mitgeschliffen wurde. --- diff --git a/bin/mozilla/ap.pl b/bin/mozilla/ap.pl index 75631fa29..6c22f8efe 100644 --- a/bin/mozilla/ap.pl +++ b/bin/mozilla/ap.pl @@ -852,6 +852,8 @@ sub update { $form->{invtotal} = 0; + delete @{ $form }{ grep { m/^tax_\d+$/ } keys %{ $form } }; + map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining); diff --git a/bin/mozilla/ar.pl b/bin/mozilla/ar.pl index c0052bd5e..c41068046 100644 --- a/bin/mozilla/ar.pl +++ b/bin/mozilla/ar.pl @@ -32,7 +32,7 @@ #====================================================================== use POSIX qw(strftime); -use List::Util qw(sum); +use List::Util qw(sum first); use SL::AR; use SL::FU; @@ -577,7 +577,13 @@ $jsscript $selected_taxchart = "$item->{id}--$item->{rate}"; } - $selected_taxchart = $taxchart_init unless ($form->{"taxchart_$i"}); + if (!$form->{"taxchart_$i"}) { + if ($form->{"AR_amount_$i"} =~ m/.--./) { + $selected_taxchart = join '--', map { ($_->{id}, $_->{rate}) } first { $_->{id} == $item->{tax_id} } @{ $form->{ALL_TAXCHARTS} }; + } else { + $selected_taxchart = $taxchart_init; + } + } $selectAR_amount = NTI($cgi->popup_menu('-name' => "AR_amount_$i", @@ -915,6 +921,8 @@ sub update { $form->{invtotal} = 0; + delete @{ $form }{ grep { m/^tax_\d+$/ } keys %{ $form } }; + map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining); @@ -954,9 +962,19 @@ sub update { $form->{exchangerate} = $form->{forex} if $form->{forex}; $form->{invdate} = $form->{transdate}; - my $save_AR = $form->{AR}; - check_name("customer"); - $form->{AR} = $save_AR; + + $form->{invdate} = $form->{transdate}; + + my %saved_variables = map +( $_ => $form->{$_} ), qw(AR AR_amount_1 taxchart_1); + + &check_name("customer"); + + $form->{AR} = $saved_variables{AR}; + if ($saved_variables{AR_amount_1} =~ m/.--./) { + map { $form->{$_} = $saved_variables{$_} } qw(AR_amount_1 taxchart_1); + } else { + delete $form->{taxchart_1}; + } $form->{invtotal} = ($form->{taxincluded}) ? $form->{invtotal} : $form->{invtotal} + $totaltax;