Script: Rechnungsnummer zurücksetzen

Setzt den Rechnungsnummern-Zähler zurück

Die Rechnungsnummer wird zurückgesetzt. Dieses Script wird zum Beispiel dann verwendet, wenn eine Rechnung gelöscht und neu erzeugt werden muss, damit keine Rechnungsnummer "verschwendet" wird.

Es gibt 2 Scripts:

  • Script 1: Setzt die Rechnungsnummer um einen Zähler zurück.
  • Script 2: Wenn Sie die Rechnungsnummer um mehr als einen Zähler zurücksetzen wollen, verwenden Sie dieses Script. Sie können darin den gewünschten Zähler in einer Abfrage angeben.

Bei beiden Scripts ist es so, dass sie die zuletzt verwendete Rechnungsnummer mit dem aktuellen Präfix zurücksetzen.

Wollen Sie stattdessen die Rechnungsnummer heraufsetzen, benötigen Sie nicht dieses Script, sondern können in den Systemeinstellungen > Rechnung / Honorarnote die nächste Rechnungsnummer angeben.

    Version Beschreibung Script
    6.6 Dieses Script kann auch mit Vertec Versionen ab 6.7.0.12 verwendet werden, es verwendet weder argobject noch selectedobjects.

    Script 1: ResetRechnungsnummer.py

    Script 2: ResetRechnungsnummerInput.py

    Ausführen

    Irgendwo in Vertec via Script Editor.

    Wenn Sie das Script registrieren, registrieren Sie es so, dass es dort verfügbar ist, wo es für Sie sinnvoll ist.

    Ab Vertec Version 6.7.0.12 können Sie das Script auch auf einen Ordner registrieren, zum Beispiel auf Fakturierung mit der Klasse Ordner und der Anzeigebedingung self->first.eintragid = 'FolderInvoicing'.

    Scripttext 1

    Setzt die Rechnungsnummer um einen Zähler zurück.

     # coding: windows-1252
    #
    #---Bezeichnung: Rechnungsnummer zurücksetzen
    #   Klasse: 
    #   CondExpression:
    #   Selectedobjectsscript: Yes
    #   EventType: Kein
    #   EventClass:
    #   EventMembers:
    #   ExtendedRights: N
    #---Setzt die Rechnungsnummer um einen Zähler zurück.
    #---12.02.2004, Vertec AG: erstellt
    #---02.06.2008, sr: UpdateDatabase ergänzt.
    #---19.06.2017, sr: Script in Python erstellt.
    #---21.07.2025, sth: Umgestellt auf getpropertyvalue(). Funktioniert mit EN und DE.
    
    
    def main():
    
        prop = vtcapp.getpropertyvalue("PraefixRechnungsnummer")
        if prop:
            prefix = vtcapp.evalocl("usedprefix->select(prefix='" + prop + "')->first")
            if prefix:
                lastusednumber = prefix.lastusednumber
                if lastusednumber > 0: 
                    prefix.lastusednumber = lastusednumber - 1
                    vtcapp.updatedatabase()
                    vtcapp.msgbox(vtcapp.translate('The invoice number has been reset'))
    
    main()

    Scripttext 2

    Setzt die Rechnungsnummer auf den vom User erfragten Wert.

     # coding: windows-1252
    #
    #---Bezeichnung: Rechnungsnummer zurücksetzen mit Input
    #   Klasse: 
    #   CondExpression:
    #   Selectedobjectsscript: Yes
    #   EventType: Kein
    #   EventClass:
    #   EventMembers:
    #   ExtendedRights: N
    #---Setzt die Rechnungsnummer zurück. Die zu verwendende nächste
    #   Rechnungsnummer kann in einer Abfrage angeben werden.
    #---15.02.2007, sc: erstellt.
    #---31.12.2012, sr: Angaben in msgbox um Präfix ergänzt.
    #---19.06.2017, sr: Script in Python erstellt.
    #---21.07.2025, sth: Umgestellt auf getpropertyvalue(). Funktioniert mit EN und DE.
    
    def main():
    
        prop = vtcapp.getpropertyvalue("PraefixRechnungsnummer")
        if prop:
            prefix = vtcapp.evalocl("usedprefix->select(prefix='" + prop + "')->first")
            if prefix:
                lastusednumber = prefix.lastusednumber
                userinput = vtcapp.inputbox("Vertec", vtcapp.translate("The last invoice number assigned is: {} \nThe corresponding prefix is: {} \nEnter a new invoice number (without the prefix):").format(lastusednumber, prop),"")
                if userinput:
                    try:
                        newnumber = int(userinput)
                        if newnumber < 1:
                            vtcapp.msgbox(vtcapp.translate('The value entered must be at least 1. Please enter a number >= 1.'), 0, 'Vertec')
                            return
                        prefix.lastusednumber = int(newnumber) -1
                        vtcapp.updatedatabase()
                    except ValueError:
                        vtcapp.msgbox(vtcapp.translate('The value you entered is not a number. Please enter a numeric value >= 1.'), 0, 'Vertec')
    
    main()

    Netherlands

    United Kingdom