src/EditProductTab8.cpp

changeset 395
7212b980a527
parent 365
4bc746c65650
child 435
6f84ab6125ad
--- a/src/EditProductTab8.cpp	Thu Aug 11 10:50:18 2022 +0200
+++ b/src/EditProductTab8.cpp	Wed Aug 17 14:30:33 2022 +0200
@@ -187,6 +187,49 @@
 }
 
 
+void EditProduct::calcBU()
+{
+    if (product->stage < PROD_STAGE_WAIT)
+	return;
+
+    double BUGU = GetBUGU();
+    ui->buguEdit->setValue(BUGU);
+    ui->est_buguEdit->setValue(BUGU);
+    ui->est_buguShow->setValue(BUGU);
+    if (BUGU < 0.32)
+        ui->buguResult->setText(tr("Very malty and sweet"));
+    else if (BUGU < 0.43)
+        ui->buguResult->setText(tr("Malty, sweet"));
+    else if (BUGU < 0.52)
+        ui->buguResult->setText(tr("Balanced"));
+    else if (BUGU < 0.63)
+        ui->buguResult->setText(tr("Hoppy, bitter"));
+    else
+        ui->buguResult->setText(tr("Very hoppy, very bitter"));
+
+    double og = product->est_og;
+    double fg = product->est_fg;
+    double ibu = product->est_ibu;
+
+    if (product->stage > PROD_STAGE_BREW) {
+	og = product->brew_fermenter_sg;
+	ibu = product->brew_fermenter_ibu;
+    }
+    if (product->stage > PROD_STAGE_TERTIARY) {
+	fg = product->fg;
+    }
+
+    if (fg < 1.002)	/* Can't be too low for this */
+	fg = 1.002;
+
+    double bure = ibu / ((0.1808 * Utils::sg_to_plato(og)) + (0.8192 * Utils::sg_to_plato(fg)));
+    qDebug() << "BU:RE" << bure << product->est_fg << product->fg << product->est_ibu << product->brew_fermenter_ibu;
+    ui->est_bufguEdit->setValue(bure);
+    ui->est_bufguShow->setValue(bure);
+
+}
+
+
 void EditProduct::calcWater()
 {
     double liters = 0;
@@ -383,18 +426,7 @@
 	chloride = wg_chloride + RA;
     }
 
-    double BUGU = GetBUGU();
-    ui->buguEdit->setValue(BUGU);
-    if (BUGU < 0.32)
-	ui->buguResult->setText(tr("Very malty and sweet"));
-    else if (BUGU < 0.43)
-	ui->buguResult->setText(tr("Malty, sweet"));
-    else if (BUGU < 0.52)
-	ui->buguResult->setText(tr("Balanced"));
-    else if (BUGU < 0.63)
-	ui->buguResult->setText(tr("Hoppy, bitter"));
-    else
-	ui->buguResult->setText(tr("Very hoppy, very bitter"));
+    calcBU();
 
     double OptSO4Clratio = GetOptSO4Clratio();
     ui->so4clEdit->setValue(OptSO4Clratio);
@@ -774,9 +806,17 @@
 
 double EditProduct::GetBUGU()
 {
-    double gu = (product->est_og - 1) * 1000;
+    double og = product->est_og;
+    double ibu = product->est_ibu;
+
+    if (product->stage > PROD_STAGE_BREW) {
+        og = product->brew_fermenter_sg;
+	ibu = product->brew_fermenter_ibu;
+    }
+
+    double gu = (og - 1) * 1000;
     if (gu > 0)
-	return product->est_ibu / gu;
+	return ibu / gu;
     return 0.5;
 }
 

mercurial