vladimir-puzic / pos_software

0 stars 0 forks source link

App crash when creating new production database #8

Closed vladimir-puzic closed 3 months ago

vladimir-puzic commented 3 months ago

ERROR: Enter DB name: test Connect to DB 'test'? 1 - yes 0 - no 1 Connected to DB 'test' Traceback (most recent call last): File "e:\PROJECTS\pos_software\database_session.py", line 1020, in menu = MainMenu() ^^^^^^^^^^ File "e:\PROJECTS\pos_software\database_session.py", line 246, in init 1: MenuTransactionManagement(), ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "e:\PROJECTS\pos_software\database_session.py", line 269, in init 3: MenuDeleteTransactions(), ^^^^^^^^^^^^^^^^^^^^^^^^ File "e:\PROJECTS\pos_software\database_session.py", line 306, in init 2: DeleteTransactionAll(), ^^^^^^^^^^^^^^^^^^^^^^ File "e:\PROJECTS\pos_software\database_session.py", line 423, in init self._function = session.db_delete_transactions_all() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "e:\PROJECTS\pos_software\database_session.py", line 172, in db_delete_transactions_all self.cursor.execute(f"DELETE FROM Transactions") sqlite3.OperationalError: no such table: Transactions

vladimir-puzic commented 3 months ago

Issue fixed in commit a82ee4b

MainMenu > MenuTransactionManagement > MenuDeleteTransactions > DeleteTransactionAll

The DeleteTransactionAll class was executing the db_delete_transactions_all function on startup, without any user input. Upon checking the class, I noticed that in the line that defined the self._function, there were brackets along with the db_delete_transactions_all name, which caused the function to run when the class was defined.

Same root cause as for issue #7

Original: class DeleteTransactionAll(MenuItem): def init(self) -> None: super().init() self._header = 'Delete All Transactions' self._function = session.db_delete_transactions_all()

Fixed: class DeleteTransactionAll(MenuItem): def init(self) -> None: super().init() self._header = 'Delete All Transactions' self._function = session.db_delete_transactions_all