Revision 8f8ad003
Von Moritz Bunkus vor mehr als 15 Jahren hinzugefügt
bin/mozilla/ar.pl | ||
---|---|---|
32 | 32 |
#====================================================================== |
33 | 33 |
|
34 | 34 |
use POSIX qw(strftime); |
35 |
use List::Util qw(sum); |
|
35 |
use List::Util qw(sum first);
|
|
36 | 36 |
|
37 | 37 |
use SL::AR; |
38 | 38 |
use SL::FU; |
... | ... | |
577 | 577 |
$selected_taxchart = "$item->{id}--$item->{rate}"; |
578 | 578 |
} |
579 | 579 |
|
580 |
$selected_taxchart = $taxchart_init unless ($form->{"taxchart_$i"}); |
|
580 |
if (!$form->{"taxchart_$i"}) { |
|
581 |
if ($form->{"AR_amount_$i"} =~ m/.--./) { |
|
582 |
$selected_taxchart = join '--', map { ($_->{id}, $_->{rate}) } first { $_->{id} == $item->{tax_id} } @{ $form->{ALL_TAXCHARTS} }; |
|
583 |
} else { |
|
584 |
$selected_taxchart = $taxchart_init; |
|
585 |
} |
|
586 |
} |
|
581 | 587 |
|
582 | 588 |
$selectAR_amount = |
583 | 589 |
NTI($cgi->popup_menu('-name' => "AR_amount_$i", |
... | ... | |
915 | 921 |
|
916 | 922 |
$form->{invtotal} = 0; |
917 | 923 |
|
924 |
delete @{ $form }{ grep { m/^tax_\d+$/ } keys %{ $form } }; |
|
925 |
|
|
918 | 926 |
map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } |
919 | 927 |
qw(exchangerate creditlimit creditremaining); |
920 | 928 |
|
... | ... | |
954 | 962 |
$form->{exchangerate} = $form->{forex} if $form->{forex}; |
955 | 963 |
|
956 | 964 |
$form->{invdate} = $form->{transdate}; |
957 |
my $save_AR = $form->{AR}; |
|
958 |
check_name("customer"); |
|
959 |
$form->{AR} = $save_AR; |
|
965 |
|
|
966 |
$form->{invdate} = $form->{transdate}; |
|
967 |
|
|
968 |
my %saved_variables = map +( $_ => $form->{$_} ), qw(AR AR_amount_1 taxchart_1); |
|
969 |
|
|
970 |
&check_name("customer"); |
|
971 |
|
|
972 |
$form->{AR} = $saved_variables{AR}; |
|
973 |
if ($saved_variables{AR_amount_1} =~ m/.--./) { |
|
974 |
map { $form->{$_} = $saved_variables{$_} } qw(AR_amount_1 taxchart_1); |
|
975 |
} else { |
|
976 |
delete $form->{taxchart_1}; |
|
977 |
} |
|
960 | 978 |
|
961 | 979 |
$form->{invtotal} = |
962 | 980 |
($form->{taxincluded}) ? $form->{invtotal} : $form->{invtotal} + $totaltax; |
Auch abrufbar als: Unified diff
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.