Script: Rechnung auf gebucht / storniert setzen

Produktlinien: Expert
Module: Leistung & CRM
Erstellt: 25.05.2012, Änderung:
Script ersetzt: Beim Buchen wird die Belegnummer auf "0" gesetzt.
Mehr ansehen

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

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.
#---05.11.2019 STH: Setze beim Buchen die Belegnr auf "0".

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.verrechnet:
            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.belegnr = "0"
                rechnung.gebucht = True
      
    # Save
    vtcapp.updatedatabase()

main()