Fix: Could not open bill with bill number or voucher id

This commit is contained in:
2025-07-09 15:35:35 +00:00
parent 2c89e218c8
commit 26c65b4b65

View File

@ -59,25 +59,29 @@ def from_id(
ProductVersion.valid_till >= Voucher.date,
),
)
item: Voucher = db.execute(
select(Voucher)
.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(Voucher.id == id_)
.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),
item: Voucher = (
db.execute(
select(Voucher)
.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(Voucher.id == id_)
.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),
)
)
).scalar_one()
.unique()
.scalar_one()
)
return voucher_info(item, db)
@ -104,28 +108,32 @@ def from_bill(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail="Bill Number is invalid",
)
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),
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),
)
)
).scalar_one_or_none()
.unique()
.scalar_one_or_none()
)
if item is None:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
@ -192,8 +200,7 @@ def from_table(
)
)
.unique()
.scalars()
.one()
.scalar_one()
)
if guest is not None: