Example #1
0
 def __init__(self):
     self.insurant = Insurant()
     self.insurance_numbers = []
     self.choices = {
         "1": self.generate_insurance_number,
         "2": self.show_insurance_numbers,
         "3": self.write_file,
         "4": self.quit
     }
Example #2
0
class Menu:
    def __init__(self):
        self.insurant = Insurant()
        self.insurance_numbers = []
        self.choices = {
            "1": self.generate_insurance_number,
            "2": self.show_insurance_numbers,
            "3": self.write_file,
            "4": self.quit
        }

    def display_menu(self):
        print("""Was moechten Sie tun?
        1. Neue Rentenversicherungsnummer generieren
        2. Bereits erstellte Nummern anzeigen
        3. RVNr in Datei schreiben
        4. Programm beenden
        Einfach die entsprechende Nummer angeben.
        """)

    def run(self):
        while True:
            self.display_menu()
            choice = input("Waehlen Sie bitte: ")
            action = self.choices.get(choice)
            if action:
                action()
            else:
                print("Diese Option existiert nicht. ({0})\n".format(choice))

    def quit(self):
        print("Vielen Dank, dass Sie den RvNr-Generator verwendet haben.")
        sys.exit(0)

    def generate_insurance_number(self):
        birthdate = input("Bitte das Geburtsdatum eingeben (TT.MM.YYYY). ")
        self.insurant.set_birthdate(birthdate)
        sex = input("Waehlen Sie das Geschlecht. Geben Sie m fuer maennlich und w fuer weiblich ein. ")
        self.insurant.set_sex(sex)
        surname = input("Bitte geben Sie den Namen ein. ")
        self.insurant.set_surname(surname)
        self.insurant.build_number()
        self.insurant.build_string()
        checksum = calculate_checksum(calculate_cross_sum(calculate_weighting(self.insurant.number)))
        insurance_number = self.insurant.string + str(checksum)
        self.insurance_numbers.append(insurance_number)
        print("\nDie Rentenversicherungsnummer lautet: {0}\n".format(insurance_number))

    def show_insurance_numbers(self):
        print(self.insurance_numbers)
        print("\n")

    def check_path(self, path):
        if os.access(path, os.F_OK):
            if os.access(path, os.W_OK):
                return True
            else:
                print("Sie besitzen nicht die noetigen Schreibrechte fuer das Verzeichnis.")
                return False
        else:
            createDir = input("Das Verzeichnis existiert nicht.\nSoll es angelegt werden? j/n ")
            if createDir == "j":
                os.mkdir(path)
                return True
            return False

    def write_file(self):
        path = input("Bitte geben Sie den Pfad an, in dem die Datei abgelegt werden soll. ")
        if self.check_path(path):
            file = open('{0}/sozialversicherungsnummern.txt'.format(path), 'w+')
            for insurance_number in self.insurance_numbers:
                file.write(insurance_number + "\n")
            file.close()
            print("Datei wurde erfolgreich im gewünschten Pfad abgelegt.")
        else:
            print("\nAuf den Pfad: {0} kann nicht zugegriffen werden.\n".format(path))