Wert in Standardbuchungen automatisieren

Fragen zum Thema Buchungen und Standardbuchungen
Antworten
Schledi
Interessent
Beiträge: 5
Registriert: Sa, 07 Jun, 2008 20:35

Wert in Standardbuchungen automatisieren

Beitrag von Schledi » Sa, 14 Jun, 2008 16:51

Hallo!

Es findet immer am gleichen Tag ein monatlicher Ausgleich meiner Kreditkarte statt, den ich gerne als Standardbuchung fassen möchte.

Dafür wäre es praktisch, den Wert in einer Standardbuchung automatisieren zu können, indem immer der Kontostand am Ausgleichstag (z.B. der 27. jeden Monats) des Unterkontos "Kreditkarte" als Wert in eben die Standardbuchung eingesetzt wird.
Das sorgt dafür, dass am 27. (beispielsweise) eine Buchung von "Girokonto" zu "Kreditkarte" stattfindet. So würde der Kontostand "Kreditkarte" auf Null gesetzt werden und der Kontostand "Girokonto" mit dem entsprechenden Betrag belastet werden.

Meine Frage: Ist dies möglich?

Herzliche Grüße, Jan!

Benutzeravatar
Team Schauries
Site Admin
Beiträge: 1058
Registriert: Mo, 17 Jan, 2005 20:25
Wohnort: Essen

Beitrag von Team Schauries » So, 15 Jun, 2008 9:08

Hallo Jan,

Standardbuchungen sind zwar sehr unterschiedlich einstellbar aber alle haben eines gemeinsam: bevor gebucht wird löst EuroKass ein Ereignis mit dem Namen OnTakeDefaultBooking aus und gibt dem Anwender die möglich, sozusagen in letzter Sekunde noch einzugreifen.
Öffne mal das Programm-Center, suche unterhalb des Kassenbuchs die Standardbuchungen und dort Deine Standardbuchung. Doppelklicke auf den Eintrag „Beim Auslösen einer Buchung“, lösche den soeben erstellten Text und kopiere folgenden Text in den Editor:

Procedure OnTakeDefaultBooking(DefaultBookingIndex : Integer; var CanTake : Boolean; var IsReady : Boolean)

DefaultBooking(DefaultBookingIndex).Value = Account("KontoKreditkarte").Balance

EndProcedure

Was passiert? Kurz bevor gebucht wird änderst Du den Wert der Standardbuchung über die Funktion Account("Kontoname").Balance und EuroKass verwendet diesen neuen Wert.
Damit müsste Dein Problem gelöst sein, oder?

Gruß,
Dirk Schauries
Team Schauries

Schledi
Interessent
Beiträge: 5
Registriert: Sa, 07 Jun, 2008 20:35

Ja... fast

Beitrag von Schledi » So, 15 Jun, 2008 11:43

Hallo Dirk,

Danke für die schnelle Antwort.

Ich habe die Prozeduren eingefügt, habe aber noch folgendes Problem ausgemacht:

Der Wert der Kreditkarte (KK) befindet sich nach etlichen Buchungen in einem negativen Bereich (Beispiel: -200€). Die Standardbuchung mit
Quellkonto: Girokonto
Zielkonto: KK
mit der von dir eingefügten Prozedur wird durchgeführt. Dadurch werden vom Girokonto nun "-200€" auf die KK gebucht, d.h. die KK befindet sich nun auf -400€ statt auf 0€.

Mögliche Lösung: Den Gledfluss umkehren. Als Quellkonto die Kreditkarte angeben und als Zielkonto das Girokonto.
Stand KK: -200
Stand Girokonto +1000
Standardbuchung: Quellkonto: KK; Zielkonto: Girokonto
Buchung auf (+) Girokonto: -200 (Plus mal Minus ergibt Minus)
Buchung von (-) KK: -200 (Minus mal Minus ergibt Plus)
Endstand Girokonto: +800
Endstand KK: 0

Damit wäre das Problem gelöst. Allerdings wäre es natürlich schön, wenn der Wert schon in der Prozedur umgekehrt werden könnte, damit die reale Flussrichtung des Geldes eingehalten wird, zumal ich (noch) keine Ahnung habe, wie sich eine solch falsche Flussrichtung auf sowas wie Budgets und ähnliches auswirkt... Ich bin nicht so gut im Programmieren, aber vielleicht weißt du ja auch dafür eine Lösung?

Herzliche Grüße,
Jan!

Benutzeravatar
Team Schauries
Site Admin
Beiträge: 1058
Registriert: Mo, 17 Jan, 2005 20:25
Wohnort: Essen

Beitrag von Team Schauries » So, 15 Jun, 2008 12:16

Hallo Jan,

ich hatte mich nicht so tief in das Thema hineingedacht und war sofort mit einer grundsätzlichen Lösung, was variable Buchungswerte angeht, beschäftigt.

Du hast natürlich Recht, der Buchungswert muss negiert werden, da der Kontostand der Kreditkarte ja immer negativ ist und eben durch eine Buchung wieder auf null gesetzt werden soll.

Ändere die Anweisung

DefaultBooking(DefaultBookingIndex).Value = Account("KontoKreditkarte").Balance

in

DefaultBooking(DefaultBookingIndex).Value = Abs(Account("KontoKreditkarte").Balance)

oder

DefaultBooking(DefaultBookingIndex).Value = -Account("KontoKreditkarte").Balance

Somit werden nur noch positive Beträge gebucht und die Kontostände sollten wieder stimmen.

Gruß,
Dirk Schauries
Team Schauries

Schledi
Interessent
Beiträge: 5
Registriert: Sa, 07 Jun, 2008 20:35

Genau!

Beitrag von Schledi » Di, 17 Jun, 2008 14:30

Hallo Dirk,

stimmt! Das müsst funktionieren... einfach ein Minus einsetzen... Manchmal ist programmieren doch einfacher, als man denkt!

Danke und herzliche Grüße, Jan!
:idea:

Antworten