diff -r d68826df8b63 -r 09af9f46518f src/EditYeast.cpp --- a/src/EditYeast.cpp Sun Jul 31 20:23:27 2022 +0200 +++ b/src/EditYeast.cpp Mon Aug 01 13:05:23 2022 +0200 @@ -155,7 +155,6 @@ EditYeast::~EditYeast() { - qDebug() << "EditYeast done"; delete ui; emit entry_changed(); } @@ -310,7 +309,7 @@ } query.exec(); if (query.lastError().isValid()) { - qDebug() << "EditYeast" << query.lastError(); + qWarning() << "EditYeast" << query.lastError(); QMessageBox::warning(this, tr("Database error"), tr("MySQL error: %1\n%2\n%3") .arg(query.lastError().nativeErrorCode()) @@ -327,15 +326,77 @@ } +void EditYeast::on_cloneButton_clicked() +{ + QSqlQuery query; + + query.prepare("INSERT INTO inventory_yeasts SET name=:name, type=:type, form=:form, " + "laboratory=:laboratory, product_id=:productid, min_temperature=:templo, max_temperature=:temphi, " + "flocculation=:floc, attenuation=:att, tolerance=:tolerance, notes=:notes, best_for=:bestfor, " + "max_reuse=:reuse, inventory=:inventory, cost=:cost, production_date=:prod, tht_date=:tht, " + "cells=:cells, sta1=:sta1, bacteria=:bacteria, harvest_top=:harvesttop, harvest_time=:harvesttime, " + "pitch_temperature=:pitchtemp, pofpos=:pof, short_desc=:yeastbank, gr_hl_lo=:grhllo, sg_lo=:sglo, " + "gr_hl_hi=:grhlhi, sg_hi=:sghi, uuid = :uuid"); + + query.bindValue(":name", ui->nameEdit->text() + " [copy]"); + query.bindValue(":type", ui->typeEdit->currentIndex()); + query.bindValue(":form", ui->formEdit->currentIndex()); + query.bindValue(":laboratory", ui->laboratoryEdit->text()); + query.bindValue(":productid", ui->productidEdit->text()); + query.bindValue(":templo", QString("%1").arg(ui->temploEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":temphi", QString("%1").arg(ui->temphiEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":floc", ui->flocEdit->currentIndex()); + query.bindValue(":att", QString("%1").arg(ui->attEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":tolerance", QString("%1").arg(ui->toleranceEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":notes", ui->notesEdit->toPlainText()); + query.bindValue(":bestfor", ui->bestforEdit->toPlainText()); + query.bindValue(":reuse", ui->reuseEdit->value()); + query.bindValue(":inventory", QString("%1").arg(0, 5, 'f', 4, '0')); + query.bindValue(":cost", QString("%1").arg(ui->costEdit->value(), 3, 'f', 2, '0')); + query.bindValue(":prod", QDate()); + query.bindValue(":tht", QDate()); + query.bindValue(":cells", QString("%1").arg(ui->cellsEdit->value() * 1000000000, 1, 'f', 0, '0')); + query.bindValue(":sta1", ui->sta1Edit->isChecked() ? 1:0); + query.bindValue(":bacteria", ui->bacteriaEdit->isChecked() ? 1:0); + query.bindValue(":harvesttop", ui->harvesttopEdit->isChecked() ? 1:0); + query.bindValue(":harvesttime", ui->harvesttimeEdit->value()); + query.bindValue(":pitchtemp", QString("%1").arg(ui->pitchtempEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":pof", ui->pofEdit->isChecked() ? 1:0); + query.bindValue(":yeastbank", ui->yeastbankEdit->text()); + query.bindValue(":grhllo", QString("%1").arg(ui->grhlloEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":sglo", ui->sgloEdit->value()); + query.bindValue(":grhlhi", QString("%1").arg(ui->grhlhiEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":sghi", ui->sghiEdit->value()); + query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36)); + + query.exec(); + if (query.lastError().isValid()) { + qWarning() << "EditYeast" << 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() << "EditYeast Saved"; + } +} + + void EditYeast::on_deleteButton_clicked() { QSqlQuery query; + int rc = QMessageBox::warning(this, tr("Delete yeast"), tr("Delete %1").arg(ui->nameEdit->text()), + QMessageBox::Yes | QMessageBox::No, QMessageBox::No); + if (rc == QMessageBox::No) + return; + query.prepare("DELETE FROM inventory_yeasts WHERE record = :recno"); query.bindValue(":recno", this->recno); query.exec(); if (query.lastError().isValid()) { - qDebug() << "EditYeast" << query.lastError(); + qWarning() << "EditYeast" << query.lastError(); QMessageBox::warning(this, tr("Database error"), tr("MySQL error: %1\n%2\n%3") .arg(query.lastError().nativeErrorCode())