# 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()