diff -r d68826df8b63 -r 09af9f46518f src/EditEquipment.cpp --- a/src/EditEquipment.cpp Sun Jul 31 20:23:27 2022 +0200 +++ b/src/EditEquipment.cpp Mon Aug 01 13:05:23 2022 +0200 @@ -72,7 +72,6 @@ query2.bindValue(":name", query.value(1).toString()); query2.exec(); inuse = query2.size(); - qDebug() << "in use" << inuse; ui->nameEdit->setReadOnly(inuse > 0); } else { /* Set some defaults */ @@ -132,7 +131,6 @@ EditEquipment::~EditEquipment() { - qDebug() << "EditEquipment done"; delete ui; emit entry_changed(); } @@ -221,7 +219,7 @@ } query.exec(); if (query.lastError().isValid()) { - qDebug() << "EditEquipment" << query.lastError(); + qWarning() << "EditEquipment" << query.lastError(); QMessageBox::warning(this, tr("Database error"), tr("MySQL error: %1\n%2\n%3") .arg(query.lastError().nativeErrorCode()) @@ -238,15 +236,73 @@ } +void EditEquipment::on_cloneButton_clicked() +{ + QSqlQuery query; + + query.prepare("INSERT INTO inventory_equipments SET name=:name, boil_size=:boil_size, " + "batch_size=:batch_size, tun_volume=:tun_volume, tun_weight=:tun_weight, " + "tun_specific_heat=:tun_specific_heat, tun_material=:tun_material, tun_height=:tun_height, " + "top_up_water=:top_up_water, trub_chiller_loss=:chiller_loss, evap_rate=:evap_rate, " + "boil_time=:boil_time, calc_boil_volume=:calcboil, top_up_kettle=:top_up_kettle, " + "hop_utilization=:hopfactor, notes=:notes, lauter_volume=:lauter_volume, " + "lauter_height=:lauter_height, lauter_deadspace=:lauter_deadspace, kettle_volume=:kettle_volume, " + "kettle_height=:kettle_height, mash_volume=:mash_volume, mash_max=:mash_max, " + "efficiency=:efficiency, uuid=:uuid"); + + query.bindValue(":name", ui->nameEdit->text() + " [copy]"); + query.bindValue(":boil_size", QString("%1").arg(ui->boil_sizeEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":batch_size", QString("%1").arg(ui->batch_sizeEdit->value(), 3, 'f', 2, '0')); + query.bindValue(":tun_volume", QString("%1").arg(ui->tun_volumeEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":tun_weight", QString("%1").arg(ui->tun_weightEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":tun_specific_heat", QString("%1").arg(ui->tun_specific_heatEdit->value(), 4, 'f', 3, '0')); + query.bindValue(":tun_material", ui->tun_materialEdit->currentIndex()); + query.bindValue(":tun_height", QString("%1").arg(ui->tun_heightEdit->value() / 100, 4, 'f', 3, '0')); + query.bindValue(":top_up_water", QString("%1").arg(ui->top_up_waterEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":chiller_loss", QString("%1").arg(ui->chiller_lossEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":evap_rate", QString("%1").arg(ui->evap_rateEdit->value(), 3, 'f', 2, '0')); + query.bindValue(":boil_time", QString("%1").arg(ui->boil_timeEdit->value(), 1, 'f', 0, '0')); + query.bindValue(":calcboil", ui->calcboilEdit->isChecked() ? 1:0); + query.bindValue(":top_up_kettle", QString("%1").arg(ui->top_up_kettleEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":hopfactor", QString("%1").arg(ui->hopfactorEdit->value(), 1, 'f', 0, '0')); + query.bindValue(":notes", ui->notesEdit->toPlainText()); + query.bindValue(":lauter_volume", QString("%1").arg(ui->lauter_volumeEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":lauter_height", QString("%1").arg(ui->lauter_heightEdit->value() / 100, 4, 'f', 3, '0')); + query.bindValue(":lauter_deadspace", QString("%1").arg(ui->lauter_deadspaceEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":kettle_volume", QString("%1").arg(ui->kettle_volumeEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":kettle_height", QString("%1").arg(ui->kettle_heightEdit->value() / 100, 4, 'f', 3, '0')); + query.bindValue(":mash_volume", QString("%1").arg(ui->mash_volumeEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":mash_max", QString("%1").arg(ui->mash_maxEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":efficiency", QString("%1").arg(ui->efficiencyEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36)); + query.exec(); + if (query.lastError().isValid()) { + qWarning() << "EditEquipment" << 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() << "EditEquipment Saved"; + } +} + + void EditEquipment::on_deleteButton_clicked() { QSqlQuery query; + int rc = QMessageBox::warning(this, tr("Delete equipment"), tr("Delete %1").arg(ui->nameEdit->text()), + QMessageBox::Yes | QMessageBox::No, QMessageBox::No); + if (rc == QMessageBox::No) + return; + query.prepare("DELETE FROM inventory_equipments WHERE record = :recno"); query.bindValue(":recno", this->recno); query.exec(); if (query.lastError().isValid()) { - qDebug() << "EditEquipment" << query.lastError(); + qWarning() << "EditEquipment" << query.lastError(); QMessageBox::warning(this, tr("Database error"), tr("MySQL error: %1\n%2\n%3") .arg(query.lastError().nativeErrorCode())