Esempio n. 1
0
def create_medicine(
    name: str,
    storage_time: date,
    amount: float,
    price: float,
    type: MedicineType,
    cooking_method: CookingMethod,
    ingredients_ids: t.List[int] = [],
) -> Medicine:
    med = Medicine(
        name=name,
        storage_time=storage_time,
        amount=amount,
        price=price,
        type=type,
    )
    ingredients = (session.query(Ingredient).filter(
        Ingredient.id.in_(ingredients_ids)))
    if ingredients:
        med.ingredients.extend(ingredients)
    session.add(med)
    session.commit()

    cb_service.create_cooking_book(med.id, cooking_method)
    return med
Esempio n. 2
0
def set_ingredient_dose(id_: int, dose: int) -> None:
    (
        session.query(Ingredient)
        .filter(Ingredient.id == id_)
        .update({'dose': dose})
    )
    session.commit()
Esempio n. 3
0
def delete_client_handler():
    try:
        id_ = int(input('Enter client id to delete:'))
    except (ValueError, TypeError):
        print('Invalid id')
        return
    session.query(Client).filter(Client.id == id_).delete()
    session.commit()
Esempio n. 4
0
def delete_medicine_handler():
    try:
        medicine_id = int(input('Enter medicine id to delete:'))
    except (ValueError, TypeError):
        print('Invalid id')
        return
    mn = session.query(Medicine).filter(Medicine.id == medicine_id).first()
    session.query(Recipe).filter(Recipe.medicine_name == mn.name).delete()
    session.query(Medicine).filter(Medicine.id == medicine_id).delete()
    session.commit()
Esempio n. 5
0
def create_recipe_and_order_handler():
    print("Creating recipe:")
    doctor = input('Enter doctor:')
    try:
        client_id = int(input('Enter client id:'))
    except (ValueError, TypeError):
        print('Wrong client id')
        return
    diagnosis = input('Enter diagnosis:')
    try:
        amount = int(input('Enter amount:'))
    except (ValueError, TypeError):
        print('Wrong amount')
        return
    consumption_type_str = input('Enter consumption type:')
    try:
        consumption_type = ConsumptionType[consumption_type_str]
    except KeyError:
        print('No such type')
        return
    medicine_name = input('Enter medicine name:')
    medicine = session.query(Medicine).filter(Medicine.name == medicine_name).first()
    if not medicine:
        print("No such medicine")
        return
    recipe = recipe_service.create_recipe(
        doctor=doctor,
        client_id=client_id,
        diagnosis=diagnosis,
        amount=amount,
        consumption_type=consumption_type,
        medicine_name=medicine_name,
    )
    print(recipe)
    print("Creating order")
    try:
        medicine_id = int(input('Enter medicine id:'))
    except (ValueError, TypeError):
        print('Wrong medicine id')
        return
    try:
        rt = input('Enter ready time:')
        ready_time = (
            datetime.datetime.strptime(rt, '%d-%m-%y').date()
        )
    except ValueError:
        print('No such date')
        return
    order = order_service.create_order(
        medicine_id=medicine_id,
        recipe_id=recipe.id,
        ready_time=ready_time,
    )
    session.commit()
    print(order)
Esempio n. 6
0
def add_ingredient(
    component_id: int,
    dose: int,
) -> Ingredient:
    ingredient_record = Ingredient(
        component_id=component_id,
        dose=dose
    )
    session.add(ingredient_record)
    session.commit()
    return ingredient_record
Esempio n. 7
0
def delete_recipe_handler():
    try:
        id_ = int(input('Enter recipe id to delete:'))
    except (ValueError, TypeError):
        print('Invalid id')
        return
    r = session.query(Recipe).get(id_)
    if r.order_id:
        session.query(Order).filter(Order.id == r.order_id).delete()
        session.commit()
    session.query(Recipe).filter(Recipe.id == id_).delete()
    session.commit()
Esempio n. 8
0
def create_critical_norm(
    component_id: int,
    amount: float,
) -> CriticalNorm:
    component = session.query(Component).filter(
        Component.id == component_id).first()
    if not component:
        return None
    crit_norm = CriticalNorm(component_id=component_id, amount=amount)
    session.add(crit_norm)
    session.commit()
    return crit_norm
