src/EditWater.cpp

changeset 385
09af9f46518f
parent 353
324a7268796b
--- a/src/EditWater.cpp	Sun Jul 31 20:23:27 2022 +0200
+++ b/src/EditWater.cpp	Mon Aug 01 13:05:23 2022 +0200
@@ -88,7 +88,6 @@
 
 EditWater::~EditWater()
 {
-    qDebug() << "EditWater done";
     delete ui;
     emit entry_changed();
 }
@@ -155,7 +154,7 @@
 	}
 	query.exec();
 	if (query.lastError().isValid()) {
-	    qDebug() << "EditWater" << query.lastError();
+	    qWarning() << "EditWater" << query.lastError();
 	    QMessageBox::warning(this, tr("Database error"),
                         tr("MySQL error: %1\n%2\n%3")
                         .arg(query.lastError().nativeErrorCode())
@@ -172,15 +171,58 @@
 }
 
 
+void EditWater::on_cloneButton_clicked()
+{
+    QSqlQuery query;
+
+    query.prepare("INSERT INTO inventory_waters SET name=:name, unlimited_stock=:unlimited, calcium=:ca, "
+                "bicarbonate=:hco, sulfate=:so4, chloride=:cl, sodium=:na, magnesium=:mg, ph=:ph, notes=:notes, "
+                "total_alkalinity=:alkalinity, inventory=:inventory, cost=:cost, nitrate=:no, uuid = :uuid");
+
+    query.bindValue(":name", ui->nameEdit->text() + " [copy]");
+    query.bindValue(":unlimited", ui->unlimitedEdit->isChecked() ? 1:0);
+    query.bindValue(":ca", round(calcium * 1000) / 1000);
+    query.bindValue(":hco", round(bicarbonate * 1000) / 1000);
+    query.bindValue(":so4", round(sulfate * 1000) / 1000);
+    query.bindValue(":cl", round(chloride * 1000) / 1000);
+    query.bindValue(":na", round(sodium * 1000) / 1000);
+    query.bindValue(":mg", round(magnesium * 1000) / 1000);
+    query.bindValue(":ph", round(ph * 1000) / 1000);
+    query.bindValue(":notes", ui->notesEdit->toPlainText());
+    query.bindValue(":alkalinity", round(total_alkalinity * 1000) / 1000);
+    query.bindValue(":inventory", QString("%1").arg(0, 2, 'f', 1, '0'));
+    query.bindValue(":cost", QString("%1").arg(ui->costEdit->value(), 6, 'f', 5, '0'));
+    query.bindValue(":no", round(nitrate * 1000) / 1000);
+    query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36));
+
+    query.exec();
+    if (query.lastError().isValid()) {
+	qWarning() << "EditWater" << 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 {
+	qDebug() << "EditWater Saved";
+    }
+}
+
+
 void EditWater::on_deleteButton_clicked()
 {
     QSqlQuery query;
 
+    int rc = QMessageBox::warning(this, tr("Delete water"), tr("Delete %1").arg(ui->nameEdit->text()),
+                    QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
+    if (rc == QMessageBox::No)
+        return;
+
     query.prepare("DELETE FROM inventory_waters WHERE record = :recno");
     query.bindValue(":recno", this->recno);
     query.exec();
     if (query.lastError().isValid()) {
-	qDebug() << "EditWater" << query.lastError();
+	qWarning() << "EditWater" << query.lastError();
 	QMessageBox::warning(this, tr("Database error"),
                         tr("MySQL error: %1\n%2\n%3")
                         .arg(query.lastError().nativeErrorCode())

mercurial