コード例 #1
0
ファイル: master_cmd.py プロジェクト: temafox/db_task6
def appoint():
    if login is None:
        print("Нужно войти в систему")
        return

    print("Введите кличку кошки: ", end="")
    cat_name = input()
    cat_name_check = execute_notrans(
        "SELECT cat_id, name FROM cat WHERE master = %s AND name = %s;", login,
        cat_name)
    if len(cat_name_check) == 0:
        print("У вас нет такой кошки")
        return

    vets = execute_notrans(
        "SELECT vet_specialty_id, specialty, vet, first_name, last_name FROM vet_specialty, vet WHERE vet_specialty.vet = vet.login;"
    )
    print("\nДоступные специалисты:")
    for vet in vets:
        print("{0:d}. Врач-{1:s}: {2:s} {3:s}".format(vet[0], vet[1], vet[3],
                                                      vet[4]))

    print("\nВыберите врача по номеру: ", end="")
    doctor_id = input()

    doctor_taken_times = execute_notrans(
        "SELECT date_time FROM examination WHERE vet_specialty_id = %s AND date_time > CURRENT_TIMESTAMP;",
        doctor_id)

    if len(doctor_taken_times) == 0:
        print("\nВыберите удобное вам время (ГГГГ-ММ-ДД ЧЧ-ММ): ", end="")
        date_time = datetime.fromisoformat(input())
    else:
        print("\nУ выбранного специалиста заняты следующие времена приёма:")
        for time in doctor_taken_times:
            print("{0:s}".format(str(time[0])))
        print("\nВыберите удобное вам время (ГГГГ-ММ-ДД ЧЧ-ММ)")
        print(
            "Минимум за 30 минут до и через 30 минут после начала другого приёма: ",
            end="")
        date_time = datetime.fromisoformat(input())

        time_overlaps = execute_notrans(
            "SELECT date_time FROM examination WHERE vet_specialty_id = %s AND date_time >= (%s - interval '30 minutes') AND date_time < (%s + interval '30 minutes');",
            doctor_id, date_time, date_time)
        if len(time_overlaps) > 0:
            print("Неправильное время приёма")
            return

    execute(
        "INSERT INTO examination" +
        "    (date_time, cat_id, vet_specialty_id)" + "VALUES" +
        "    (%s, %s, %s);", date_time, cat_name_check[0][0], doctor_id)
コード例 #2
0
ファイル: vet_cmd.py プロジェクト: temafox/db_task6
def log_in():
    print("Введите логин: ", end="")
    try_login = input()
    print("Введите пароль: ", end="")
    try_password = input()

    check = execute_notrans(
        "SELECT login, password FROM vet WHERE login = %s AND password = %s;",
        try_login, try_password)
    if len(check) == 0:
        print("Неправильный логин или пароль")
    else:
        global login
        login = try_login

        names = execute_notrans(
            "SELECT first_name, last_name FROM vet WHERE login = %s;", login)
        print("Вы вошли как {0:s} {1:s}".format(names[0][0], names[0][1]))
コード例 #3
0
ファイル: vet_cmd.py プロジェクト: temafox/db_task6
def upcoming():
    appointments = execute_notrans(
        "SELECT date_time, master, cat.name, examination_id FROM examination, cat WHERE (cat.cat_id = examination.cat_id) AND (date_time >= CURRENT_TIMESTAMP) AND (vet_specialty_id IN (SELECT vet_specialty.vet_specialty_id FROM vet_specialty WHERE vet_specialty.vet = %s));",
        login)

    print("Назначенные обследования:\n")
    for app in appointments:
        print("Номер обследования: {}".format(app[3]))
        print("Дата и время: {}".format(str(app[0])))
        print("Хозяин: {}".format(app[1]))
        print("Кошка: {}".format(app[2]))
        print("")
コード例 #4
0
ファイル: master_cmd.py プロジェクト: temafox/db_task6
def list_cats():
    if login is None:
        print("Нужно войти в систему")
        return

    the_list = execute_notrans(
        "SELECT name, sex, color, birth_date, height, mass FROM cat WHERE master = %s;",
        login)
    for cat in the_list:
        print("Кличка:", cat[0])
        print("Пол:", cat[1])
        print("Окрас:", cat[2])
        print("Дата рождения:", cat[3])
        print("Рост:", cat[4])
        print("Масса:", cat[5])
        print("")
コード例 #5
0
ファイル: vet_cmd.py プロジェクト: temafox/db_task6
def history():
    print("Введите кличку кошки: ", end="")
    cat_name = input()
    print("Введите фамилию хозяина: ", end="")
    last_name = input()

    records = execute_notrans(
        "SELECT disease, start_date, end_date FROM cat_disease_history WHERE cat_id = (SELECT cat_id FROM cat, master WHERE cat.name = %s AND cat.master = master.login AND master.last_name = %s",
        cat_name, last_name)

    print("История болезней:")
    for rec in records:
        print("{}: ".format(rec[0]), end="")
        print("с {}".format(str(rec[1])), end="")
        if rec[2] is not None:
            print(" по {}".format(str(rec[2])))
        else:
            print("")
コード例 #6
0
def create_database():
    execute_notrans("CREATE DATABASE cat_vet;", db="postgres")
コード例 #7
0
def deinit_database():
    execute_notrans("DROP DATABASE IF EXISTS cat_vet;", db="postgres")