# HG changeset patch # User Michiel Broek # Date 1653050883 -7200 # Node ID d369948a3eb54d55835d97b9a1486b5b0973ab75 # Parent 37bac72eff617617e95e99087d28dc8d730b6e4f Added stage changing from tertiary fermentation upto carbonation. Show, hide, readonly etc for the package tab. Make sure current sugar amounts are displayed. Added package date and buttons. diff -r 37bac72eff61 -r d369948a3eb5 src/EditProduct.cpp --- a/src/EditProduct.cpp Fri May 20 12:47:35 2022 +0200 +++ b/src/EditProduct.cpp Fri May 20 14:48:03 2022 +0200 @@ -1007,7 +1007,6 @@ ui->keg_sug_waterEdit->setValue(product->keg_priming_water); ui->keg_tempEdit->setValue(product->keg_carbonation_temp); ui->keg_forcedEdit->setChecked(product->keg_forced_carb); - ui->keg_barShow->setValue(product->keg_pressure); // Tab taste. ui->taste_dateEdit->setText(product->taste_date.toString("dd MMM yyyy")); diff -r 37bac72eff61 -r d369948a3eb5 src/EditProductTab1.cpp --- a/src/EditProductTab1.cpp Fri May 20 12:47:35 2022 +0200 +++ b/src/EditProductTab1.cpp Fri May 20 14:48:03 2022 +0200 @@ -204,6 +204,14 @@ stage = PROD_STAGE_WAIT; /* from PROD_STAGE_BREW to PROD_STAGE_PRIMARY is handled in EditProductTab9.cpp */ /* from PROD_STAGE_PRIMARY to PROD_STAGE_SECONDARY is handled in EditProductTab10.cpp */ + /* from PROD_STAGE_SECONDARY to PROD_STAGE_TERIARY is handled in EditProductTab10.cpp */ + if ((stage == PROD_STAGE_TERTIARY) && product->package_date.isValid()) + stage = PROD_STAGE_PACKAGE; + if ((stage == PROD_STAGE_PACKAGE) && (! product->package_date.isValid())) + stage = PROD_STAGE_TERTIARY; + /* from PROD_STAGE_PACKAGE to PROD_STAGE_CARBONATION is handled in EditProductTab11.cpp */ + if ((stage == PROD_STAGE_CARBONATION) && (product->package_date.daysTo(QDate::currentDate()) > 14)) + stage = PROD_STAGE_MATURE; if (product->stage != stage) { qDebug() << "setStage() change state:" << prod_stages[product->stage] << "to:" << prod_stages[stage]; @@ -485,6 +493,49 @@ /* Tab 11, packaging */ ui->tabWidget->setTabEnabled(10, stage > PROD_STAGE_PLAN); + bool pack = ((stage > PROD_STAGE_PLAN) && (stage <= PROD_STAGE_PACKAGE)) ? true:false; + ui->pack_volumeEdit->setReadOnly(! pack); + ui->pack_volumeEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->pack_phEdit->setReadOnly(! pack); + ui->pack_phEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->pack_addvolEdit->setReadOnly(! pack); + ui->pack_addvolEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->pack_addabvEdit->setReadOnly(! pack); + ui->pack_addabvEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->pack_notesEdit->setReadOnly(! pack); + ui->bottle_volumeEdit->setReadOnly(! pack); + ui->bottle_volumeEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->bottle_carbEdit->setReadOnly(! pack); + ui->bottle_carbEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->bottle_sugarEdit->setDisabled(! pack); + ui->bottle_sug_waterEdit->setReadOnly(! pack); + ui->bottle_sug_waterEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->bottle_tempEdit->setReadOnly(! pack); + ui->bottle_tempEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->keg_volumeEdit->setReadOnly(! pack); + ui->keg_volumeEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->keg_carbEdit->setReadOnly(! pack); + ui->keg_carbEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->keg_sugarEdit->setDisabled(! pack); + ui->keg_sug_waterEdit->setReadOnly(! pack); + ui->keg_sug_waterEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->keg_tempEdit->setReadOnly(! pack); + ui->keg_tempEdit->setButtonSymbols((pack) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); + ui->keg_forcedEdit->setDisabled(! pack); + ui->pack_dateEdit->setReadOnly(true); + ui->pack_dateEdit->setButtonSymbols(QAbstractSpinBox::NoButtons); + ui->pack_dateButton->hide(); + ui->pack_ackButton->hide(); + if (((stage == PROD_STAGE_TERTIARY) || (stage == PROD_STAGE_PACKAGE)) && + (product->package_volume > 1) && ((product->bottle_amount + product->keg_amount) > 1)) { + ui->pack_dateEdit->setReadOnly(false); + ui->pack_dateEdit->setButtonSymbols(QAbstractSpinBox::UpDownArrows); + ui->pack_dateEdit->setMinimumDate(product->secondary_end_date.addDays(-1)); // Allow same date as secondary end. + ui->pack_dateEdit->setMaximumDate(QDate::currentDate()); + ui->pack_dateButton->show(); + if (stage == PROD_STAGE_PACKAGE) + ui->pack_ackButton->show(); + } /* Tab 12, tasting */ diff -r 37bac72eff61 -r d369948a3eb5 src/EditProductTab11.cpp --- a/src/EditProductTab11.cpp Fri May 20 12:47:35 2022 +0200 +++ b/src/EditProductTab11.cpp Fri May 20 14:48:03 2022 +0200 @@ -150,9 +150,9 @@ qDebug() << " update priming sugar" << total; product->fermentables[i].f_amount = total; refreshFermentables(); - ui->bottle_sug_weightShow->setValue(total * 1000); is_changed(); } + ui->bottle_sug_weightShow->setValue(total * 1000); double pabv = product->final_abv + (product->bottle_priming_amount * (1 / SFactor) * 0.47) / 7.907; double pvol = product->bottle_amount - (pabv * product->bottle_amount) / 100; @@ -227,9 +227,9 @@ qDebug() << " update priming sugar" << total; product->fermentables[i].f_amount = total; refreshFermentables(); - ui->keg_sug_weightShow->setValue(total * 1000); is_changed(); } + ui->keg_sug_weightShow->setValue(total * 1000); double pabv = product->final_abv + (product->keg_priming_amount * (1 / SFactor) * 0.47) / 7.907; double pvol = product->keg_amount - (pabv * product->keg_amount) / 100; @@ -269,16 +269,29 @@ void EditProduct::pack_date_changed(QDate val) { qDebug() << "pack_date_changed" << val; + product->package_date = ui->pack_dateEdit->nullDate(); + is_changed(); + setStage(); } void EditProduct::pack_date_button() { + ui->pack_dateEdit->setDate(QDate::currentDate()); } void EditProduct::pack_date_ack() { + int rc = QMessageBox::warning(this, tr("Confirm package"), tr("Confirm that the beer is packaged and all data is correct"), + QMessageBox::Yes | QMessageBox::No, QMessageBox::No); + + if (rc == QMessageBox::No) + return; + + product->stage = PROD_STAGE_CARBONATION; + setStage(); + is_changed(); } diff -r 37bac72eff61 -r d369948a3eb5 src/EditProductTab3.cpp --- a/src/EditProductTab3.cpp Fri May 20 12:47:35 2022 +0200 +++ b/src/EditProductTab3.cpp Fri May 20 14:48:03 2022 +0200 @@ -275,13 +275,6 @@ colorh += product->fermentables.at(i).f_amount * product->fermentables.at(i).f_color * Utils::get_kt(product->fermentables.at(i).f_color); colorn += (product->fermentables.at(i).f_percentage / 100) * product->fermentables.at(i).f_color; // For 8.6 Pt wort. } - if (product->fermentables.at(i).f_added == FERMENTABLE_ADDED_BOTTLE) { // Bottle priming - ui->bottle_sug_weightShow->setValue(product->fermentables.at(i).f_amount * 1000); - // product->fermentables.at(i).f_name select in dropdown - } - if (product->fermentables.at(i).f_added == FERMENTABLE_ADDED_KEGS) { // Keg priming - - } /* Check supplies */ if ((((product->inventory_reduced <= PROD_STAGE_BREW) && (product->fermentables.at(i).f_added <= FERMENTABLE_ADDED_BOIL)) || ((product->inventory_reduced <= PROD_STAGE_PRIMARY) && (product->fermentables.at(i).f_added == FERMENTABLE_ADDED_FERMENTATION)) || diff -r 37bac72eff61 -r d369948a3eb5 ui/EditProduct.ui --- a/ui/EditProduct.ui Fri May 20 12:47:35 2022 +0200 +++ b/ui/EditProduct.ui Fri May 20 14:48:03 2022 +0200 @@ -95,7 +95,7 @@ QTabWidget::Rounded - 10 + 0 Qt::ElideNone