#

Cobukas - Dokumentation zur Portierung

 
 


Verarbeiten eines Belegs
========================

 siehe auch weiterführend:
   ->31_verbuchenUmsatzsteuer
   ->32_loeschenBelegzeile
   ->33_nennenGegenkonto
   ->35_buchenBeleg.htm
   ->36_ustKennziffer.htm

Grundsätzliches
---------------

Der Kern der Buchführungsarbeit ist die Erfassung der Belege, also der
wirtschaftlichen Veränderungen, die dokumentiert und ausgewertet werden
sollen.

Mit der Anwahl des Menüpunktes '3 Buchen' erscheint auf dem Bildschirm ein
Formular zur Erfassung des Belegs. Dieses Formular besteht aus

   - einer Kopfzeile mit
       - BelegNummer,
       - Datum und
       - Erläuterendem Text

   - mehreren (= m) Buchungszeilen mit
       - Kontonummer (und -namen),
       - Steuerkennziffer und
       - Betrag.

In der Grundbuchdatei besteht der Beleg nur aus den m Buchungszeilen. Die
Angaben der Kopfzeile wiederholen sich in jeder dieser Buchungszeilen. 

  Welche der Buchungszeilen einen Beleg bilden erkennt das Programm an der
  Belegnummer, dem ersten Element in der Buchungszeile. 

Eine Buchungszeile hat aktuell') folgende Struktur:

 103  02 01 2005  7030  2800 2     -100.00      -16.00 0   0 0 0  0  0  0 bG
 103  02 01 2005  2600  2800 0      -16.00        0.00 0   0 0 0  0  0  0 bG
 103  02 01 2005  2800  7030 0      116.00        0.00 0   0 0 0  0  0  0 bG

 01. '103'          nr - Belegnummer
 02. '02 01 2005'   datum - Datum: Tag Monat Jahr  
 03. 'bG'           belegGrund - begründender Text

 04. '7030'         Kontonummer
 05. '2800'         Kontonummer des Gegenkontos
 06. '2'            UmsatzsteuerKennziffer
 07. '-100.00'      Betrag, netto - Der Eingabebetrag war: 116.00
 08. '-16.00'       Steuerbetrag, der auf dem zu '2' gehörigen UStKonto verbucht wird
 09. '0'            journal 
 10. '0'            ausgleich 
 11. '0'            auszugGedr
 12. '0'            mahnStatus
 13. '0'            obsolet2 (Mahndatum: Tag)
 14. '0'            obsolet3 (Mahndatum: Monat)
 15. '0'            obsolet4 (Mahndatum: Jahr)

Der Datensatz 'Buchungszeile (bZeile)' hat noch drei weitere Elemente:

 Variable:      Wird initalisiert durch:

 16. ausglVorl  := ausgleich
 17. ktoText    := plan.arr[woKtoImPlan]^.text
 18. ustRel     := plan.arr[woKtoImPlan]^.ustRel


Zusammengehörigkeit von Buchungszeilen: USt + Gegenkonto
--------------------------------------------------------

Die Frage, warum und wie Buchungszeilen zusammenhängen, hat Bedeutung
wenn
  - USt/VSt im Spiel ist und
  - wenn in der Buchungszeile das Gegenkonto vermerkt werden soll.

Bei Buchungen mit Umsatz- oder Vorsteuer ist also immer eine zweite Zeile im
Spiel. Deshalb muss

  vor Eingabe des Betrages festgestellt werden, ob noch
    a) überhaupt eine noch leere Zeile verfügbar ist  -> sonst Abbruch
    b) die nächste Zeile leer ist  -> sonst leere Zeile einsetzen

  beim Löschen eines Betrages mit Mehrwertsteuer auch die nächste Zeile
  gelöscht werden.

  Prüfen, ob dieser Betrag eine Steuerbuchung ist, der mit der vorhergenden Zeile
  festverbunden ist:

    Umsatzsteuerkonto kann grundsätzlich nicht gelöscht werden.
    __(Bei der Umsatzsteuer besteht eine strikte Koppelung, damit die
       Verprobung -Gesamtumsatz x Steuersatz- überhaupt korrekt sein kann.)

    Vorsteuer dann nicht, wenn auch die Zeile vorher eine VSt-Kennziffer hat
    __(Bei Vorsteuer kann Rechnungsbetrag und Vorsteuerbetrag separat
       eingegeben worden sein.)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

') Aktuell, weil es denkbar ist, dass Elemente, die im Laufe der
Cobukas-Entwicklung obsolet geworden sind, der Klarheit halber ausgemerzt
werden. Da das Datumsformat geändert wurde, müssen die alten Journal-Dateien
(cbk3buch.kng) umgesetzt werden, was aber keinerlei Aufwand oder Problem ist.
In diesem Zug könnten dann auch die obsoleten Element "verschluckt" werden.

Andererseits: Wenn man schon diese 'dummy'-Elemente hat, könnte man diese
Positionen für Elemente reservieren, die man später vielleicht einmal
einführen möchte. Dann müsste man die alten Dateien nicht umsetzen.

Auf jeden Fall lassen, bis Programm zu Ende portiert.
Vor dem Entfernen mit Entwicklern sprechen!