Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 2fdcbcbd

Von Martin Helmling martin.helmling@octosoft.eu vor fast 8 Jahren hinzugefügt

  • ID 2fdcbcbdd7fb587f88adeb90c177b9194705bf2f
  • Vorgänger 5e9cefa2
  • Nachfolger 6fbc8268

BUG-Fix: FiBu/Dialogbuchungen: Steuerschlüssel nach Öffnen falsch

Nachdem eine Dialogbuchung mit dem Steuerschlüssel "USt-frei 0%" gebucht und geschlossen wurde,
wird nach dem öffnen derselben Buchung der Steuerschlüssel auf "Keine Steuer 0%" gesetzt.

Zum Einen wird hier nach den Schlüsseln gesucht, sondern 0 als Schlüssel angenommen.
Wie 2013 in Commit 0f8092f8 begonnen, ist die tax_id nicht zwingend 0.
Ebenso mus die txa_id für "USt-frei 0%" berücksichtigt werden sowie auch die EU.
Also nur dort berechnen wo Rate != 0 , derzeit bei taxkey 0,1,10 und 11

Zudem war bei der Vorauswahl der Steuer, die steuerfreien Namen nur mit zwei statt 5 Stellen hinter dem Komma,
d.h. es wurde keine Steuer vorselektiert, also dann der erste Eintrag "Keine Steuer 0%"

Unterschiede anzeigen:

bin/mozilla/gl.pl
42 42
use SL::IS;
43 43
use SL::PE;
44 44
use SL::ReportGenerator;
45
use SL::DBUtils qw(selectrow_query);
45
use SL::DBUtils qw(selectrow_query selectall_hashref_query);
46 46

  
47 47
require "bin/mozilla/common.pl";
48 48
require "bin/mozilla/reportgenerator.pl";
......
165 165
        $form->{totalcredit} += $ref->{amount};
166 166
        $form->{"credit_$i"} = $ref->{amount};
167 167
      }
168
      $form->{"taxchart_$i"} = "0--0.00";
168
      $form->{"taxchart_$i"} = $ref->{id}."--0.00000";
169 169
      $form->{"project_id_$i"} = $ref->{project_id};
170 170
      $i++;
171 171
    }
......
528 528
  my $creditcount = 0;
529 529
  my ($debitcredit, $amount);
530 530

  
531
  my $dbh = $form->dbconnect_noauto(\%myconfig);
532
  my ($notax_id) = selectrow_query($form, $dbh, "SELECT id FROM tax WHERE taxkey = 0 LIMIT 1", );
533
  my $zerotaxes  = selectall_hashref_query($form, $dbh, "SELECT id FROM tax WHERE rate = 0", );
534
  $dbh->disconnect;
535

  
531 536
  my @flds =
532 537
    qw(accno debit credit projectnumber fx_transaction source memo tax taxchart);
533 538

  
......
566 571
        $form->{debitlock} = 1;
567 572
      }
568 573
      if ($debitcredit && $credittax) {
569
        $form->{"taxchart_$i"} = "0--0.00";
574
        $form->{"taxchart_$i"} = "$notax_id--0.00";
570 575
      }
571 576
      if (!$debitcredit && $debittax) {
572
        $form->{"taxchart_$i"} = "0--0.00";
577
        $form->{"taxchart_$i"} = "$notax_id--0.00";
573 578
      }
574 579
      $amount =
575 580
        ($form->{"debit_$i"} == 0)
......
577 582
        : $form->{"debit_$i"};
578 583
      my $j = $#a;
579 584
      if (($debitcredit && $credittax) || (!$debitcredit && $debittax)) {
580
        $form->{"taxchart_$i"} = "0--0.00";
585
        $form->{"taxchart_$i"} = "$notax_id--0.00";
581 586
        $form->{"tax_$i"}      = 0;
582 587
      }
583 588
      my ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"});
584
      if ($taxkey > 1) {
589
      my $iswithouttax = grep { $_->{id} == $taxkey } @{ $zerotaxes };
590
      if (!$iswithouttax) {
585 591
        if ($debitcredit) {
586 592
          $debittax = 1;
587 593
        } else {
......
994 1000

  
995 1001
  my $dbh = $form->dbconnect_noauto(\%myconfig);
996 1002
  my ($notax_id) = selectrow_query($form, $dbh, "SELECT id FROM tax WHERE taxkey = 0 LIMIT 1", );
1003
  my $zerotaxes  = selectall_hashref_query($form, $dbh, "SELECT id FROM tax WHERE rate = 0", );
997 1004
  $dbh->disconnect;
998 1005

  
999 1006
  my @flds = qw(accno debit credit projectnumber fx_transaction source memo tax taxchart);
......
1050 1057
      $form->{"tax_$i"}      = 0;
1051 1058
    }
1052 1059
    my ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"});
1053
    if ($taxkey > 1) {
1060
    my $iswithouttax = grep { $_->{id} == $taxkey } @{ $zerotaxes };
1061
    if (!$iswithouttax) {
1054 1062
      if ($debitcredit) {
1055 1063
        $debittax = 1;
1056 1064
      } else {

Auch abrufbar als: Unified diff