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
def set_ingredient_dose(id_: int, dose: int) -> None: ( session.query(Ingredient) .filter(Ingredient.id == id_) .update({'dose': dose}) ) session.commit()
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()
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()
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)
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
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()
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
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
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
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
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
def set_component_amount(component_id: int, amount: int) -> None: (session.query(Component).filter(Component.id == component_id).update( {'amount': amount})) session.commit()
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()
def set_critical_norm(component_id: int, amount: int) -> None: (session.query(CriticalNorm).filter( CriticalNorm.id == component_id).update({'amount': amount})) session.commit()
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
def get_cooking_book(): res = session.query(CookingBook).all() for item in res: print(item) session.commit()
def get_all_clients(): res = session.query(Client).all() for item in res: print(item) session.commit()
def delete_recipe(order_id: int): session.query(Recipe).filter(Recipe.order_id == order_id) \ .delete() session.commit()
def get_all_recipes(): res = session.query(Recipe).all() for item in res: print(item) session.commit()
def get_all_orders(): res = session.query(Order).all() for item in res: print(item) session.commit()
def get_all_medicines(): res = session.query(Medicine).all() for item in res: print(item) session.commit()
def get_critical_norm(): res = session.query(CriticalNorm).all() for item in res: print(item) session.commit()