src/EditSupplier.cpp

changeset 21
15e5879df8dc
parent 17
f0bcdbd3d36f
child 60
0d65238ebedc
--- a/src/EditSupplier.cpp	Sat Feb 19 22:17:09 2022 +0100
+++ b/src/EditSupplier.cpp	Sun Feb 20 10:34:24 2022 +0100
@@ -53,12 +53,15 @@
     connect(ui->emailEdit, &QLineEdit::textChanged, this, &EditSupplier::is_changed);
     connect(ui->phoneEdit, &QLineEdit::textChanged, this, &EditSupplier::is_changed);
     connect(ui->notesEdit, SIGNAL(textChanged()), this, SLOT(is_changed()));
+
+    ui->saveButton->setEnabled(false);
+    ui->deleteButton->setEnabled((id >= 0) ? true:false);
 }
 
 
 EditSupplier::~EditSupplier()
 {
-    qDebug() << "EditSupplier closed";
+    qDebug() << "EditSupplier done";
     delete ui;
     emit entry_changed();
 }
@@ -84,7 +87,7 @@
 }
 
 
-void EditSupplier::onOKButtonClicked()
+void EditSupplier::on_saveButton_clicked()
 {
     QSqlQuery query;
 
@@ -127,26 +130,61 @@
 	} else {
 	    qDebug() << "EditSupplier Saved";
 	}
+    }
 
-    	this->close();
-    	this->setResult(1);
+    ui->saveButton->setEnabled(false);
+    this->textIsChanged = false;
+    WindowTitle();
+}
+
+
+void EditSupplier::on_deleteButton_clicked()
+{
+    QSqlQuery query;
+
+    query.prepare("DELETE FROM inventory_suppliers WHERE record = :recno");
+    query.bindValue(":recno", this->recno);
+    query.exec();
+    if (query.lastError().isValid()) {
+        qDebug() << "EditSupplier" << query.lastError();
+        QMessageBox::warning(this, tr("Database error"),
+                        tr("MySQL error: %1\n%2\n%3")
+                        .arg(query.lastError().nativeErrorCode())
+                        .arg(query.lastError().driverText())
+                        .arg(query.lastError().databaseText()));
     } else {
-	/* Not saving */
-	this->close();
-	this->setResult(0);
+        qDebug() << "EditSupllier Deleted" << this->recno;
     }
+
+    this->close();
+    this->setResult(1);
 }
 
 
 void EditSupplier::is_changed()
 {
+    ui->saveButton->setEnabled(true);
     this->textIsChanged = true;
     WindowTitle();
 }
 
 
-void EditSupplier::onCancelButtonClicked()
+void EditSupplier::on_quitButton_clicked()
 {
+    if (this->textIsChanged) {
+        int rc = QMessageBox::warning(this, tr("Supplier changed"), tr("The supplier has been modified\n Save changes?"),
+                                QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Save);
+        switch (rc) {
+            case QMessageBox::Save:
+                        on_saveButton_clicked();
+                        break;  /* Saved and then Quit */
+            case QMessageBox::Discard:
+                        break;  /* Quit without Save */
+            case QMessageBox::Cancel:
+                        return; /* Return to the editor page */
+        }
+    }
+
     this->close();
-    this->setResult(0);
+    this->setResult(1);
 }

mercurial