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.

Fri, 20 May 2022 14:48:03 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 20 May 2022 14:48:03 +0200
changeset 224
d369948a3eb5
parent 223
37bac72eff61
child 225
448e4187cada

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.

src/EditProduct.cpp file | annotate | diff | comparison | revisions
src/EditProductTab1.cpp file | annotate | diff | comparison | revisions
src/EditProductTab11.cpp file | annotate | diff | comparison | revisions
src/EditProductTab3.cpp file | annotate | diff | comparison | revisions
ui/EditProduct.ui file | annotate | diff | comparison | revisions
--- 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"));
--- 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 */
--- 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();
 }
 
 
--- 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)) ||
--- 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 @@
        <enum>QTabWidget::Rounded</enum>
       </property>
       <property name="currentIndex">
-       <number>10</number>
+       <number>0</number>
       </property>
       <property name="elideMode">
        <enum>Qt::ElideNone</enum>

mercurial