diff -r d68826df8b63 -r 09af9f46518f src/EditWater.cpp --- 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())