Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 543d7822

Von G. Richardson vor mehr als 5 Jahren hinzugefügt

  • ID 543d78225ec609e9f67ecb1544e135ca88149234
  • Vorgänger c3500451
  • Nachfolger cdd986ac

Spalte taxnumber aus Tabelle tax entfernt

tax.taxnumber war ein redundanter Eintrag, und entsprach dem Wert von
chart.accno aus tax.chart_id.

Z.B. in SKR04 hatte Steuerschlüssel 3 (Umsatzsteuer 19%) die taxnumber
1776 und die chart_id 775 (chart mit id 775 ist das Konto 1776).

Ein Problem dabei ist, daß wenn man in den Konteneinstellungen die
Kontonummer von 1776 ändert, dies nicht automatisch in tax.taxnumber mit
aktualisiert wurde.

Im Code wurde taxnumber v.A. verwendet, um bei Belegen die Steuern zu
gruppieren, mit der taxnumber als Schlüssel.

taxnumber wurde nun also entfernt, und obwohl zum Gruppieren der Steuern
immer noch diese Kontonummer verwendet wird, wird diese Kontonummer
nicht mehr zum Suchen des entsprechenden Taxeintrags verwendet, sondern
die Suche passiert indirekt über die chart_id.

Das ganze System basiert derzeit darauf, daß es für jeden tax-Eintrag ein
eindeutiges Automatikkonto gibt, in der Praxis muß dies aber nicht der
Fall sein!

Unterschiede anzeigen:

SL/OE.pm
1177 1177
      # get tax rates and description
1178 1178
      my $accno_id = ($form->{vc} eq "customer") ? $ref->{income_accno} : $ref->{expense_accno};
1179 1179
      $query =
1180
        qq|SELECT c.accno, t.taxdescription, t.rate, t.taxnumber | .
1181
        qq|FROM tax t LEFT JOIN chart c on (c.id = t.chart_id) | .
1180
        qq|SELECT c.accno, t.taxdescription, t.rate, c.accno as taxnumber | .
1181
        qq|FROM tax t | .
1182
        qq|LEFT JOIN chart c on (c.id = t.chart_id) | .
1182 1183
        qq|WHERE t.id IN (SELECT tk.tax_id FROM taxkeys tk | .
1183 1184
        qq|               WHERE tk.chart_id = (SELECT id FROM chart WHERE accno = ?) | .
1184 1185
        qq|                 AND startdate <= $transdate ORDER BY startdate DESC LIMIT 1) | .
......
1574 1575
    push(@{ $form->{TEMPLATE_ARRAYS}->{taxrate_nofmt} },  $form->{"${item}_rate"} * 100);
1575 1576
    push(@{ $form->{TEMPLATE_ARRAYS}->{taxnumber} },      $form->{"${item}_taxnumber"});
1576 1577

  
1577
    my $tax_obj     = SL::DB::Manager::Tax->find_by(taxnumber => $form->{"${item}_taxnumber"});
1578
    my $tax_objs     = SL::DB::Manager::Tax->get_objects_from_sql(
1579
      sql  => 'SELECT * from tax where chart_id = (SELECT id FROM chart WHERE accno = ?)',
1580
      args => [ $form->{"${item}_taxnumber"} ]
1581
    );
1582
    my $tax_obj;
1583
    if ( $tax_objs ) {
1584
      $tax_obj     = $tax_objs->[0];
1585
    }
1578 1586
    my $description = $tax_obj ? $tax_obj->translated_attribute('taxdescription',  $form->{language_id}, 0) : '';
1579 1587
    push(@{ $form->{TEMPLATE_ARRAYS}->{taxdescription} }, $description . q{ } . 100 * $form->{"${item}_rate"} . q{%});
1580 1588
  }

Auch abrufbar als: Unified diff