src/EditProductTab3.cpp

changeset 305
35ce719998e1
parent 301
fe6346211b5b
child 363
313cdeb309d2
--- a/src/EditProductTab3.cpp	Tue Jun 21 16:16:43 2022 +0200
+++ b/src/EditProductTab3.cpp	Thu Jun 23 16:50:23 2022 +0200
@@ -47,6 +47,20 @@
 }
 
 
+bool EditProduct::block_fermentable(int stage, int added)
+{
+    if (stage > PROD_STAGE_PACKAGE)
+	return true;
+    if (stage > PROD_STAGE_TERTIARY && added < FERMENTABLE_ADDED_BOTTLE)
+	return true;
+    if (stage > PROD_STAGE_PRIMARY && added < FERMENTABLE_ADDED_LAGERING)
+	return true;
+    if (stage > PROD_STAGE_BREW && added < FERMENTABLE_ADDED_FERMENTATION)
+	return true;
+    return false;
+}
+
+
 void EditProduct::refreshFermentables()
 {
     QString w;
@@ -107,10 +121,14 @@
         item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
         ui->fermentablesTable->setItem(i, 7, item);
 
-	item = new QTableWidgetItem(QString("%1 Kg").arg(product->fermentables.at(i).inventory, 4, 'f', 3, '0'));
-        item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
-	if (product->fermentables.at(i).inventory < product->fermentables.at(i).amount)
-	    item->setForeground(QBrush(QColor(Qt::red)));
+	if (block_fermentable(product->stage, product->fermentables.at(i).added)) {
+	    item = new QTableWidgetItem(QString(""));
+	} else {
+	    item = new QTableWidgetItem(QString("%1 Kg").arg(product->fermentables.at(i).inventory, 4, 'f', 3, '0'));
+            item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
+	    if (product->fermentables.at(i).inventory < product->fermentables.at(i).amount)
+	    	item->setForeground(QBrush(QColor(Qt::red)));
+	}
         ui->fermentablesTable->setItem(i, 8, item);
 
 	if (product->fermentables.at(i).added < FERMENTABLE_ADDED_BOTTLE) {
@@ -123,8 +141,22 @@
 
 	to100Fermentables(i);
 
-	/* Add the Delete row button */
-	if (product->fermentables.at(i).added < FERMENTABLE_ADDED_BOTTLE) {
+	/* Add the Delete and Edit row buttons if allowed. */
+	if (product->fermentables.at(i).added >= FERMENTABLE_ADDED_BOTTLE) {
+	    item = new QTableWidgetItem("");
+            item->setToolTip(tr("Edit this from the package tab"));
+            ui->fermentablesTable->setItem(i, 11, item);
+            item = new QTableWidgetItem("");
+            item->setToolTip(tr("Edit this from the package tab"));
+            ui->fermentablesTable->setItem(i, 12, item);
+	} else if (block_fermentable(product->stage, product->fermentables.at(i).added)) {
+	    item = new QTableWidgetItem("");
+            item->setToolTip(tr("Fermentable already used"));
+            ui->fermentablesTable->setItem(i, 11, item);
+            item = new QTableWidgetItem("");
+            item->setToolTip(tr("Fermentable already used"));
+            ui->fermentablesTable->setItem(i, 12, item);
+	} else {
             pWidget = new QWidget();
             QPushButton* btn_dele = new QPushButton();
             btn_dele->setObjectName(QString("%1").arg(i));  /* Send row with the button */
@@ -146,13 +178,6 @@
 	    pLayout->setContentsMargins(5, 0, 5, 0);
             pWidget->setLayout(pLayout);
             ui->fermentablesTable->setCellWidget(i, 12, pWidget);
-	} else {
-	    item = new QTableWidgetItem("");
-	    item->setToolTip(tr("Edit this from the package tab"));
-            ui->fermentablesTable->setItem(i, 11, item);
-	    item = new QTableWidgetItem("");
-            item->setToolTip(tr("Edit this from the package tab"));
-            ui->fermentablesTable->setItem(i, 12, item);
 	}
     }
 }

mercurial