Esempio n. 1
0
    async def update_item_list(self, db: Session, *, order_db: Order,
                               order_update: OrderUpdate) -> Order:

        db.query(ItemOrder).filter(ItemOrder.order_id == order_db.id).delete()

        item_orders: List[ItemOrder] = []

        for item in order_update.items_in_order:

            item_order = ItemOrder(
                tot_price=item.tot_price,
                quantity=item.quantity,
                order_id=order_db.id,
                item_id=item.item_id,
            )

            item_orders.append(item_order)

        order_db.items = item_orders

        db.add(order_db)
        db.commit()
        db.flush(order_db)

        return order_db
Esempio n. 2
0
    async def create(self, db: Session, *, order_in: OrderCreate) -> Order:

        new_order = Order(business_id=order_in.business_id)

        db.add(new_order)
        db.commit()
        db.flush(new_order)

        item_orders: List[ItemOrder] = []

        for item in order_in.items_in_order:

            item_db = await crud.item.get(db, id=item.item_id)

            if not item_db:
                raise HTTPException(status_code=404,
                                    detail=f"Item {item.item_id} not found")

            # Create a new relation ItemOrder

            item_order = ItemOrder(
                tot_price=item.tot_price,
                quantity=item.quantity,
                order_id=new_order.id,
                item_id=item_db.id,
            )

            item_orders.append(item_order)

        new_order.items = item_orders

        db.add(new_order)
        db.commit()
        db.flush(new_order)

        return new_order