Wie funktionieren die Buchungsgruppen?

Standardmäßig summiert das Plugin alle Buchungssätze, die einer Steuerklasse zugeordnet werden.

Aus den folgenden Artikeln:

  • Artikel 1, 19% USt, 8400, 50 EUR
  • Artikel 2, 19% USt, 8400 70 EUR
  • Artikel 3, 7% USt, 8300, 30 EUR

werden also zwei Buchungen erstellt:

  • Artikel 1/2, 19% USt, 8400, 120 EUR
  • Artikel 3, 7% USt, 8300, 30 EUR

Was ist aber, wenn ich dennoch einzelne Buchungen erstellen möchte - z.B., da ich unterschiedliche Kostenstellen abbilden will?

Dafür steht die Funktion Buchungsgruppen zur Verfügung.

Artikel einer Buchungsgruppe zuordnen

In jedem Produkt (WooCommerce > Produkte > Produkt auswählen) kann im Reiter "Erweitert" die entsprechende Buchungsgruppe angegeben werden. Die Buchungsgruppe kann frei definiert werden. Alle Artikel mit derselben Buchungsgruppe werden zu einem Posten zusammengefasst.

Unterschiedliche Platzhalter (z.B. Kostenstelle) für unterschiedliche Artikel hinterlegen

Sollen für jede Buchungsgruppe unterschiedliche Platzhalter verwendet werden? Dann können in den Plugin-Einstellungen auch unterschiedliche Platzhalter pro Gruppe festgelegt werden. Dazu müssen zunächst die Buchungsgruppen in den Plugin-Einstellungen (Buchhaltung > Einstellungen) erstellt werden. Anschließend füllt man die Platzhalter nach Wunsch.

Artikel dynamisch einer Buchungsgruppe hinzufügen (z.B. nach Kategorie oder Meta-Daten)

Keine Lust, für jeden Artikel eine eigene Buchungsgruppe zu hinterlegen? Dann lässt sich der folgende Filter/Code verwenden:

add_filter( 'wcdtvfe_line_item_accounting_group', 'mn_item_accounting_groups', 10, 2 );

function mn_item_accounting_groups( $accounting_group, $line_item ) { 
  return "1"; //Freitext: z.B. auch "bugu1" oder einfach der Kategorie-Slug...
}

Damit kann dann pro Artikel die entsprechende Buchungsgruppe im Code zurückgegeben werden. z.B. basierend auf Kostenstellen in den Meta-Daten des jeweiligen Artikels, auf Basis der Produkt-Kategorie und so weiter.

Übrigens müssen keine Buchungsgruppen in den Einstellungen angelegt werden. Die sind nur für die Kunden da, die keine Lust auf Code haben. Die Buchungsgruppen können einfach "nur" im Code übergeben werden und dann wie im nächsten Beispiel entsprechend abgefragt/in die Buchungssätze eingebaut werden. Heißt: Wenn die Buchungsgruppe "gruppe-03" nicht in den Einstellungen angelegt ist, wird das Plugin sie dennoch verwenden. Einige Kunden ziehen sich so z.B. einfach die Kostenstelle aus den Produkt-Kategorien und übergeben sie dann an den entsprechenden Filter (siehe nächster Abschnitt).

Ich will nicht nur die Platzhalter bearbeiten, sondern auch die Konten!

In den Einstellungen lässt sich nur ein Erlöskonto pro Steuerklasse-Land-Kombination hinterlegen. Alles andere wird schnell kompliziert, würde die Einstellungen aufblähen und wäre so spezifisch, dass es den meisten Kunden nicht weiterhelfen würde.

Mit etwas Code lässt sich aber auch das Konto verändern. Dazu gibt es die entsprechenden Filter bei der Erstellung der jeweiligen Buchungssätze.

Im folgenden Beispiel wird sowohl das Erlöskonto wie auch die Kostenstelle von der Buchungsgruppe abhängig gemacht.

add_filter( 'wcdtvfe_create_receivables_record', 'mn_receivables_records_accounting_groups_cost_centers', 10, 4 );

function mn_receivables_records_accounting_groups_cost_centers( $accounting_record_data, $order_id, $tax_rate_id, $accounting_group ) {
  if( $accounting_group === "bugu1" ) {
    $accounting_record_data['037_cost_centre_1'] = $accounting_group; // To use the accounting group name as cost centre
    $accounting_record_data['008_credit'] = '8401'; // To allocate Kontennummer 8401
  }
  return $accounting_record_data;
}

Sie haben Fragen oder möchten ein Angebot anfordern?

Jetzt Kontakt aufnehmen
crosslist