236 this->textIsChanged = false; |
234 this->textIsChanged = false; |
237 WindowTitle(); |
235 WindowTitle(); |
238 } |
236 } |
239 |
237 |
240 |
238 |
|
239 void EditEquipment::on_cloneButton_clicked() |
|
240 { |
|
241 QSqlQuery query; |
|
242 |
|
243 query.prepare("INSERT INTO inventory_equipments SET name=:name, boil_size=:boil_size, " |
|
244 "batch_size=:batch_size, tun_volume=:tun_volume, tun_weight=:tun_weight, " |
|
245 "tun_specific_heat=:tun_specific_heat, tun_material=:tun_material, tun_height=:tun_height, " |
|
246 "top_up_water=:top_up_water, trub_chiller_loss=:chiller_loss, evap_rate=:evap_rate, " |
|
247 "boil_time=:boil_time, calc_boil_volume=:calcboil, top_up_kettle=:top_up_kettle, " |
|
248 "hop_utilization=:hopfactor, notes=:notes, lauter_volume=:lauter_volume, " |
|
249 "lauter_height=:lauter_height, lauter_deadspace=:lauter_deadspace, kettle_volume=:kettle_volume, " |
|
250 "kettle_height=:kettle_height, mash_volume=:mash_volume, mash_max=:mash_max, " |
|
251 "efficiency=:efficiency, uuid=:uuid"); |
|
252 |
|
253 query.bindValue(":name", ui->nameEdit->text() + " [copy]"); |
|
254 query.bindValue(":boil_size", QString("%1").arg(ui->boil_sizeEdit->value(), 2, 'f', 1, '0')); |
|
255 query.bindValue(":batch_size", QString("%1").arg(ui->batch_sizeEdit->value(), 3, 'f', 2, '0')); |
|
256 query.bindValue(":tun_volume", QString("%1").arg(ui->tun_volumeEdit->value(), 2, 'f', 1, '0')); |
|
257 query.bindValue(":tun_weight", QString("%1").arg(ui->tun_weightEdit->value(), 2, 'f', 1, '0')); |
|
258 query.bindValue(":tun_specific_heat", QString("%1").arg(ui->tun_specific_heatEdit->value(), 4, 'f', 3, '0')); |
|
259 query.bindValue(":tun_material", ui->tun_materialEdit->currentIndex()); |
|
260 query.bindValue(":tun_height", QString("%1").arg(ui->tun_heightEdit->value() / 100, 4, 'f', 3, '0')); |
|
261 query.bindValue(":top_up_water", QString("%1").arg(ui->top_up_waterEdit->value(), 2, 'f', 1, '0')); |
|
262 query.bindValue(":chiller_loss", QString("%1").arg(ui->chiller_lossEdit->value(), 2, 'f', 1, '0')); |
|
263 query.bindValue(":evap_rate", QString("%1").arg(ui->evap_rateEdit->value(), 3, 'f', 2, '0')); |
|
264 query.bindValue(":boil_time", QString("%1").arg(ui->boil_timeEdit->value(), 1, 'f', 0, '0')); |
|
265 query.bindValue(":calcboil", ui->calcboilEdit->isChecked() ? 1:0); |
|
266 query.bindValue(":top_up_kettle", QString("%1").arg(ui->top_up_kettleEdit->value(), 2, 'f', 1, '0')); |
|
267 query.bindValue(":hopfactor", QString("%1").arg(ui->hopfactorEdit->value(), 1, 'f', 0, '0')); |
|
268 query.bindValue(":notes", ui->notesEdit->toPlainText()); |
|
269 query.bindValue(":lauter_volume", QString("%1").arg(ui->lauter_volumeEdit->value(), 2, 'f', 1, '0')); |
|
270 query.bindValue(":lauter_height", QString("%1").arg(ui->lauter_heightEdit->value() / 100, 4, 'f', 3, '0')); |
|
271 query.bindValue(":lauter_deadspace", QString("%1").arg(ui->lauter_deadspaceEdit->value(), 2, 'f', 1, '0')); |
|
272 query.bindValue(":kettle_volume", QString("%1").arg(ui->kettle_volumeEdit->value(), 2, 'f', 1, '0')); |
|
273 query.bindValue(":kettle_height", QString("%1").arg(ui->kettle_heightEdit->value() / 100, 4, 'f', 3, '0')); |
|
274 query.bindValue(":mash_volume", QString("%1").arg(ui->mash_volumeEdit->value(), 2, 'f', 1, '0')); |
|
275 query.bindValue(":mash_max", QString("%1").arg(ui->mash_maxEdit->value(), 2, 'f', 1, '0')); |
|
276 query.bindValue(":efficiency", QString("%1").arg(ui->efficiencyEdit->value(), 2, 'f', 1, '0')); |
|
277 query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36)); |
|
278 query.exec(); |
|
279 if (query.lastError().isValid()) { |
|
280 qWarning() << "EditEquipment" << query.lastError(); |
|
281 QMessageBox::warning(this, tr("Database error"), |
|
282 tr("MySQL error: %1\n%2\n%3") |
|
283 .arg(query.lastError().nativeErrorCode()) |
|
284 .arg(query.lastError().driverText()) |
|
285 .arg(query.lastError().databaseText())); |
|
286 } else { |
|
287 qDebug() << "EditEquipment Saved"; |
|
288 } |
|
289 } |
|
290 |
|
291 |
241 void EditEquipment::on_deleteButton_clicked() |
292 void EditEquipment::on_deleteButton_clicked() |
242 { |
293 { |
243 QSqlQuery query; |
294 QSqlQuery query; |
|
295 |
|
296 int rc = QMessageBox::warning(this, tr("Delete equipment"), tr("Delete %1").arg(ui->nameEdit->text()), |
|
297 QMessageBox::Yes | QMessageBox::No, QMessageBox::No); |
|
298 if (rc == QMessageBox::No) |
|
299 return; |
244 |
300 |
245 query.prepare("DELETE FROM inventory_equipments WHERE record = :recno"); |
301 query.prepare("DELETE FROM inventory_equipments WHERE record = :recno"); |
246 query.bindValue(":recno", this->recno); |
302 query.bindValue(":recno", this->recno); |
247 query.exec(); |
303 query.exec(); |
248 if (query.lastError().isValid()) { |
304 if (query.lastError().isValid()) { |
249 qDebug() << "EditEquipment" << query.lastError(); |
305 qWarning() << "EditEquipment" << query.lastError(); |
250 QMessageBox::warning(this, tr("Database error"), |
306 QMessageBox::warning(this, tr("Database error"), |
251 tr("MySQL error: %1\n%2\n%3") |
307 tr("MySQL error: %1\n%2\n%3") |
252 .arg(query.lastError().nativeErrorCode()) |
308 .arg(query.lastError().nativeErrorCode()) |
253 .arg(query.lastError().driverText()) |
309 .arg(query.lastError().driverText()) |
254 .arg(query.lastError().databaseText())); |
310 .arg(query.lastError().databaseText())); |