Lua-Skript |
Top Previous Next |
Mit der Skriptsprache Lua lassen sich, in Zusammenarbeit mit den vom Programm in Lua bereit gestellten Funktionen, Buchungen benutzerdefiniert importieren, exportieren, bearbeiten und ausdrucken. In Verbindung mit den frei im Internet erhältlichen Lua-Erweiterungen, die sich einfach einbinden lassen, ist im Prinzip jede denkbare Ausgabe möglich.
Dialog 'Lua-Skript-Verwaltung': Mit dem Dialog können die Skripte bearbeitet und ausgeführt werden.
Die Skript-Dateien müssen sich im Unterordner 'luascript' abgehend vom Datenordner in einem der folgenden Unterordner befinden: import: Skripte, die zum Import von Daten dienen. export: Skripte, die zum Export von Daten dienen. edit: Skripte, die zum Bearbeiten von Daten dienen. (Funktionen dazu sind noch nicht komplett) print: Skripte, die zum Drucken von Daten dienen. (Funktionen dazu sind noch nicht komplett) other: Andere Skripte. (Funktionen dazu sind noch nicht komplett)
Die Ordner lassen sich im Dialog mit dem Schalter Anzeigen öffnen. Sofern sich im ausgewählten Ordner .lua-Dateien befinden, werden diese unter Auswahl zum Bearbeiten oder Ausführen aufgelistet. Damit unter Beschreibung eine Beschreibung erscheint, sollte am Anfang der .lua-Datei ein Kommentar eingefügt werden, z.B. --[[ Dies ist ein Beispielskript zum Importieren von Buchungsdaten aus einer Textdatei, die u.A. auch Splitt-Buchungen enthält. Bitte importieren Sie die Beispiel-Daten nicht in eine bestehende Buchhaltung, sondern legen Sie zum Testen der Funktionen eine separate Buchhaltungsdatei an. ]]
Mit dem Schalter Bearbeiten mit kann ein Editor ausgewählt werden, standardmässig ist dies 'notepad', es ist jedoch dringend zu empfehlen sich einen Editor wie z.B. 'notepad++' zu installieren und diesen mit dem Schalter Editor hinzufügen einzutragen und dann den Listeneintrag Anderer Editor zu wählen. Wichtige Tastenkombinationen für 'notepad++': Block-Einrücken mit TAB. Block zurück einrücken: UMSCHALT+TAB. Zeile loeschen UMSCHALT+STRG+DEL Wichtig: Es muss im Editor folgende Kodierung (Encoding) eingestellt sein: UTF-8 ohne BOM.
Mit dem Schalter Skript ausführen kann das Skript gestartet werden, es ist evtl. sinnvoll im Skript ein Abfragefenster einzubauen, das den Start bestätigt. Bitte testen Sie neue Skripte zuerst an versuchsweise angelegten Firmen und nicht an Echtfällen. Durch Einfügen der Funktion set_restore_mode (s.u.) vor der ersten Änderungsaktion kann der aktuelle Zustand der Buchhaltungsdatei zwecks Wiederherstellung gesichert werden. Die zuletzt importierten Buchungen lassen sich außerdem auch wie hier beschrieben entfernen.
Hinweise zu Lua:
Umlaute und Sonderzeichen: Lua erwartet alle Texteingaben als UTF-8, sollten Daten mittels der Lua-eigenen Dateifunktionen gelesen werden, die nicht im UTF8-Format vorliegen, müssen diese mit der Funktion to_utf8 konvertiert werden. Lua selbst verwaltet die Daten intern mit 8-Bit-Zeichen, deswegen liefert z.B. die Funktion string.len("Ä") den Wert 2 zurück. Um Umlaute ohne komplizierten Code richtig interpretieren zu können, sollten anstelle der Standard-Lua-String-Funktionen die Unicode-Funktionen der Lua-Selene-Bibliothek benutzt werden: Obsolet bei Verwendung von Unicode: string.byte string.char string.dump string.find string.format string.gmatch string.gsub string.len string.lower string.match string.rep string.reverse string.sub string.upper Neu: unicode.utf8.byte unicode.utf8.char unicode.utf8.dump unicode.utf8.find unicode.utf8.format unicode.utf8.gmatch unicode.utf8.gsub unicode.utf8.len unicode.utf8.lower unicode.utf8.match unicode.utf8.rep unicode.utf8.reverse unicode.utf8.sub unicode.utf8.upper
Funktionsreferenz der .taxpool-Lua-Bibilothek: Um die Lua-internen Funktionen und diejenigen anderer Bibliotheken von denen von Taxpool®-Buchhalter abzugrenzen, muss die Bibliotheksvorsilbe taxpool. verwendet werden.
Datensicherung des aktuellen Buchhaltungsdokuments erzeugen: set_restore_mode Beschreibung: Sichert das Buchhaltungsdokument einmalig, ein erneuter Aufruf wird danach ignoriert. Optional kann es dann später komplett in den Zustand von vor dem ersten Skriptaufruf wiederhergestellt werden. Parameter (optional): 0, Es wird nach dem Sichern kein Meldungsfenster ausgegeben. 1, (Standard), es wird nach dem Sichern ein Meldungsfenster ausgegeben. Rückgabewert: true, falls der Aufruf erfolgreich war, ansonsten false.
Vorgang starten, beenden: start_transaction Beschreibung: Startet einen neuen Vorgang. Diese Anweisung sollte am Anfang einer Lua-Datei stehen. Parameter (optional): Protokoll-Level. Typ Integer. Das Protokoll wird nach dem Beenden des Scripts angezeigt, sofern es Einträge enthält. 0, es wird nicht protokolliert. 1, es werden nur Fehler protokolliert. 2, (Standard), es werden alle Informationen protokolliert.
end_transaction Beschreibung: Beendet einen Vorgang. Diese Anweisung sollte am Ende einer Lua-Datei stehen. Parameter 1: (optional): Protokoll-Level. Typ Integer. 1 (Standard), wenn für neu angelegte Buchungen ein Auswahldialog erscheinen soll, in dem die zu erzeugenden Buchungen ausgewählt (Mehrfachauswahl) werden können, ansonsten 0. Hinweis: Wird der Auswahldialog nicht mit OK beendet, werden alle Buchungen verworfen. Parameter 2: (optional): Importmarkierung setzen. Typ Integer. 1 (Standard), wenn für neu angelegte Buchungen die Markierung 'Zuletzt importiert' gesetzt und für alle bisherigen Buchungen entfernt werden soll , ansonsten 0. Hinweis: Die Markierung kann benutzt werden, um nur die zuletzt importierten Buchungen zu löschen.
Hilfsfunktionen: message_box Beschreibung: Öffnet einen Dialog und gibt einen Wert zurück. Parameter 1: Der Dialogtext. Parameter 2: Der Dialogtyp, eine Kombination der nachfolgenden Werte. DLG_OK DLG_YES DLG_NO DLG_CANCEL DLG_QUESTION DLG_INFO Rückgabewert: DLG_OK oder DLG_YES oder DLG_NO oder DLG_CANCEL. Beispiel: if taxpool.message_box("Wollen Sie den Vorgang fortsetzen?", bit32.bor(taxpool.DLG_YES, taxpool.DLG_NO, taxpool.DLG_QUESTION))==taxpool.DLG_NO then return end
print_log Beschreibung: Schreibt einen Text in die Protokolldatei, sofern start_transaction nicht mit dem Parameter 0 aufgerufen wurde. Parameter: Der Text, der protokolliert werden soll.
get_script_dir Beschreibung: Liefert den Ordner, in dem sich die aktuelle Skriptdatei befindet, als Zeichenkette zurück.
to_utf8 Beschreibung: Gibt eine Zeichenkette zurück, bei der die Eingabezeichenkette in das UTF8-Format konvertiert wurde. Dies ist notwendig, wenn Daten aus einer Datei gelesen werden, die nicht im UTF8-Format vorliegen.
tokenize Beschreibung: Teilt eine Zeichenkette in Sub-Zeichenketten auf, die durch einen Textseparator getrennt sind und gibt diese in einer Tabelle zurück. Mit der Funktion unpack kann die Tabelle als einzelne Parameter zurückgeliefert werden. Parameter: Das Zeichen, das Textseparator fungiert. Beispiel: local t=taxpool.tokenize("A;B;C", ";") --Einzelne Sub-Zeichenketten local a, b, c=table.unpack(t)
trim Beschreibung: Entfernt alle Leerzeichen, oder alle Leerzeichen und alle nicht-druckbaren Zeichen links und rechts der übergebenden Zeichenkette und gibt das Ergebnis zurück. Parameter 1: Die Eingabe-Zeichenkette. Parameter 2 (optional): 0=Nur Leerzeichen entfernen, 1 (Standard) Leerzeichen und nicht-druckbare Zeichen entfernen. Beispiel: local s=taxpool.trim(" \r\nAAA\r\n ") -- Erzeugt: 'AAA'
read_dir Beschreibung: Liest einen Ordner ein und liefert die Dateinamen zurück. Parameter 1: Der Ordner, der eingelesen werden soll. Parameter 2 (optional): Die Dateiendungen, die berücksichtigt werden sollen, getrennt durch ein Semikolon. Standard: *.* Parameter 3 (optional): 1 (Standard) Unterordner einlesen, ansonsten 0. Beispiel: taxpool.start_transaction(1) t=taxpool.read_dir("y:\\temp\\", "*.*") for i, v in ipairs(t) do taxpool.print_log(v) end taxpool.end_transaction(1,1)
is_creditor Beschreibung: Gibt true zurück, sofern es sich um einen Kreditor handelt, ansonsten false. Parameter: Eine Kontonummer, die überprüft werden soll.
is_debitor Beschreibung: Gibt true zurück, sofern es sich um einen Debitor handelt, ansonsten false. Parameter: Eine Kontonummer, die überprüft werden soll.
add_debitor_entry, add_creditor_entry Beschreibung: Erzeugt einen neuen Kunden oder Lieferanten und gibt dessen Zugriffsnummer zurück. Bei einem Fehler werden -1 und eine Fehlermeldung zurückgeliefert. Parameter 1: Eine Kontonummer für Kunden 10000-69999 für Lieferanten 70000-99999. Parameter 2 (optional): Eine Firmenbezeichnung. local deb, err=taxpool.add_debitor_entry(12000, "KundeX")
set_progress Beschreibung: Funktionen für eine Fortschrittsanzeige. Parameter 1: 1: Die Fortschrittsanzeige wird gestartet. Die Prozentwerte werden manuell gesetzt. 2: Die Fortschrittsanzeige wird gestartet. Die Prozentwerte werden durch einen Timer gesetzt. 3: Die Fortschrittsanzeige wird beendet. 4: Es wird ein manueller Prozentwert (0-100) gesetzt (Parameter 2). 5: Es wird ein Text gesetzt (Parameter 2). 6: Die Fortschrittsanzeige wird verborgen. 7: Die Fortschrittsanzeige wird angezeigt.
get_day, get_month, get_year Beschreibung: Extrahiert den Tag, den Monat oder das Jahr aus einem Datumswert und gibt ihn zurück. Parameter: Entweder eine Datums-Zeichenkette oder ein Zahlenwert im internen Datumsformat (Jahr*10000+Monat*100+Tag). Beispiel: local x=taxpool.get_month("1.1.2014") local x=taxpool.get_month(20140101)
get_date Beschreibung: Erzeugt ein Datum im internen Datumsformat (Jahr*10000+Monat*100+Tag) und gibt es zurück. Bei einem ungültigem Datum wird -1 zurückgeliefert. Parameter: Entweder eine Datums-Zeichenkette oder die Zahlenwerte für den Tag, den Monat und das Jahr. Beispiel: local x=taxpool.get_date("1.1.2014") local x=taxpool.get_date(1,1,2014)
is_equal Beschreibung: Vergleicht zwei Zahlen oder zwei Zeichenketten und gibt true zurück sofern diese gleich sind, ansonsten false. Diese Funktion muss benutzt werden, wenn Buchungsbeträge verglichen werden. Der Vergleich == kann ansonsten zu einem falschen Ergebnis führen. Parameter1 : Zwei Zahlen oder Zwei Zeichenketten. Parameter2 (optional) : Bei Zahlen: Die Anzahl der Stellen, auf die beim Vergleich gerundet werden soll (Standard=2). Bei Zeichenketten: 1, wenn Groß-Kleinschreibung ignoriet werden soll, ansonsten 0. Beispiel: if taxpool.is_equal(var1, var2, 2) then taxpool.print_log("identisch") end
get_company_taxation_type Beschreibung: Liefert den Versteuerungstyp der Firma für das übergebene Jahr zurück. Parameter: Das Jahr, für den der Versteuerungstyp ermittelt werden soll. Rückgabewerte: taxpool.IST_VERSTEUERUNG oder taxpool.SOLL_VERSTEUERUNG Bei einem Fehler werden -1 und eine Fehlermeldung zurückgeliefert. Beispiel: local t, err=get_company_taxation_type(2014) if t==-1 then taxpool.print_log("Fehler="..err) else if t==taxpool.taxpool.IST_VERSTEUERUNG then end end
get_std_account_no_by_taxinfo Beschreibung: Liefert ein Standardkonto zu einer Steuerinfo zurück. Parameter 1: Die Art der Steuerinfo. taxpool.TAXINFO_STEUERSATZ oder taxpool.TAXINFO_STEUERSATZ_ID oder taxpool.TAXINFO_SCHLUESSEL. taxpool.TAXINFO_TAXRATE oder taxpool.TAXINFO_TAXRATE_ID oder taxpool.TAXINFO_TAX_KEY. Parameter 2: Die Art des Kontos. taxpool.AUSGABE oder taxpool.EINNAHME. taxpool.EXPENSE oder taxpool.INCOME. Parameter 3: Ein Datum, entweder eine Datums-Zeichenkette oder ein Zahlenwert im internen Datumsformat (Jahr*10000+Monat*100+Tag). Parameter 4: Bei taxpool.TAXINFO_STEUERSATZ der Steuersatz, bei taxpool.TAXINFO_SCHLUESSEL der Steuerschlüssel. Rückgabewerte: Ein Konto aus dem Kontenrahmen, das zu den Steuerinformationen passt. Bei einem Fehler werden -1 und eine Fehlermeldung zurückgeliefert. Beispiel: local konto, err=get_std_account_no_by_taxinfo(taxpool.TAXINFO_SCHLUESSEL, taxpool.EINNAHME, "1.1.2014", 46) if konto==-1 then taxpool.print_log("Fehler="..err) end
Konfigurationsdialoge: get_options Beschreibung: Öffnet einen Dialog mit Einstellungen, z.B. zum Import von Dateien, und gibt die eingestellten Werte zurück. Parameter 1: Dialog-Typ. Typ Integer. Mögliche Werte: CONFIG_IMPORT_BOOKINGS_TEXT: Es wird ein Dialog zum Import von Buchungen aus einer Textdatei geöffnet. Parameter 2 (optional): Ein Dateiname der Textdatei. Bei Leereingabe wird der zuletzt benutzte Dateiname im Dialog vorgegeben. Parameter 3 (optional): Der Spaltenseparator. Typ Zeichenkette, z.B. ';'. Wird der Parameter nicht angegeben wird der zuletzt für die ausgewählte Datei benutzte Wert vorgegeben. Parameter 4 (optional): 1, falls die erste Zeile die Feldtitel enthält, ansonsten 0. Wird der Parameter nicht angegeben wird der zuletzt für die ausgewählte Datei benutzte Wert vorgegeben. Parameter 5 (optional): 1, falls der Text im UTF8-Format gespeichert ist, ansonsten 0. Wird der Parameter nicht angegeben wird der zuletzt für die ausgewählte Datei benutzte Wert vorgegeben. Hinweis: Textdateien, die importiert werden sollen, sollten am besten im UTF8-Format vorliegen, ansonsten müssen die Inhalte mit der Funktion to_utf8 konvertiert werden, damit es keine Umlautprobleme gibt. Jede Textverarbeitung, selbst 'notepad.exe' sieht i.d.R. ein Abspeichern als UTF8 vor.
Rückgabewerte: 1. Rückgabewert: true, falls der Aufruf erfolgreich war, ansonsten false. 2. Rückgabewert: Den ausgewählten Dateinamen, falls der Aufruf erfolgreich war, ansonsten eine Fehlermeldung. 3. Rückgabewert: Den ausgewählten Spaltenseparator als Zeichenkette. 4. Rückgabewert: true, falls die erste Zeile die Feldtitel enthält, ansonsten false. 5. Rückgabewert: true, falls der Text im UTF8-Format gespeichert ist, ansonsten false.
Beispiel: local res, filename, delim, has_fieldnames, is_utf8=taxpool.get_options(taxpool.CONFIG_IMPORT_BOOKINGS_TEXT, taxpool.get_script_dir().."beispiel_daten1.csv", ";", 1, 1)
if not res then -- in filename wird im fehlerfall eine fehlerausgabe gespeichert taxpool.print_log(filename) return end
Neue Buchung erzeugen: add_booking_entry Beschreibung: Erzeugt eine neue Buchung im Speicher und liefert eine eindeutige Zugriffsnummer zurück, die der nachfolgenden Bearbeitung dient. Die Funktion end_transaction speichert die neu erzeugten Buchungen später in der Datenbank, ungültige Buchungen, bei denen Eingabeparameter falsch oder unvollständig gesetzt wurden, müssen manuell nachbearbeitet werden und werden in Auswertungen ignoriert. Beispiel: local buchung=taxpool.add_booking_entry()
Buchungen auflisten: get_bookings Beschreibung: Liefert die Buchungen eines Dokumentes als Tabelle zurück. Dabei können optional verschiedene Filter festgelegt werden. Parameter 1 (optional): Typ Integer. 0, (Standard), es werden nur bereits gebuchte Buchungen gelistet. 1, es werden nur Buchungen gelistet, die mittels Script neu erstellt, aber noch nicht gebucht wurden. Parameter 2 (optional) : Ein optionales Belegdatum, ab dem Buchungen berücksichtigt werden. Typ Zeichenkette. Parameter 3 (optional): Ein optionales Belegdatum, bis zu dem Buchungen berücksichtigt werden. Typ Zeichenkette. Datumsangaben müssen im Bereich vom 1.1.2002 bis zum 31.12.2037 sein.
Auswahl nach Buchungseigenschaften (s.u.) -1 bedeutet, dass kein Filter gesetzt wird: Die abgefragten Eigenschaften müssen mit der Funktion bit32.bor() addiert werden, sofern es sich um mehr als eine Eigenschaft handelt. Parameter 4 (optional, Standard=-1): Eine Auswahl erfolgt, sofern nur einer der abgefragten Werte vorhanden ist. Parameter 5 (optional, Standard=-1): Eine Auswahl erfolgt, sofern alle abgefragten Werte vorhanden sind. Parameter 6 (optional, Standard=-1): Eine Auswahl erfolgt, sofern keiner der abgefragten Werte vorhanden ist. Parameter 7 (optional, Standard=-1): Eine Auswahl erfolgt, sofern die abgefragten Werte in der Kombination nicht vorhanden sind.
Parameter 8 (optional) : Ein optionaler Kontenfilter von Konten, die im Soll oder Haben enthalten sein müssen. Typ Zeichenkette. Parameter 9 (optional): Ein optionaler Negativ-Kontenfilter, eine Auswahl erfolgt, sofern keines der Konten im Soll oder Haben enthalten ist. Typ Zeichenkette. Im Kontenfilter werden die einzelnen Konten mittels eines Kommas getrennt, Bereiche werden mit einem Minuszeichen angegeben. Beispiel: 1200,1000,8400-8430 wählt die Konten 1200 und 1000 und alle vorhandenen Konten zwischen 8400 und 8430 aus.
Parameter 10 (optional): Es erscheint ein Auswahldialog, in dem die Einträge anschließend noch manuell ausgewählt werden können.
Rückgabewerte: Eine Tabelle mit den Zugriffsnummern der gefundenen Buchungen.
Beispiel: --Alle Buchungen im Stapel von 2012, ausgenommen Splitt-Buchungen und ungueltige Buchungen local t=taxpool.get_bookings(0, "1.1.2012", "31.12.2012", taxpool.BES_STAPEL, -1, bit32.bor(taxpool.BES_UNGUELTIG, taxpool.BES_SPLIT), -1) taxpool.taxpool.print_log(#t.." Datensaetze")
for i=1,#t do local res, data=taxpool.get_booking_entry_field(t[i], taxpool.BEF_BELEGDATUM, taxpool.AS_STRING) if res then taxpool.taxpool.print_log("Belegdatum="..data) end end
Inhalte von Buchungen: get_booking_entry_field Beschreibung: Liefert den Inhalt eines oder mehrerer Datenfelder einer Buchung. Parameter 1: Die Zugriffsnummer einer Buchung. Typ Integer. Parameter 2: Der Feldname. Typ Konstante (siehe unten). Parameter 3: Zusatzoptionen für den Datentyp und die Formatierung des Rückgabewerts. Die Zusatzoptionen müssen mit der Funktion bit32.bor() addiert werden, sofern es sich um mehr als eine Eigenschaft handelt:
AS_NUMBER: Es wird eine Zahl zurückgegeben, sofern dies möglich ist. Bei Datumswerten wird das Datum als 10000*Jahr+100*Monat+Tag berechnet.
AS_STRING: (Standard), alle Inhalte, auch diejenigen von Zahlenfeldern werden in eine Zeichenkette umgewandelt.
DECIMAL_SEPARATOR: Zahlen werden mit Tausenderpunkten versehen, nur in Verbindung mit AS_STRING.
RETURN_ID: Es wird die interne Datenbank-ID zurückgegeben, dies wird z.B. beim Steuersatz benutzt.
LOCALE: Zahlen werden landestypisch formatiert, nur in Verbindung mit AS_STRING. Bei einem Bruttobetrag von "1.23" liefert die Funktion in diesem Fall den Wert "1,23" ansonsten "1.23".
BOOL_AS_TEXT: Logische Felder werden nicht als 0 oder 1, sondern als "Ja" oder "Nein" zurückgegeben, nur in Verbindung mit AS_STRING.
Rückgabewerte: 1. Parameter: true oder false bei einem Fehler. 2. Parameter: bei true die Feldinhalte, bei false ist im ersten Feldinhalt eine Fehlermeldung enthalten.
Beispiel: local res, brutto, belegdatum, bt=taxpool.get_booking_entry_field(i, taxpool.BEF_BRUTTO, bit32.bor(taxpool.AS_STRING, taxpool.LOCALE, taxpool.DECIMAL_SEPARATOR), taxpool.BEF_BELEGDATUM, taxpool.AS_STRING, taxpool.BEF_BUCHUNGSTEXT, taxpool.AS_STRING )
Feldnamen zu Parameter 2: Es kann sowohl der englische als auch der deutsche Name benutzt werden.
BEF_ID: Die interne ID der Buchung. BEF_BELEGDATUM: Das Belegdatum. BEF_AENDERUNGS_DATUM: Das Änderungsdatum. BEF_BUCHUNGSPERIODE: Die Buchungsperiode (-1, falls nicht zugewiesen).
BEF_BUCHUNGSTEXT: Der Buchungstext. BEF_BELEG: Der komplette Belegtext, z.B. 'Bank-0001'. BEF_BELEGNUMMERN_ZAEHLER: Der interne Zahlenwert des Belegs, z.B. 1. BEF_BELEGNUMMERN_KREIS: Der Belegkreis des Belegs, z.B. 'Bank'. BEF_BELEGNUMMERN_KREIS_ID: Die interne ID des Belegkreises. BEF_BRUTTO: Der Bruttobetrag. BEF_NETTO: Der Nettobetrag.
BEF_STEUERSATZ: BEF_STEUERSATZ_SOLL: BEF_STEUERSATZ_HABEN: Gibt den internen Steuersatz (nicht den Prozentsatz) entweder als ID zurück (Parameter 3 ist 1) oder den Namen des Steuersatzes als Zeichenkette (Parameter 3 ist 0). Jeder Steuersatz hat im aktuellen Dokument eine eindeutige ID, diese ist im Verwaltungsdialog der Steuersätze im Eingabefeld Interne ID: ablesbar. Hinter einer ID verbergen sich sämtliche Einstellungen des entsprechenden Steuersatzes. BEF_STEUERSATZ_ID BEF_STEUERSATZ_SOLL_ID BEF_STEUERSATZ_HABEN_ID Die interne ID des Steuersatzes.
BEF_STEUERSATZ_SOLL und BEF_STEUERSATZ_HABEN werden beim Auslesen des Wertes mit BEF_STEUERSATZ interpretiert, beim Setzen des Wertes kann ein Vorschlag gegeben werden, welches Konto den Steuersatz enthält, sofern dies aus den Kontentypen nicht eindeutig hervorgeht.
BEF_UST_NICHT_FAELLIG: 1, sofern es sich um nicht fällige Umsatzsteuer handelt, ansonsten 0. BEF_SOLLKONTO: Die Soll-Kontonummer. BEF_HABENKONTO: Die Haben-Kontonummer. BEF_UNGUELTIG: : 1, sofern es sich um ein ungültige Buchung handelt, ansonsten 0. Ungültige Buchungen können beim Import entstehen, befinden sich immer im Stapel und werden bei Auswertungen ignoriert.
BEF_KOSTENSTELLE_1: Der Name der ersten Kostenstelle. BEF_KOSTENSTELLE_2: Der Name der zweiten Kostenstelle. BEF_KOSTENSTELLE_1_ID: Die interne ID der ersten Kostenstelle. BEF_KOSTENSTELLE_2_ID: Die interne ID der zweiten Kostenstelle.
BEF_DOKUMENTE: Die einer Buchung zugeordneten Dokumente als Zeichenkette mit folgendem Aufbau: 1. Parameter: Kompletter Pfad zum Dokument. 2. Parameter: Wenn sich das Dokument im Standarddokumentenordner (/DATENORDNER/MANDANTEN/FIRMENNAME/DOKUMENTE) befindet 1 ansonsten (die Datei befindet sich im extern) 0. 3. Parameter: Beschreibung (optional). Die Parameter werden durch ein Semikolon (;), Zeilen durch ein Oder (|) getrennt. Beispiel: 'c:\1.pfd;0;Dokument 1|c:\2.pfd;0;Dokument 2'
BEF_MAIN_SPLIT_ID: Die interne ID der Haupt-Splittbuchung. BEF_KONTO: Die Soll-Kontonummer oder die Haben-Kontonummer. BEF_STEUERKONTO_UST: Die Kontonummer des Umsatzsteuer-Kontos, -1 falls nicht vorhanden. BEF_STEUERKONTO_VST: Die Kontonummer des Vorsteuer-Kontos, -1 falls nicht vorhanden. BEF_STEUER_BETRAG: Der Steuerbetrag (Brutto-Netto). BEF_STEUER_PROZENT: Der Prozentsatz der Steuer. BEF_EU_STEUERID: EU-UmsatzSteuerID. BEF_ISO3166a3: Dreistelliger Länder-Code des EU-Landes.
Englische Namen: BEF_ID BEF_VOUCHER_DATE BEF_DATE_CHANGED BEF_BOOKING_PERIOD
BEF_BOOKING_TEXT BEF_VOUCHER BEF_VOUCHER_COUNTER BEF_VOUCHER_CATEGORY BEF_VOUCHER_CATEGORY_ID BEF_GROSS BEF_NET
BEF_TAXRATE BEF_TAXRATE_DEBIT_SIDE_ACCOUNT BEF_TAXRATE_CREDIT_SIDE_ACCOUNT BEF_TAXRATE_ID BEF_TAXRATE_ID_DEBIT_SIDE_ACCOUNT BEF_TAXRATE_ID_CREDIT_SIDE_ACCOUNT
BEF_VAT_NOT_DUE BEF_DEBIT_SIDE_ACCOUNT BEF_CREDIT_SIDE_ACCOUNT BEF_INVALID
BEF_COST_CENTER_1 BEF_COST_CENTER_2 BEF_COST_CENTER_1_ID BEF_COST_CENTER_2_ID
BEF_DOCUMENTS
BEF_MAIN_SPLIT_ID BEF_ACCOUNT BEF_TAX_ACCOUNT_NO_VAT BEF_TAX_ACCOUNT_NO_INPUT_TAX BEF_TAX_AMOUNT BEF_TAX_PERCENT BEF_EU_VATID BEF_ISO3166a3
set_booking_entry_field Beschreibung: Setzt den Inhalt eines oder mehrerer Datenfelder einer Buchung. Um die Funktion zu beschleunigen, sollten soviele Inhalte wie möglich gleichzeitig gesetzt werden. Bereits bestehende Buchungen werden sofort geändert, Buchungen die mit add_booking_entry neu angelegt wurden werden erst am Ende einer Transaktion (end_transaction) in die Datenbank geschrieben. Feldinhalte, die nicht gesetzt werden, können mit dem Parameter nil initialisiert werden, in diesem Fall findet keine Auswertung statt, siehe Beispiel. Parameter 1: Die Zugriffsnummer einer Buchung. Typ Integer. Parameter 2: Der Feldname. Typ Konstante (siehe get_booking_entry_field). Parameter 3: Der neue Feldinhalt. Rückgabewerte: 1. Parameter: true oder false bei einem Fehler. 2. Parameter: Bei einem Fehler die Fehlermeldung.
Beispiel: local buchung=taxpool.add_booking_entry() taxpool.set_booking_entry_field(buchung, taxpool.BEF_BELEGDATUM, "12.4.2012", taxpool.BEF_BUCHUNGSTEXT, "Rechnung RE123456")
Steuersätze ermitteln und Setzen: Hinweis: Die eindeutige ID eines Steuersatzes wird in der Verwaltung der Steuersätze bei einem ausgewählten Steuersatz angezeigt. calc_tax_id Beschreibung: Berechnet den neuen Steuersatz einer Buchung aus dem Sollkonto, dem Habenkonto, einem optionalen Steuerprozentwert, oder einem optionalen Steuerschlüssel und gibt ihn zurück. Parameter 1: Die Soll-Kontonummer. Parameter 2: Die Haben-Kontonummer. Parameter 3: Das Belegdatum als Zeichenkette. Parameter 4 (optional): Der Prozentsatz der Steuer. Wenn der Wert nicht ausgewertet werden soll, kann eine Leer-Zeichenkette ("") übergeben werden. Parameter 5 (optional): Der Steuerschlüssel. Wenn der Wert nicht ausgewertet werden soll, kann eine Leer-Zeichenkette ("") übergeben werden. Rückgabewerte: 1. Parameter: Die eindeutige ID eines Steuersatzes, bei einem Fehler wird -1 zurückgegeben. 2. Parameter: Bei einem Fehler (1. Parameter -1) ist die Fehlermeldung enthalten. Beispiel: local taxid=taxpool.calc_tax_id(Sollkonto, Habenkonto, Belegdatum, Steuersatz, "") taxpool.set_booking_entry_field(buchung, taxpool.BEF_STEUERSATZ_ID, taxid)
Eigenschaften von Buchungen: Die Eigenschaften einer Buchung kann zum Filtern von Buchungen benutzt werden, folgende Werte sind abrufbar, es kann dabei sowohl der englische als auch der deutsche Name benutzt werden:
BES_STAPEL: Die Buchung befindet sich im Stapel. BES_JOURNAL: Die Buchung befindet sich im Journal. BES_STORNO: Die Buchung wurde storniert. BES_MARKIERT: Die Buchung wurde markiert. (Bisher nicht verwendbar). BES_SPLIT: Es handelt sich um eine Splitt-Buchung. BES_MAIN_SPLIT: Es handelt sich um eine Haupt-Splitt-Buchung. Zum Aufbau von Splitt-Buchungen, siehe weiter unten. BES_SUB_SPLIT: Es handelt sich um eine Sub-Splitt-Buchung. Zum Aufbau von Splitt-Buchungen, siehe weiter unten. BES_UNGUELTIG: Die Buchung ist ungültig. Ungültige Buchungen können beim Import entstehen, befinden sich immer im Stapel und werden bei Auswertungen ignoriert. BES_VST: Die Buchung enthält Vorsteuer. BES_UST: Die Buchung enthält Umsatzsteuer. BES_VST_SOLL: Die Vorsteuer ist im Soll gebucht, wichtig bei Buchungen, die Vorsteuer und Umsatzsteuer enthalten (EU-Erwerb, EU-Erhaltene Leistungen), kann aber auch bei Buchungen, die nur Umsatzsteuer oder Vorsteuer enthalten, benutzt werden. BES_STEUER_SOLL: Das Steuerkonto ist im Soll, bei Buchungen, die nur Umsatzsteuer oder Vorsteuer enthalten. Bei EU-Erwerb, EU-Erhaltene Leistungen wird true zurückgegeben, wenn das Vorsteuerkonto im Soll ist. BES_VST_NICHT_ANRECHENBAR: Die Vorsteuer ist nicht anrechenbar. Hinweis: Die Eigenschaft kann bisher noch nicht ausgewertet werden. BES_UST_NICHT_FAELLIG: Die Umsatzsteuer ist nicht fällig. BES_EU_STEUER: Die Buchung enthält einen EU-Steuersatz (EU-Erwerb, EU-Erhaltene Leistungen). BES_P13B_STEUER: Die Buchung enthält einen Steuersatz nach Paragraph 13b. BES_INAKTIV: Die Buchung wurde mit dem Schalter Extras in der Buchungsmaske für Auswertungen als Inaktiv eingestellt. BES_KONTOAUSZUG: Die Buchung ist durch den Import eines Kontoauszugs entstanden. BES_SUMMENVORTRAG: Es handelt sich um eine aktive (nicht stornierte) Summenvortrags-Buchung. BES_AUTO_SUMMENVORTRAG: Es handelt sich um eine automatisch erstellte Summenvortrags-Buchung. BES_SPLIT_SOLL: Bei einer Haupt-Splitt-Buchung: Die Habenseite enthält das Hauptkonto, die Sollseite ist ungültig. Bei einer Sub-Splitt-Buchung: Die Habenseite enthält das Gegenkonto der Haupt-Splitt-Buchung (zumeist ein Erfolgskonto), die Sollseite enthält das Konto der Haupt-Splitt-Buchung. Zum Aufbau von Splitt-Buchungen, siehe weiter unten. BES_AUTO_ANLAGE: Anlage-Buchung, die noch automatisch verwaltet wird. BES_ANLAGE: Anlage-Buchung, die noch automatisch verwaltet wird, oder ehemals automatisch verwaltet wurde. BES_AUTO_FAKTURA: Fakturabuchung, die noch automatisch verwaltet wird. BES_FAKTURA: Fakturabuchung, die noch automatisch verwaltet wird, oder ehemals automatisch verwaltet wurde. BES_IMPORTIERT: Die Buchung wurde importiert. BES_ZULETZT_IMPORTIERT: Die Buchung wurde beim letzten Import importiert. BES_DATUM_GESPERRT: Der Monat, in dem das Belegdatum liegt, ist für Buchungen gesperrt.
Englische Namen: BES_NOT_FINAL BES_FINAL BES_CANCELLED BES_MARKED BES_SPLIT BES_MAIN_SPLIT BES_SUB_SPLIT BES_INVALID BES_INPUT_TAX BES_VAT BES_INPUT_TAX_DEBIT_SIDE BES_TAX_DEBIT_SIDE BES_INPUT_TAX_NOT_ALLOWABLE BES_VAT_NOT_DUE BES_TAX_EU BES_TAX_P13B BES_INACTIVE BES_ACCOUNT_STATEMENT BES_AMOUNT_BROUGHT_FORWARD BES_AUTO_AMOUNT_BROUGHT_FORWARD BES_SPLIT_DEBIT_SIDE BES_AUTO_ASSET_POSTING BES_ASSET_POSTING BES_AUTO_BILLING_SYSTEM BES_BILLING_SYSTEM BES_IMPORTED BES_LAST_IMPORTED BES_DATE_LOCKED
get_booking_entry_status Beschreibung: Fragt Eigenschaften einer Buchung (siehe oben) ab. Die Funktion ist nur auf Buchungen anwendbar, die bereits in die Datenbank gebucht wurden, Buchungen, die mit add_booking_entry angelegt wurden und noch nicht verbucht wurden, können nicht abgefragt werden. Parameter 1: Die Zugriffsnummer einer Buchung. Typ Integer. Parameter 2: Eine oder mehrere Eigenschaften, die abgefragt werden sollen. Die abgefragten Eigenschaften müssen mit der Funktion bit32.bor() addiert werden, sofern es sich um mehr als eine Eigenschaft handelt. Parameter 3 (optional, Standard=2): Typ Integer. 1: Die Funktion liefert im zweiten Parameter true, sofern nur einer der abgefragtene Wert vorhanden ist. 2: Die Funktion liefert im zweiten Parameter nur true, sofern alle abgefragten Werte vorhanden sind. 3: Die Funktion liefert im zweiten Parameter true, sofern keiner der abgefragten Werte vorhanden sind. 4: Die Funktion liefert im zweiten Parameter nur true, sofern die abgefragten Werte in der Kombination nicht vorhanden sind.
Rückgabewerte: 1. Parameter: true oder false bei einem Fehler. 2. Parameter: Bei einem Fehler wird die Fehlermeldung zurückgegeben, ansonsten true , sofern die Buchung im Filter ist, ansonsten false.
Beispiel: local res, status=taxpool.get_booking_entry_status(i, bit32.bor(taxpool.BES_JOURNAL, taxpool.BES_SPLIT)) if res then
if status then taxpool.print_log("Splitt-Buchung im Journal") else taxpool.print_log("Keine Splitt-Buchung im Journal") end
else taxpool.print_log("Fehler="..status) end
Buchungen Löschen, Stornieren, Gutschreiben, Duplizieren: get_booking_entry_edit_status Beschreibung: Ermittelt, welche Bearbeiten-Funktionen bei einer Buchung möglich sind. Die Funktion ist nur auf Buchungen anwendbar, die bereits in die Datenbank gebucht wurden, Buchungen, die mit add_booking_entry angelegt wurden und noch nicht verbucht wurden, können nicht abgefragt werden. Parameter 1: Die Zugriffsnummer einer Buchung. Typ Integer. Parameter 2: Ein Modus oder mehrere Modi, die abgefragt werden sollen. Die abgefragten Eigenschaften müssen mit der Funktion bit32.bor() addiert werden, sofern es sich um mehr als eine Eigenschaft handelt. Es kann dabei sowohl der englische als auch der deutsche Name benutzt werden: MODUS_BEARBEITEN: Die Buchung kann geändert werden. MODUS_LOESCHEN: Die Buchung kann gelöscht werden. MODUS_STORNO: Die Buchung kann storniert werden. MODUS_GUTSCHRIFT: Die Buchung kann gutgeschrieben werden. MODUS_DUPLIKAT: Die Buchung kann dupliziert werden.
Englische Namen: MODE_EDIT MODE_DEL MODE_CANCELLATION MODE_CREDIT_NOTE MODE_DUPLICATE
Parameter 3 (optional, Standard=DATUM_BELEGDATUM): Bei den Modi MODUS_STORNO, MODUS_GUTSCHRIFT, MODUS_DUPLIKAT ist eine zusätzliche Datumsangabe zu dem Belegdatum der zweiten Buchung notwendig. Dabei kann entweder ein konkretes Datum eingetragen werden, oder eine der nachfolgenden Konstanten: DATUM_BELEGDATUM: Das Belegdatum der Originalbuchung. DATUM_AKT_DATUM: Das aktuelle Datum.
Englische Namen: DATE_VOUCHER_DATE DATE_CURRENT_DATE
Rückgabewerte: 1. Parameter: true falls die Modi zugelassen sind, ansonsten false. 2. Parameter: Eine Info, warum die Modi nicht zugelassen sind.
Beispiel: local res, info=taxpool.get_booking_entry_edit_status(i, taxpool.MODUS_STORNO, taxpool.DATUM_BELEGDATUM) if res then taxpool.print_log("Die Buchung kann storniert werden") else taxpool.print_log("Die Buchung kann nicht storniert werden: "..info) end
booking_entry_edit_action Beschreibung: Löscht oder storniert eine Buchung oder erstellt eine Gutschrift oder ein Duplikat einer Buchung. Die Funktion ist nur auf Buchungen anwendbar, die bereits in die Datenbank gebucht wurden, Buchungen, die mit add_booking_entry angelegt wurden und noch nicht verbucht wurden, können nicht abgefragt werden. Parameter 1: Die Zugriffsnummer einer Buchung. Typ Integer. Parameter 2: Die Aktion, es kann nur eine Aktion gleichzeitig durchgeführt werden, eine Kombination ist nicht zulässig. Zu den Werten siehe get_booking_entry_edit_status. Parameter 3 (optional, Standard=DATUM_BELEGDATUM): Bei den Modi MODUS_STORNO, MODUS_GUTSCHRIFT, MODUS_DUPLIKAT ist eine zusätzliche Datumsangabe zu dem Belegdatum der zweiten Buchung notwendig. Dabei kann entweder ein konkretes Datum eingetragen werden, oder eine der nachfolgenden Konstanten: DATUM_BELEGDATUM: Das Belegdatum der Originalbuchung. DATUM_AKT_DATUM: Das aktuelle Datum.
Rückgabewerte: 1. Parameter: true falls die Modi zugelassen sind, ansonsten false. 2. Parameter: Bei Erfolg die Zugriffsnummer der neuen Buchung bei den Aktionen MODUS_STORNO, MODUS_GUTSCHRIFT, MODUS_DUPLIKAT, -1 bei der Aktion MODUS_LOESCHEN. Im Fehler enthält Parameter 2 den Fehlertext.
Beispiel: taxpool.booking_entry_edit_action(buchung, taxpool.MODUS_LOESCHEN)
Beleg-Funktionen: Setzen des Belegkreises einer Buchung: taxpool.set_booking_entry_field(buchung, taxpool.BEF_BELEGNUMMERN_KREIS, belegkreis)
Setzen des Belegzählers einer Buchung: taxpool.set_booking_entry_field(buchung, taxpool.BEF_BELEGNUMMERN_ZAEHLER, belegzahl) Hinweis: Wird der Zähler nicht durch die Funkion gesetzt, benutzt das Programm automatisch den nächsten freien Zähler.
find_voucher_category Beschreibung: Ermittelt, ob ein Belegkreis bereits existiert. Parameter: Der Name eines Belegkreises. Rückgabewerte: true gefunden, ansonsten false. Beispiel: if not taxpool.find_voucher_category(belegkreis) then taxpool.add_voucher_entry(-1, "", belegkreis) --kontonummer, datum, titel end
add_voucher_entry Beschreibung: Legt einen neuen Belegkreis an. Parameter 1: Das Konto, das dem Belegkreis optional zugeordnet ist (i.d.R. ein Finanzkonto) oder -1, falls kein Konto zugeordnet ist, z.B. bei ER (Eingangsrechnung), etc. Es kann auch vorerst eine -1 zugeordnet und später, in der Belegkreisverwaltung manuell ein Konto dazu eingetragen werden, damit ein Bebuchen im Einfach-Buchen-Modus möglich ist. Parameter 2: Falls ein Konto übergeben wurde, das Datum, ab dem das Konto gültig ist, ansonsten eine Leerzeichenkettte (""). Sollte ein Belegdatum einer Buchung verfügbar sein, kann dieses eingetragen werden, ansonsten kann auch eine Leerzeichenkettte eingetragen werden. Parameter 3: Der Titel des neuen Belegkreises.
Rückgabewerte: true oder false bei einem Fehler. Beispiel: if not taxpool.find_voucher_category(belegkreis) then taxpool.add_voucher_entry(-1, "", belegkreis) --kontonummer, datum, titel end
Splitt-Buchungs-Funktionen: Haupt-Splitt-Buchungen dienen nur zur Verwaltung der eigentlichen Buchungen und müssen bei Berechnungen mittels Filter übersprungen werden, da es sich dabei nur um Hilfsbuchungen handelt. Informationen zum Aufbau von Splitt-Buchungen finden Sie in dem Eintrag Aufbau von Splitt-Buchungen: Sie dienen z.B. zum Löschen oder Stornieren einer kompletten Splitt-Buchung.
get_booking_entry_main_split Beschreibung: Ermittelt die Splitt-Haupt-Buchung zu einer Splitt-Sub-Buchung. Die Funktion ist nur auf Buchungen anwendbar, die bereits in die Datenbank gebucht wurden, Buchungen, die mit add_booking_entry angelegt wurden und noch nicht verbucht wurden, können nicht abgefragt werden. Parameter 1: Die Zugriffsnummer einer Splitt-Sub-Buchung. Typ Integer. Rückgabewerte: 1. Parameter: true oder false bei einem Fehler. 2. Parameter: Bei einem Fehler wird die Fehlermeldung zurückgegeben, ansonsten die Zugriffsnummer Splitt-Haupt-Buchung.
Beispiel: local res, data=taxpool.get_booking_entry_main_split(i) if res then taxpool.set_booking_entry_field(data, "buchungstext", "test") taxpool.set_booking_entry_field(data, "belegdatum", "1.9.2012") else taxpool.print_log("Fehler="..data) end
get_booking_entry_sub_splits Beschreibung: Ermittelt die Splitt-Sub-Buchungen zu einer Splitt-Haupt-Buchung als Tabelle. Die Funktion ist nur auf Buchungen anwendbar, die bereits in die Datenbank gebucht wurden, Buchungen, die mit add_booking_entry angelegt wurden und noch nicht verbucht wurden, können nicht abgefragt werden. Parameter 1: Die Zugriffsnummer einer Splitt-Sub-Buchung. Typ Integer.
Rückgabewerte: 1. Parameter: true oder false bei einem Fehler. 2. Parameter: Bei einem Fehler wird die Fehlermeldung zurückgegeben, ansonsten eine Tabelle mit den Zugriffsnummern der gefundenen Buchungen.
Beispiel: local res, childs=taxpool.get_booking_entry_sub_splits(imain) if res then taxpool.print_log(#childs.." sub-splits") else taxpool.print_log("Fehler="..childs) end
create_booking_entry_split Beschreibung: Erzeugt eine Splitt-Buchung aus Einzelbuchungen. Parameter 1: Die Zugriffsnummer einer Einzelbuchung. Typ Integer. Parameter 2: Eine eindeutige Gruppen-Nummer. Typ Integer. Alle Buchungen mit der gleichen Gruppen-Nummer werden nach dem Aufruf von start_transaction zusammengefasst. Parameter 3: Der Buchungstext der zu erzeugenden Haupt-Splitt-Buchung.
Rückgabewerte: 1. Parameter: true oder false bei einem Fehler. 2. Parameter: Bei einem Fehler wird die Fehlermeldung zurückgegeben.
Beispiel: taxpool.create_booking_entry_split(buchung, groupcounter, splittbuchungstext)
Storno-Buchungs-Funktionen: Informationen zum Aufbau von Storno-Buchungen finden Sie in dem Eintrag Gutschrift und Storno. Normalerweise haben die Originalbuchung und die Stornobuchung das gleiche Belegdatum, es ist jedoch in Taxpool®-Buchhalter auch ein abweichendes Datum möglich, deswegen dürfen in Auswertungen zwecks Übersichtlichkeit nur Stornobuchungen ausgeblendet werden, die sich im Zeitraum der Auswertung ausgleichen.
check_booking_entries_cancelled_in_date_range Beschreibung: Ermittelt ob die Belegdatumswerte der Stornobuchung und der Orignalbuchung beide im Ausgabezeitraum liegen. Die Funktion ist nur auf Buchungen anwendbar, die bereits in die Datenbank gebucht wurden, Buchungen, die mit add_booking_entry angelegt wurden und noch nicht verbucht wurden, können nicht abgefragt werden. Parameter 1: Die Zugriffsnummer einer Storno-Buchung. Typ Integer. Parameter 2: Ein Belegdatum, ab dem Buchungen berücksichtigt werden. Typ Zeichenkette. Parameter 3: Ein Belegdatum, bis zu dem Buchungen berücksichtigt werden. Typ Zeichenkette. Datumsangaben müssen im Bereich vom 1.1.2002 bis zum 31.12.2037 sein.
Rückgabewerte: 1. Parameter: true oder false bei einem Fehler. 2. Parameter: Bei einem Fehler wird die Fehlermeldung zurückgegeben, ansonsten true oder false.
Beispiel: local res, samedate=taxpool.check_booking_entries_cancelled_in_date_range(istorno, "1.1.2012", "31.12.2012") if res then taxpool.print_log("ausgleichend="..tostring(samedate)) else taxpool.print_log("fehler ausgleichend="..tostring(samedate)) end
get_booking_entry_cancelled_sibling Beschreibung: Ermittelt die Zugriffsnummer der Gegenbuchung einer Stornobuchung. Die Funktion ist nur auf Buchungen anwendbar, die bereits in die Datenbank gebucht wurden, Buchungen, die mit add_booking_entry angelegt wurden und noch nicht verbucht wurden, können nicht abgefragt werden. Parameter 1: Die Zugriffsnummer einer Storno-Buchung. Typ Integer. Rückgabewerte: 1. Parameter: true oder false bei einem Fehler. 2. Parameter: Bei einem Fehler wird die Fehlermeldung zurückgegeben, ansonsten die Zugriffsnummer der Gegenbuchung der Stornobuchung.
Beispiel: local res, istorno2=taxpool.get_booking_entry_cancelled_sibling(istorno1) if res then taxpool.print_log("storno-id="..istorno2) else taxpool.print_log("fehler storno-id="..istorno2) end
|