diff --git a/barker/barker/routers/voucher/show.py b/barker/barker/routers/voucher/show.py index db71cf0..ee7abeb 100644 --- a/barker/barker/routers/voucher/show.py +++ b/barker/barker/routers/voucher/show.py @@ -68,6 +68,7 @@ def from_id( .join(Inventory.product) .join(ProductVersion, onclause=product_version_onclause) .where(Voucher.id == id_) + .order_by(Kot.code) .options( contains_eager(Voucher.food_table), contains_eager(Voucher.customer), @@ -103,31 +104,28 @@ def from_bill( status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, detail="Bill Number is invalid", ) - item = ( - db.execute( - select(Voucher) - .join(Voucher.bills) - .join(Bill.regime) - .join(Voucher.food_table) - .join(Voucher.customer, isouter=True) - .join(Voucher.kots) - .join(Kot.inventories) - .join(Inventory.product) - .join(ProductVersion, onclause=product_version_onclause) - .where(Regime.prefix == match.group(1), Bill.bill_number == int(match.group(2))) - .options( - contains_eager(Voucher.food_table), - contains_eager(Voucher.customer), - contains_eager(Voucher.kots) - .contains_eager(Kot.inventories) - .contains_eager(Inventory.product) - .contains_eager(Product.versions), - contains_eager(Voucher.bills).contains_eager(Bill.regime), - ) + item: Voucher | None = db.execute( + select(Voucher) + .join(Voucher.bills) + .join(Bill.regime) + .join(Voucher.food_table) + .join(Voucher.customer, isouter=True) + .join(Voucher.kots) + .join(Kot.inventories) + .join(Inventory.product) + .join(ProductVersion, onclause=product_version_onclause) + .where(Regime.prefix == match.group(1), Bill.bill_number == int(match.group(2))) + .order_by(Kot.code) + .options( + contains_eager(Voucher.food_table), + contains_eager(Voucher.customer), + contains_eager(Voucher.kots) + .contains_eager(Kot.inventories) + .contains_eager(Inventory.product) + .contains_eager(Product.versions), + contains_eager(Voucher.bills).contains_eager(Bill.regime), ) - .scalars() - .one_or_none() - ) + ).scalar_one_or_none() if item is None: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, @@ -183,6 +181,7 @@ def from_table( .join(Inventory.product) .join(ProductVersion, onclause=product_version_onclause) .where(Voucher.id == v) + .order_by(Kot.code) .options( contains_eager(Voucher.food_table), contains_eager(Voucher.customer),