Esempio n. 9
0
def create_supply_request(
    component_id: int,
    client_id: int,
) -> SupplyRequest:
    component = session.query(Component).filter(
        Component.id == component_id).first()
    if not component:
        return None
    sup_request = SupplyRequest(
        component_id=component_id,
        client_id=client_id,
    )
    session.add(sup_request)
    session.commit()
    return sup_request
Esempio n. 10
0
def create_client(
    first_name: str,
    last_name: str,
    phone: str,
    address: str,
    age: int,
) -> Client:
    client = Client(
        first_name=first_name,
        last_name=last_name,
        phone=phone,
        address=address,
        age=age,
    )
    session.add(client)
    session.commit()
    return client
Esempio n. 11
0
def create_recipe(
    doctor: str,
    client_id: int,
    diagnosis: str,
    amount: float,
    consumption_type: ConsumptionType,
    medicine_name: str,
    order_id: Optional[int] = None,
) -> Recipe:
    client = session.query(Client).filter(Client.id == client_id).first()
    if not client:
        return None
    recipe = Recipe(
        doctor=doctor,
        client_id=client_id,
        diagnosis=diagnosis,
        amount=amount,
        consumption_type=consumption_type,
        order_id=order_id,
        medicine_name=medicine_name,
    )
    session.add(recipe)
    session.commit()
    return recipe
Esempio n. 12
0
def create_component(name: str, price: float, amount: float) -> Component:
    com = Component(name=name, price=price, amount=amount)
    session.add(com)
    session.commit()
    return com
Esempio n. 13
0
def set_component_amount(component_id: int, amount: int) -> None:
    (session.query(Component).filter(Component.id == component_id).update(
        {'amount': amount}))
    session.commit()
Esempio n. 14
0
    ConsumptionType.internal,
    'pills not for kids'
)

r3 = recipe_service.create_recipe(
    'Doctor I Bolit',
    cl3.id,
    'flu',
    2.0,
    ConsumptionType.external,
    'doctor mom'
)

r4 = recipe_service.create_recipe(
    'Doctor I Bolit',
    cl1.id,
    'flu',
    2.0,
    ConsumptionType.external,
    'doctor mom'
)


or1 = order_service.create_order(r1.id, m2.id, datetime.strptime('21-06-21', '%d-%m-%y'))
or2 = order_service.create_order(r2.id, m2.id, datetime.strptime('31-05-21', '%d-%m-%y'))
or3 = order_service.create_order(r3.id, m3.id, datetime.strptime('29-05-21', '%d-%m-%y'))
or4 = order_service.create_order(r4.id, m3.id, datetime.strptime('21-09-21', '%d-%m-%y'))
session.commit()


Esempio n. 15
0
def set_critical_norm(component_id: int, amount: int) -> None:
    (session.query(CriticalNorm).filter(
        CriticalNorm.id == component_id).update({'amount': amount}))
    session.commit()
Esempio n. 16
0
def create_cooking_book(medicine_id: int, method: CookingMethod) -> CookingBook:
    cooking_book = CookingBook(medicine_id=medicine_id, method=method)
    session.add(cooking_book)
    session.commit()
    return cooking_book
Esempio n. 17
0
def get_cooking_book():
    res = session.query(CookingBook).all()
    for item in res:
        print(item)
    session.commit()
Esempio n. 18
0
def get_all_clients():
    res = session.query(Client).all()
    for item in res:
        print(item)
    session.commit()
Esempio n. 19
0
def delete_recipe(order_id: int):
    session.query(Recipe).filter(Recipe.order_id == order_id) \
        .delete()
    session.commit()
Esempio n. 20
0
def get_all_recipes():
    res = session.query(Recipe).all()
    for item in res:
        print(item)
    session.commit()
Esempio n. 21
0
def get_all_orders():
    res = session.query(Order).all()
    for item in res:
        print(item)
    session.commit()
Esempio n. 22
0
def get_all_medicines():
    res = session.query(Medicine).all()
    for item in res:
        print(item)
    session.commit()
Esempio n. 23
0
def get_critical_norm():
    res = session.query(CriticalNorm).all()
    for item in res:
        print(item)
    session.commit()