Fix: Bill when printed was mangling up the taxes and amounts massively.

This was when we would make a dictionary of inventories and update quantities.
This commit is contained in:
Amritanshu Agrawal 2021-04-17 14:32:55 +05:30
parent 2612da063b
commit 12f63cec73
4 changed files with 13 additions and 7 deletions

View File

@ -40,13 +40,15 @@ def print_bill(voucher_id: uuid.UUID, db: Session):
key = (
i.product_id,
i.is_happy_hour,
tuple(m.modifier_id for m in i.modifiers if m.modifier.show_in_bill),
frozenset(m.modifier_id for m in i.modifiers if m.modifier.show_in_bill),
)
if key in items_dict:
items_dict[key].quantity += i.quantity
i.quantity = 0
else:
items_dict[key] = i
for i in [it for it in items_dict.values() if it.quantity != 0]:
get_tax_item(i.tax.id, i.tax.name, i.tax_amount, tax)
data = design_bill(voucher, items_dict.values(), tax.values(), db)
redis: ArqRedis = asyncio.run(create_pool(redis_settings))

View File

@ -69,12 +69,12 @@ def delete_route(
with SessionFuture() as db:
if db.execute(select(count(user_roles.c.id)).where(user_roles.c.role_id == id_)).scalar_one() > 0:
raise HTTPException(
status_code=status.HTTP_501_NOT_IMPLEMENTED,
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail="This Role has been assigned to users and cannot be deleted.",
)
if db.execute(select(count(role_permissions.c.id)).where(role_permissions.c.role_id == id_)).scalar_one() > 0:
raise HTTPException(
status_code=status.HTTP_501_NOT_IMPLEMENTED,
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail="This Role has permissions and cannot be deleted.",
)
item: Role = db.execute(select(Role).where(Role.id == id_)).scalar_one()

View File

@ -55,9 +55,11 @@ def save(
if update_table:
do_update_table(item, guest_book, db)
db.commit()
print_kot(item.id, db)
voucher_id = item.id
with SessionFuture() as db:
print_kot(voucher_id, db)
if item.voucher_type != VoucherType.KOT:
print_bill(item.id, db)
print_bill(voucher_id, db)
except SQLAlchemyError as e:
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,

View File

@ -169,10 +169,12 @@ def update_route(
if update_table:
do_update_table(item, guest_book, db)
db.commit()
voucher_id = item.id
with SessionFuture() as db:
if need_to_print_kot:
print_kot(item.id, db)
print_kot(voucher_id, db)
if item.voucher_type != VoucherType.KOT:
print_bill(item.id, db)
print_bill(voucher_id, db)
except SQLAlchemyError as e:
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,