Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 8f8ad003

Von Moritz Bunkus vor mehr als 15 Jahren hinzugefügt

  • ID 8f8ad003294a3a8277500ca7ec436f9f92999de2
  • Vorgänger 1c296e05
  • Nachfolger 09221829

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.

Unterschiede anzeigen:

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