diff --git a/dibbler/menus/addstock.py b/dibbler/menus/addstock.py index ee4ecd3..5d81192 100644 --- a/dibbler/menus/addstock.py +++ b/dibbler/menus/addstock.py @@ -167,4 +167,5 @@ much money you're due in credits for the purchase when prompted.\n""" for user in self.users: print(f"User {user.name}'s credit is now {user.credit:d}") except sqlalchemy.exc.SQLAlchemyError as e: + self.sql_session.rollback() print(f"Could not perform transaction: {e}") diff --git a/dibbler/menus/buymenu.py b/dibbler/menus/buymenu.py index e764e1e..73f65e7 100644 --- a/dibbler/menus/buymenu.py +++ b/dibbler/menus/buymenu.py @@ -187,6 +187,7 @@ When finished, write an empty line to confirm the purchase.\n""" try: self.sql_session.commit() except sqlalchemy.exc.SQLAlchemyError as e: + self.sql_session.rollback() print(f"Could not store purchase: {e}") else: print("Purchase stored.") diff --git a/dibbler/menus/editing.py b/dibbler/menus/editing.py index 2330db0..5440877 100644 --- a/dibbler/menus/editing.py +++ b/dibbler/menus/editing.py @@ -35,6 +35,7 @@ class AddUserMenu(Menu): self.sql_session.commit() print(f"User {username} stored") except sqlalchemy.exc.IntegrityError as e: + self.sql_session.rollback() print(f"Could not store user {username}: {e}") self.pause() @@ -74,6 +75,7 @@ user, then rfid (write an empty line to remove the card number or rfid). self.sql_session.commit() print(f"User {user.name} stored") except sqlalchemy.exc.SQLAlchemyError as e: + self.sql_session.rollback() print(f"Could not store user {user.name}: {e}") self.pause() @@ -93,6 +95,7 @@ class AddProductMenu(Menu): self.sql_session.commit() print(f"Product {name} stored") except sqlalchemy.exc.SQLAlchemyError as e: + self.sql_session.rollback() print(f"Could not store product {name}: {e}") self.pause() @@ -141,6 +144,7 @@ class EditProductMenu(Menu): self.sql_session.commit() print(f"Product {product.name} stored") except sqlalchemy.exc.SQLAlchemyError as e: + self.sql_session.rollback() print(f"Could not store product {product.name}: {e}") self.pause() return @@ -175,6 +179,7 @@ class AdjustStockMenu(Menu): print("Stock is now stored") self.pause() except sqlalchemy.exc.SQLAlchemyError as e: + self.sql_session.rollback() print(f"Could not store stock: {e}") self.pause() return @@ -211,6 +216,7 @@ class CleanupStockMenu(Menu): print("New stocks are now stored.") self.pause() except sqlalchemy.exc.SQLAlchemyError as e: + self.sql_session.rollback() print(f"Could not store stock: {e}") self.pause() return diff --git a/dibbler/menus/miscmenus.py b/dibbler/menus/miscmenus.py index ea3e54c..7853951 100644 --- a/dibbler/menus/miscmenus.py +++ b/dibbler/menus/miscmenus.py @@ -36,6 +36,7 @@ class TransferMenu(Menu): print(f"User {user2}'s credit is now {user2.credit:d} kr") print(f"Comment: {comment}") except sqlalchemy.exc.SQLAlchemyError as e: + self.sql_session.rollback() print(f"Could not perform transfer: {e}") # self.pause() @@ -171,6 +172,7 @@ class AdjustCreditMenu(Menu): self.sql_session.commit() print(f"User {user.name}'s credit is now {user.credit:d} kr") except sqlalchemy.exc.SQLAlchemyError as e: + self.sql_session.rollback() print(f"Could not store transaction: {e}") # self.pause()