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()
Exemple #2
0
 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()
Exemple #3
0
 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()
Exemple #4
0
 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()
Exemple #6
0
 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()
Exemple #9
0
 def fill_table(self):
     self.sti.clear()
     session = data.Session()
     for prod in session.query(data.Product):
         self.add_new_row(prod)
     session.close()