def delete_customer(self): if self._assert_any_checked(): msg_box = QMessageBox(self) msg_box.setIcon(QMessageBox.Question) msg_box.setWindowTitle('Informacja') msg_box.setText('Na pewno usunąć kontrahenta?') msg_box.setStandardButtons(QMessageBox.Yes | QMessageBox.No) buttonY = msg_box.button(QMessageBox.Yes) buttonY.setText('Tak') buttonN = msg_box.button(QMessageBox.No) buttonN.setText('Nie') msg_box.exec_() if msg_box.clickedButton() == buttonY: session = data.Session() element = self.customersTableView.selectionModel( ).selectedIndexes() try: c = session.query(data.Customer).filter( data.Customer.alias == element[0].data()).one() session.delete(c) session.commit() QMessageBox.information(self, 'Informacja', 'Kontrahent usunięty') self._refresh_table() except Exception: QMessageBox.warning(self, 'Błąd', 'Nieznany błąd') finally: session.close()
def display_customers_list(self): session = data.Session() try: self.model.setStringList( [alias for alias, in session.query(data.Customer.alias)]) except exc.IntegrityError as errmsg: self._display_critical_window(errmsg, session) finally: session.close()
def _save_template(self): session = data.Session() try: QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) session.add_all(self.selected_customer.template) session.commit() QMessageBox.information(self, 'Informacja', 'Wzorzec zapisany') QApplication.restoreOverrideCursor() except exc.IntegrityError as errmsg: self._display_critical_window(errmsg, session) finally: session.close()
def _load_customer_template(self): selected_alias = self.listView.selectionModel().selectedIndexes( )[0].data() session = data.Session() try: self.selected_customer = session.query(data.Customer).filter( data.Customer.alias == selected_alias).one() self._fill_template_data(self.selected_customer.template) self.customer_label.setText( f"Wybrany kontrahent: {self.selected_customer.alias}") self._build_table() self._update_total_label() except exc.IntegrityError as errmsg: self._display_critical_window(errmsg, session) finally: session.close()
def add_customer(self): session = data.Session() try: customers_dialog = NewCustomerDialog(session) if customers_dialog.exec_() == QDialog.Accepted: self._refresh_table() except exc.IntegrityError as errmsg: print(errmsg) session.rollback() msg = QMessageBox() msg.setText("Krytyczny błąd bazy danych") msg.setWindowTitle("Błąd krytyczny") msg.setDetailedText(errmsg) msg.setStandardButtons(QMessageBox.Ok) msg.buttonClicked.connect(sys.exit) finally: session.close()
def _add_product(self): session = data.Session() try: if session.query(data.Product).all(): select_product = SelectProductDialog(session, self.selected_customer) if select_product.exec_() == QDialog.Accepted: QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) self._add_new_row(self.selected_customer.template[-1]) self._build_table() QApplication.restoreOverrideCursor() else: QMessageBox.warning( self, 'Błąd', 'Nie ma żadnych produktów, które można by dodać') except exc.IntegrityError as errmsg: self._display_critical_window(errmsg, session) finally: session.close()
def edit_customer(self): if self._assert_any_checked(): session = data.Session() try: selected_item = self.customersTableView.selectedIndexes() customer_query_obj = session.query(data.Customer).filter( data.Customer.alias == selected_item[0].data()).one() edit_employee_window = EditCustomerDialog( session, customer_query_obj) if edit_employee_window.exec_() == QDialog.Accepted: self._refresh_table() except exc.IntegrityError as errmsg: print(errmsg) self.session.rollback() msg = QMessageBox() msg.setIcon(QMessageBox.Critical) msg.setText("Krytyczny błąd bazy danych") msg.setWindowTitle("Błąd krytyczny") msg.setDetailedText(errmsg) msg.setStandardButtons(QMessageBox.Ok) msg.buttonClicked.connect(sys.exit) finally: session.close()
def fill_table(self): self.sti.clear() session = data.Session() for cust in session.query(data.Customer): self.add_new_row(cust) session.close()
def fill_table(self): self.sti.clear() session = data.Session() for prod in session.query(data.Product): self.add_new_row(prod) session.close()