Script: Rechnungsnummer zurücksetzen

Inhalt

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.

    Ausführen

    Irgendwo in Vertec

    Script 1

    VersionBeschreibungScript
    ab Version 5.0 verwendet die Variable vertec ResetRechnungsnummer.txt
    ab Version 5.8 Verwendet anstelle der VB Standardfunktion die Vertec-Funktion msgbox (siehe dazu msgbox/inputbox: Beschreibung der Parameter) ResetRechnungsnummer58.txt

    Scripttext

    '---Bezeichnung: Rechnungsnummer zurücksetzen
    '   Klassen: BusinessClassesRoot
    '   ObjectScript: No
    '   ContainerScript: No
    '   EventType: Kein
    '---Setzt die Rechnungsnummer um einen Zähler zurück.
    '---12.02.2004, Vertec AG: erstellt
    '---02.06.2008, sr: UpdateDatabase ergänzt.
    '---28.10.2013, sr: msgbox durch vertec.msgbox ersetzt.

    option explicit

    Dim property
    Dim prefix
    Dim resList
    Dim LastUsedNumber

    Set resList = VERTEC.Eval("property->select(propertyname='PraefixRechnungsnummer')")
    If resList.Count > 0 Then
    Set property = resList.Objects(0)
    Set resList = VERTEC.Eval("usedprefix->select(prefix='" & property.AsString & "')")
    If resList.Count > 0 Then
    Set prefix = resList.Objects(0)
    LastUsedNumber = prefix.Member("lastusednumber")
    If LastUsedNumber > 0 Then
    LastUsedNumber = LastUsedNumber - 1
    prefix.Member("lastusednumber") = LastUsedNumber
    End If
    End If
    End If
    Vertec.UpdateDatabase
    Vertec.Msgbox "Die Nummer wurde zurückgesetzt",,"Vertec"

    Script 2

    VersionBeschreibungScript
    ab Version 5.0 verwendet die Variable vertec ResetRechnungsnummerInput.txt
    ab Version 5.8 Verwendet anstelle der VB Standardfunktion die Vertec-Funktion msgbox (siehe dazu msgbox/inputbox: Beschreibung der Parameter) ResetRechnungsnummerInput58.txt

    Scripttext

    '---Bezeichnung: Rechnungsnummer zurücksetzen mit Input
    '   Klassen: BusinessClassesRoot
    '   ObjectScript: No
    '   ContainerScript: No
    '   EventType: Kein
    '---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.
    '---28.10.2013, sr: msgbox und inputbox werden neu auf vertec aufgerufen.

    option explicit

    sub main

    Dim prefix
    Dim usedprefix
    Dim resList
    Dim LastUsedNumber
    Dim a

    Set resList = VERTEC.Eval("property->select(propertyname='PraefixRechnungsnummer')")
    If resList.Count = 0 Then
    vertec.msgbox "Property Praefix Rechnungsnummer nicht gefunden."
    exit sub
    end if

    Set prefix = resList.Objects(0)
    Set resList = VERTEC.Eval("usedprefix->select(prefix='" & prefix.AsString & "')")
    If resList.Count > 0 Then
    Set usedprefix = resList.Objects(0)
    LastUsedNumber = usedprefix.Member("lastusednumber")
    a = Vertec.Inputbox("Vertec","Die zuletzt vergebene Rechnungsnummer ist: " _
    & cstr(LastUsedNumber) & chr(13) + chr(10) _
    & chr(13) + chr(10) & "Der zugehörige Präfix lautet: " & prefix.asstring _
    & chr(13) + chr(10) & chr(13) + chr(10) & "Geben Sie eine neue Rechnungsnummer (ohne Präfix) ein: ", "")
    if a <> "" then
    LastUsedNumber = clng(a) - 1
    usedprefix.Member("lastusednumber") = LastUsedNumber
    Vertec.updatedatabase
    end if
    End If

    End sub

    call main


    12.02.2004 | 28.10.2013: msgbox und inputbox durch vertec.msgbox und vertec.inputbox ersetzt.
    Produktlinien: Standard, Expert
    Module: Leistung & CRM