diff --git a/src/wce_crm/gui.py b/src/wce_crm/gui.py index 251d9f7..a2a3ac5 100644 --- a/src/wce_crm/gui.py +++ b/src/wce_crm/gui.py @@ -1679,19 +1679,38 @@ class AutoForm(QWidget): "[Auto-Form] Form data with 'exlude' (must be saved in the database):\n%s", pformat(db_data), ) + try: + if self.STATE.rec_id is None: + logger_auto_form.debug("[Auto-Form] Insert triggered...") + init_rec_id = self.cfg.data_insert(db_data) + assert isinstance(init_rec_id, int) + self.STATE.rec_id = init_rec_id + else: + logger_auto_form.debug("[Auto-Form] Update triggered...") + self.cfg.data_update(self.STATE.rec_id, db_data) - if self.STATE.rec_id is None: - logger_auto_form.debug("[Auto-Form] Insert triggered...") - init_rec_id = self.cfg.data_insert(db_data) - assert isinstance(init_rec_id, int) - self.STATE.rec_id = init_rec_id + self.update_triggered.emit() + self._activate_delete() + except Exception as err: + msg_box = get_message_box( + QMessageBox.Icon.Warning, + "Speichern fehlgeschlagen", + ( + "Beim Speichern der Daten ist ein Fehler aufgetreten. Details sind " + "unten angefügt." + ), + detailed_text=str(err), + ) + msg_box.exec() else: - logger_auto_form.debug("[Auto-Form] Update triggered...") - self.cfg.data_update(self.STATE.rec_id, db_data) + logger_auto_form.info("[Auto-Form] Data saved successfully") + msg_box = get_message_box( + QMessageBox.Icon.Information, + "Speichern erfolgreich", + "Die Daten wurden erfolgreich gespeichert", + ) + msg_box.exec() - logger_auto_form.info("[Auto-Form] Data saved successfully") - self.update_triggered.emit() - self._activate_delete() finally: # always re-enable save, even if error occurred self._enable_save()