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!
Wert in Standardbuchungen automatisieren
- Team Schauries
- Site Admin
- Beiträge: 1058
- Registriert: Mo, 17 Jan, 2005 20:25
- Wohnort: Essen
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
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
Ja... fast
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!
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!
- Team Schauries
- Site Admin
- Beiträge: 1058
- Registriert: Mo, 17 Jan, 2005 20:25
- Wohnort: Essen
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
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