Script: Rechnung auf gebucht / storniert setzen

Inhalt

Dieses Script setzt eine Rechnung auf gebucht oder wieder auf storniert, ohne dabei Daten in die Buchhaltung zu übertragen. Das kann z.B. nützlich sein, wenn eine Rechnung im Nachhinein als gebucht im Vertec erscheinen soll, die Buchhaltungsperiode aber bereits abgeschlossen ist.

Beim Buchungsvorgang werden gewisse Werte im Vertec fixiert. Dieses Script simuliert diesen Vorgang. Ist die Rechnung bereits gebucht, wird sie storniert, ansonsten gebucht.

Version

Alle Vertec Versionen.

Ausführen

Auf der Rechnung oder einer Liste von Rechnungen, die Sie auf gebucht / storniert setzen möchten.

Script

RechnungAufGebuchtStorniertSetzen.py

Scripttext

# coding: windows-1252
#
#---Bezeichnung: Rechnung auf gebucht setzen (ohne Buchhaltung)
#   Klassen: Rechnung
#   ObjectScript: Y
#   ContainerScript: Y
#   EventType: Kein
#   EventClass:
#   EventMembers:
#   ExtendedRights: N
#---Wenn das Member gebucht auf der Rechnung geändert wird, anstelle der Standardfunktion buchen,
#   dann fehlen auf den Buchungen einige Informationen (konto, pknr). Mit diesem Skript werden die Informationen
#   der Reihe nach gespeichert und nach dem Umstellen wieder eingesetzt.
#---29.10.2010, IB: erstellt.
#---05.10.2012  RS: erweitert, damit stornieren und buchen mit einem Skript möglich ist.
#---19.06.2015  BR: erweitert: Ausführen auf Listen und Einzelojekten. UpdateDatabase eingefügt.

from vtcapp import getpropertyvalue

def main():
    # Auswahlobjekte laden
    if argobject.eval('oclistypeof(Rechnung)'):
        rechnungen = argobject.eval('self->asset')
    else:
        rechnungen = argobject.eval('eintraege.list.oclastype(Rechnung)')

    # Rechnngen buchen/stornieren anpassen.
    for rechnung in rechnungen:
        if rechnung.gebucht:
   # Rechnung gebucht ändern, damit alle Informationen drin sind.
            rechnung.gebucht = False
        else:
            rechnung.bhEKontoLeistungen = rechnung.ErtragsKontoLeistungen
            rechnung.bhEKontoSpesen = rechnung.ErtragsKontoSpesen
            rechnung.bhEKontoAuslagen = rechnung.ErtragsKontoAuslagen
            rechnung.bhPersonenkonto = rechnung.Personenkonto
            rechnung.bhVorschussKonto = rechnung.projekt.vorschussKonto
            rechnung.bhDebiKonto = rechnung.buchungsbeleg.sammelkonto
            rechnung.bhRabattKonto = getpropertyvalue("RabattKonto")
            rechnung.gebucht = True
       
    # Save
    vtcapp.updatedatabase()

main()


25.05.2012 | 19.06.2015: Script ersetzt: Ausführen auf Listen und Einzelojekten und UpdateDatabase eingefügt.
Produktlinien: Expert
Module: Leistung & CRM