Script: Rechnungsnummer zurücksetzen

Setzt den Rechnungsnummern-Zähler zurück

Produktlinie

Standard

|

Expert

Betriebsart

CLOUD ABO

|

ON-PREMISES

Module

Leistung & CRM

Budget & Teilprojekt

Fremdkosten

Ressourcenplanung

Business Intelligence

Erstellt: 12.02.2004
Aktualisiert: 15.10.2024 | Informationen zur Version 6.7.0.12 hinzugefügt.

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.
    
    
    def main():
    
        prop = vtcapp.evalocl("property->select(propertyname='PraefixRechnungsnummer')->first")
        if prop:
            prefix = vtcapp.evalocl("usedprefix->select(prefix='" + prop.propertyvalue + "')->first")
            if prefix:
                lastusednumber = prefix.lastusednumber
                if lastusednumber > 0: 
                    prefix.lastusednumber = lastusednumber - 1
                    vtcapp.updatedatabase()
                    vtcapp.msgbox('Die Nummer wurde zurückgesetzt')
    
    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.
    
    def main():
    
        prop = vtcapp.evalocl("property->select(propertyname='PraefixRechnungsnummer')->first")
        if prop:
            prefix = vtcapp.evalocl("usedprefix->select(prefix='" + prop.propertyvalue + "')->first")
            if prefix:
                lastusednumber = prefix.lastusednumber
                userinput = vtcapp.inputbox("Vertec","Die zuletzt vergebene Rechnungsnummer ist: %s \r\r Der zugehörige Präfix lautet: %s \r\r Geben Sie eine neue Rechnungsnummer (ohne Präfix) ein:" % (lastusednumber, prop.propertyvalue),"")
                if userinput:
                    try:
                        newnumber = int(userinput)
                        if newnumber < 1:
                            vtcapp.msgbox('Der eingegebene Wert muss mindestens 1 sein. Bitte geben Sie eine positive Zahl > 1 ein.', 0, 'Vertec')
                            return
                        prefix.lastusednumber = int(newnumber) -1
                        vtcapp.updatedatabase()
                    except ValueError:
                        vtcapp.msgbox('Der eingegebene Wert ist keine Zahl. Bitte geben Sie eine Zahl ein.', 0, 'Vertec')
    
    main()
    Bitte wählen Sie Ihren Standort