src/EditProductTab6.cpp

Mon, 20 Jun 2022 19:55:23 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 20 Jun 2022 19:55:23 +0200
changeset 301
fe6346211b5b
parent 299
8021e09ab6a3
child 305
35ce719998e1
permissions
-rw-r--r--

Finally the translation of string arrays is working.

175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /**
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 * EditProduct.cpp is part of bmsapp.
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 *
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 * tab 6, yeasts.
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 *
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 * bmsapp is free software: you can redistribute it and/or modify
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 * the Free Software Foundation, either version 3 of the License, or
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 * (at your option) any later version.
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 *
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 * bmsapp is distributed in the yeaste that it will be useful,
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 * GNU General Public License for more details.
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 *
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 */
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 bool EditProduct::yeast_sort_test(const Yeasts &D1, const Yeasts &D2)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 {
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
23 if (D1.use > D2.use)
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 return false;
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
25 if (D1.use < D2.use)
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 return true;
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
27 return (D1.amount > D2.amount);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 void EditProduct::refreshYeasts()
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 QString w;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 QWidget* pWidget;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 QHBoxLayout* pLayout;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 QTableWidgetItem *item;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 qDebug() << "refreshYeasts" << product->yeasts.size();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 std::sort(product->yeasts.begin(), product->yeasts.end(), yeast_sort_test);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40
179
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
41 const QStringList labels({tr("Yeast"), tr("Laboratory"), tr("Code"), tr("Type"), tr("Use for"), tr("Min."), tr("Max."),
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
42 tr("Tol."), tr("Attn."), tr("Amount"), tr("Stock"), tr("Delete"), tr("Edit") });
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43
179
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
44 ui->yeastsTable->setColumnCount(13);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 ui->yeastsTable->setColumnWidth(0, 200); /* Yeast */
179
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
46 ui->yeastsTable->setColumnWidth(1, 115); /* Laboratory */
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 ui->yeastsTable->setColumnWidth(2, 80); /* Code */
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 ui->yeastsTable->setColumnWidth(3, 80); /* Type */
179
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
49 ui->yeastsTable->setColumnWidth(4, 80); /* Usage */
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
50 ui->yeastsTable->setColumnWidth(5, 50); /* Min. */
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
51 ui->yeastsTable->setColumnWidth(6, 50); /* Max. */
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
52 ui->yeastsTable->setColumnWidth(7, 50); /* Tolerance */
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
53 ui->yeastsTable->setColumnWidth(8, 50); /* Attenuation */
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
54 ui->yeastsTable->setColumnWidth(9, 80); /* Amount */
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
55 ui->yeastsTable->setColumnWidth(10, 80); /* Stock */
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
56 ui->yeastsTable->setColumnWidth(11, 80); /* Delete */
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
57 ui->yeastsTable->setColumnWidth(12, 80); /* Edit */
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 ui->yeastsTable->setHorizontalHeaderLabels(labels);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 ui->yeastsTable->verticalHeader()->hide();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 ui->yeastsTable->setRowCount(product->yeasts.size());
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 for (int i = 0; i < product->yeasts.size(); i++) {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
64 ui->yeastsTable->setItem(i, 0, new QTableWidgetItem(product->yeasts.at(i).name));
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
65 ui->yeastsTable->setItem(i, 1, new QTableWidgetItem(product->yeasts.at(i).laboratory));
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
66 ui->yeastsTable->setItem(i, 2, new QTableWidgetItem(product->yeasts.at(i).product_id));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67
301
fe6346211b5b Finally the translation of string arrays is working.
Michiel Broek <mbroek@mbse.eu>
parents: 299
diff changeset
68 item = new QTableWidgetItem(QCoreApplication::translate("YeastForm", g_yeast_forms[product->yeasts.at(i).form]));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 ui->yeastsTable->setItem(i, 3, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71
301
fe6346211b5b Finally the translation of string arrays is working.
Michiel Broek <mbroek@mbse.eu>
parents: 299
diff changeset
72 item = new QTableWidgetItem(QCoreApplication::translate("YeastUse", g_yeast_use[product->yeasts.at(i).use]));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 ui->yeastsTable->setItem(i, 4, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
76 item = new QTableWidgetItem(QString("%1°C").arg(product->yeasts.at(i).min_temperature, 2, 'f', 1, '0'));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 ui->yeastsTable->setItem(i, 5, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
80 item = new QTableWidgetItem(QString("%1°C").arg(product->yeasts.at(i).max_temperature, 2, 'f', 1, '0'));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 ui->yeastsTable->setItem(i, 6, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
84 item = new QTableWidgetItem(QString("%1%").arg(product->yeasts.at(i).tolerance, 2, 'f', 1, '0'));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 ui->yeastsTable->setItem(i, 7, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
88 item = new QTableWidgetItem(QString("%1%").arg(product->yeasts.at(i).attenuation, 2, 'f', 1, '0'));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 ui->yeastsTable->setItem(i, 8, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
92 if (product->yeasts.at(i).form == YEAST_FORMS_LIQUID)
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
93 item = new QTableWidgetItem(QString("%1 pack").arg(product->yeasts.at(i).amount, 1, 'f', 0, '0'));
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
94 else if (product->yeasts.at(i).form == YEAST_FORMS_DRY || product->yeasts.at(i).form == YEAST_FORMS_DRIED)
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
95 item = new QTableWidgetItem(QString("%1 gr").arg(product->yeasts.at(i).amount * 1000.0, 3, 'f', 2, '0'));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96 else
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
97 item = new QTableWidgetItem(QString("%1 ml").arg(product->yeasts.at(i).amount * 1000.0, 3, 'f', 2, '0'));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 ui->yeastsTable->setItem(i, 9, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
101 if (product->yeasts.at(i).form == YEAST_FORMS_LIQUID)
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
102 item = new QTableWidgetItem(QString("%1 pack").arg(product->yeasts.at(i).inventory, 1, 'f', 0, '0'));
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
103 else if (product->yeasts.at(i).form == YEAST_FORMS_DRY || product->yeasts.at(i).form == YEAST_FORMS_DRIED)
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
104 item = new QTableWidgetItem(QString("%1 gr").arg(product->yeasts.at(i).inventory * 1000.0, 3, 'f', 2, '0'));
179
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
105 else
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
106 item = new QTableWidgetItem(QString("%1 ml").arg(product->yeasts.at(i).inventory * 1000.0, 3, 'f', 2, '0'));
179
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
107 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
108 if (product->yeasts.at(i).inventory < product->yeasts.at(i).amount)
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
109 item->setForeground(QBrush(QColor(Qt::red)));
179
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
110 ui->yeastsTable->setItem(i, 10, item);
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
111
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 pWidget = new QWidget();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113 QPushButton* btn_dele = new QPushButton();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
114 btn_dele->setObjectName(QString("%1").arg(i)); /* Send row with the button */
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
115 btn_dele->setText(tr("Delete"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
116 connect(btn_dele, SIGNAL(clicked()), this, SLOT(deleteYeastRow_clicked()));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117 pLayout = new QHBoxLayout(pWidget);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
118 pLayout->addWidget(btn_dele);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
119 pLayout->setContentsMargins(5, 0, 5, 0);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
120 pWidget->setLayout(pLayout);
179
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
121 ui->yeastsTable->setCellWidget(i, 11, pWidget);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
122
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
123 pWidget = new QWidget();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
124 QPushButton* btn_edit = new QPushButton();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
125 btn_edit->setObjectName(QString("%1").arg(i)); /* Send row with the button */
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
126 btn_edit->setText(tr("Edit"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
127 connect(btn_edit, SIGNAL(clicked()), this, SLOT(editYeastRow_clicked()));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
128 pLayout = new QHBoxLayout(pWidget);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
129 pLayout->addWidget(btn_edit);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
130 pLayout->setContentsMargins(5, 0, 5, 0);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
131 pWidget->setLayout(pLayout);
179
512f492358e3 Miscs updates the current inventory during recipe load. Yeasts updates the current inventory during recipe load and does a better job for the fields to upgrade.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
132 ui->yeastsTable->setCellWidget(i, 12, pWidget);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
133 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
134 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
135
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
136
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
137 void EditProduct::initYeast()
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
138 {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
139 ui->est_og4Edit->setValue(product->est_og);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
140 ui->est_fg3Edit->setValue(product->est_fg);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
141 ui->est_abv2Edit->setValue(product->est_abv);
198
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
142 ui->productionEdit->setDate(product->yeast_prod_date);
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
143 ui->conditionShow->setValue(product->starter_viability);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
144 ui->startersgEdit->setValue(product->starter_sg);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
145 ui->pitchrateEdit->setValue(product->yeast_pitchrate);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
146
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
147 ui->yeastsTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
148
301
fe6346211b5b Finally the translation of string arrays is working.
Michiel Broek <mbroek@mbse.eu>
parents: 299
diff changeset
149 for (int i = 0; i < 3; i++) {
fe6346211b5b Finally the translation of string arrays is working.
Michiel Broek <mbroek@mbse.eu>
parents: 299
diff changeset
150 ui->stmethodEdit->addItem(QCoreApplication::translate("YeastStarter", g_yeast_starter[i]));
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
151 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
152 ui->stmethodEdit->setCurrentIndex(product->starter_type);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
153 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
154
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
155
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
156 /*
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
157 * Calculate the needed yeast for this batch.
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
158 */
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
159 void EditProduct::calcYeast()
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
160 {
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
161 double sg = product->brew_fermenter_sg;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
162 double use_cells;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
163 double needed = 0;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
164 double initcells = 0;
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
165 bool maybe_starter = false;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
166
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
167 qDebug() << "calcYeast()";
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
168 ui->yeastProcedure->setCurrentIndex(0);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
169
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
170 if (sg <= 1.0001 && product->fg > 1.000)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
171 sg = product->fg;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
172 else if (sg <= 1.0001)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
173 sg = product->est_og;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
174 double plato = Utils::sg_to_plato(sg);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
175
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
176 double volume = product->brew_fermenter_volume;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
177 if (volume > 0) {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
178 if (product->brew_fermenter_extrawater > 0)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
179 volume += product->brew_fermenter_extrawater;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
180 } else {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
181 volume = product->batch_size - product->eq_trub_chiller_loss;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
182 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
183
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
184 if (product->yeasts.size() == 0)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
185 return; // No yeast in product.
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
186
198
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
187 calcViability();
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
188
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
189 for (int i = 0; i < product->yeasts.size(); i++) {
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
190 if (product->yeasts.at(i).use == YEAST_USE_PRIMARY) { // Primary
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
191 if (product->yeasts.at(i).form == YEAST_FORMS_DRY) {
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
192 /*
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
193 * Dry yeast, build the formule with the yeast parameters.
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
194 * Based on https://www.lallemandbrewing.com/en/canada/brewers-corner/brewing-tools/pitching-rate-calculator/
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
195 */
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
196 ui->yeastProcedure->setCurrentIndex(2);
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
197 ui->lo_gr_hlEdit->setValue(product->yeasts.at(i).gr_hl_lo);
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
198 ui->hi_gr_hlEdit->setValue(product->yeasts.at(i).gr_hl_hi);
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
199 ui->lo_sgEdit->setValue(product->yeasts.at(i).sg_lo);
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
200 ui->hi_sgEdit->setValue(product->yeasts.at(i).sg_hi);
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
201 double og = product->yeasts.at(i).sg_lo;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
202 double f1 = product->yeasts.at(i).gr_hl_lo / 100.0;
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
203 double f2 = round(f1 / 5 * 1000000.0) / 1000000.0;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
204 double multiplier = (sg <= og) ? f1 : (f1 + f2 * (sg - og) / 0.008);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
205 qDebug() << " sg:" << sg << "og:" << og << "f1:" << f1 << "f2:" << f2 << "multiplier:" << multiplier;
200
bbab7d37d12f Dry yeast use yeast viability. Finished calculate dry yeast. Finished using enum values.
Michiel Broek <mbroek@mbse.eu>
parents: 199
diff changeset
206 double yeast_grams = round(volume * multiplier * 100.0) / product->starter_viability;
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
207 double yeast_gr_hl = round((yeast_grams / (volume * 0.01)) * 100.0) / 100.0;
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
208 double pitch_gr_hl = round(((product->yeasts.at(i).amount * 1000.0) / (volume * 0.01)) * 100.0) / 100.0;
200
bbab7d37d12f Dry yeast use yeast viability. Finished calculate dry yeast. Finished using enum values.
Michiel Broek <mbroek@mbse.eu>
parents: 199
diff changeset
209 ui->dry_needShow->setValue(yeast_grams);
bbab7d37d12f Dry yeast use yeast viability. Finished calculate dry yeast. Finished using enum values.
Michiel Broek <mbroek@mbse.eu>
parents: 199
diff changeset
210 ui->dry_pitchrateShow->setValue(yeast_gr_hl);
bbab7d37d12f Dry yeast use yeast viability. Finished calculate dry yeast. Finished using enum values.
Michiel Broek <mbroek@mbse.eu>
parents: 199
diff changeset
211 ui->pitch_grShow->setValue(pitch_gr_hl);
bbab7d37d12f Dry yeast use yeast viability. Finished calculate dry yeast. Finished using enum values.
Michiel Broek <mbroek@mbse.eu>
parents: 199
diff changeset
212 ui->pitch_grShow->setStyleSheet((pitch_gr_hl < yeast_gr_hl) ? "background-color: red":"");
bbab7d37d12f Dry yeast use yeast viability. Finished calculate dry yeast. Finished using enum values.
Michiel Broek <mbroek@mbse.eu>
parents: 199
diff changeset
213
bbab7d37d12f Dry yeast use yeast viability. Finished calculate dry yeast. Finished using enum values.
Michiel Broek <mbroek@mbse.eu>
parents: 199
diff changeset
214 qDebug() << " need" << yeast_grams << "grams, gr/hl:" << yeast_gr_hl << "pitch:" << pitch_gr_hl;
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
215 return;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
216 } else {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
217 /*
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
218 * Liquid, slant, culture etc.
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
219 * pitchrate see https://www.brewersfriend.com/yeast-pitch-rate-and-starter-calculator/
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
220 * and http://braukaiser.com/blog/blog/2012/11/03/estimating-yeast-growth/
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
221 */
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
222 ui->yeastProcedure->setCurrentIndex(1);
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
223 if (product->yeast_pitchrate == 0) {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
224 /*
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
225 * No pitchrate yet, do a educated guess ..
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
226 */
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
227 if (product->yeasts.at(i).type == YEAST_TYPES_LAGER) {
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
228 product->yeast_pitchrate = 1.5;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
229 if (sg > 1.060)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
230 product->yeast_pitchrate = 2.0;
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
231 } else if (product->yeasts.at(i).type == YEAST_TYPES_KVEIK) { // Real Kveik
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
232 product->yeast_pitchrate = 0.075;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
233 } else {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
234 product->yeast_pitchrate = 0.75;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
235 if (sg > 1.060)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
236 product->yeast_pitchrate = 1.0;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
237 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
238 is_changed();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
239 ui->pitchrateEdit->setValue(product->yeast_pitchrate);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
240 }
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
241
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
242 initcells = (product->yeasts.at(i).cells / 1000000) * product->yeasts.at(i).amount * (product->starter_viability / 100.0);
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
243 if (product->yeasts.at(i).form == YEAST_FORMS_LIQUID)
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
244 initcells = (product->yeasts.at(i).cells / 1000000000) * product->yeasts.at(i).amount * (product->starter_viability / 100.0);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
245
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
246 needed = round(product->yeast_pitchrate * volume * plato * 10.0) / 10.0;
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
247 ui->neededShow->setValue(needed);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
248 if (needed > initcells) {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
249 maybe_starter = true;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
250 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
251
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
252 qDebug() << " pitchrate:" << product->yeast_pitchrate << "needed:" << needed << "initcells:" << initcells << "starter" << maybe_starter;
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
253 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
254 break;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
255 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
256 }
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
257
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
258 if (maybe_starter != product->starter_enable) {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
259 product->starter_enable = maybe_starter;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
260 qDebug() << " Set starter enable" << maybe_starter;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
261 is_changed();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
262 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
263
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
264 if (product->starter_enable) {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
265 qDebug() << " Starter calculate..";
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
266
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
267 const QStringList labels({tr("Method"), tr("Volume"), tr("Inj. factor"), tr("New cells"), tr("Total cells"), tr("Grow factor"), "" });
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
268 ui->starterTable->show();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
269 ui->starterTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
270 ui->starterTable->clear();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
271 ui->starterTable->setColumnCount(7);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
272 ui->starterTable->setRowCount(0);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
273 ui->starterTable->setColumnWidth(0, 130); /* Method */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
274 ui->starterTable->setColumnWidth(1, 90); /* Volume */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
275 ui->starterTable->setColumnWidth(2, 90); /* Inj. factor */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
276 ui->starterTable->setColumnWidth(3, 90); /* New cells */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
277 ui->starterTable->setColumnWidth(4, 90); /* Total cells */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
278 ui->starterTable->setColumnWidth(5, 90); /* Grow factor */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
279 ui->starterTable->setColumnWidth(6, 30); /* Edit button */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
280 ui->starterTable->setHorizontalHeaderLabels(labels);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
281 calcSteps(product->starter_type, initcells, needed);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
282 } else {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
283 ui->starterTable->hide();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
284 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
285 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
286
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
287
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
288 /*
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
289 * http://braukaiser.com/blog/blog/2012/11/03/estimating-yeast-growth/
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
290 *
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
291 * stype: 0=stirred, 1=shaken, 2=simple
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
292 * totcells: initial cells
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
293 * egrams: gram extract
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
294 */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
295 double EditProduct::getGrowthRate(int stype, double totcells, double egrams)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
296 {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
297 /* Cells per grams extract (B/g) */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
298 double cpe = totcells / egrams;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
299
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
300 if (cpe > 3.5)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
301 return 0; // no growth
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
302 if (stype == STARTERS_SIMPLE)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
303 return 0.4; // simple starter
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
304 if (stype == STARTERS_SHAKEN)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
305 return 0.62; // shaken starter
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
306 if (cpe <= 1.4) // stirred starter
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
307 return 1.4;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
308 return 2.33 - (.67 * cpe);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
309 };
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
310
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
311
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
312 StepResult EditProduct::calcStep(double svol, int stype, double start)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
313 {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
314 StepResult res;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
315 double gperpoint = 2.72715; //number of grams of extract per point of starter gravity per liter
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
316 double irate = round(start / svol * 10000.0) / 10.0;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
317 double egrams = (product->starter_sg - 1) * svol * gperpoint;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
318 double grate = getGrowthRate(stype, start, egrams);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
319 double ncells = round(egrams * grate * 10.0) / 10.0;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
320 double totcells = ncells + start;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
321
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
322 res.svol = svol;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
323 res.irate = irate;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
324 res.ncells = ncells;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
325 res.totcells = totcells;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
326 res.growf = round((ncells / start) * 100.0) / 100.0;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
327 qDebug() << " calcStep(" << svol << "," << stype << "," << start << ") irate" << irate
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
328 << "ncells" << res.ncells << "totcells" << res.totcells << "growf" << res.growf;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
329 return res;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
330 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
331
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
332
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
333 /*
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
334 * Calculate all starter steps.
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
335 * stype: final starter type: 0 = stirred, 1 = shaked, 2 = simple.
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
336 * start: initial cells in billions
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
337 * needed: needed cells in billions
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
338 *
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
339 * result: all values updated.
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
340 */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
341 void EditProduct::calcSteps(int stype, double start, double needed)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
342 {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
343 int i, step, svol;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
344 int lasti = 0;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
345 /* Erlenmeyer sizes */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
346 const int uvols[] { 20, 40, 60, 80, 100, 150, 200, 250, 375, 500, 625, 750, 875, 1000, 1250, 1500, 2000, 2500, 3000, 4000, 5000 };
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
347 int mvols = sizeof(uvols);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
348 StepResult result;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
349 QTableWidgetItem *item;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
350 QWidget* pWidget;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
351 QHBoxLayout* pLayout;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
352 double tcells = start;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
353 QIcon iconT;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
354
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
355 iconT.addFile(QString::fromUtf8(":/icons/silk/pencil.png"), QSize(), QIcon::Normal, QIcon::Off);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
356
196
f7954f2d4451 Internal product record stores the starter steps in array format.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
357 if ((product->prop_volume[0] + product->prop_volume[1] + product->prop_volume[2] + product->prop_volume[3]) == 0) {
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
358 /*
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
359 * Auto calculate the starter.
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
360 */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
361 qDebug() << " calcSteps() auto";
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
362
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
363 if (start > needed)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
364 return;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
365
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
366 for (step = 1; step < 5; step++) {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
367 qDebug() << " step" << step;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
368
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
369 for (i = lasti; i <= mvols; i++) {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
370 lasti = i;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
371 svol = uvols[lasti];
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
372 result = calcStep(svol, stype, tcells);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
373 if (result.irate < 25) {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
374 // inocculation rate too low, backup one step and break out.
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
375 lasti = i - 1;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
376 svol = uvols[lasti];
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
377 result = calcStep(svol, stype, tcells);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
378 break;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
379 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
380 if (result.totcells > needed || i == mvols) { // hit the target or loops done
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
381 break;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
382 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
383 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
384 ui->starterTable->setRowCount(step);
301
fe6346211b5b Finally the translation of string arrays is working.
Michiel Broek <mbroek@mbse.eu>
parents: 299
diff changeset
385 item = new QTableWidgetItem(QCoreApplication::translate("YeastStarter", g_yeast_starter[stype]));
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
386 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
387 ui->starterTable->setItem(step -1, 0, item);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
388
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
389 item = new QTableWidgetItem(QString("%1").arg(result.svol / 1000.0, 4, 'f', 3, '0')); // To liters
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
390 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
391 ui->starterTable->setItem(step -1, 1, item);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
392
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
393 item = new QTableWidgetItem(QString("%1").arg(result.irate, 2, 'f', 1, '0'));
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
394 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
395 if ((result.irate < 25) || (result.irate > 100))
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
396 item->setForeground(QBrush(QColor(Qt::red)));
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
397 ui->starterTable->setItem(step -1, 2, item);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
398
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
399 item = new QTableWidgetItem(QString("%1").arg(result.ncells, 2, 'f', 1, '0'));
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
400 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
401 ui->starterTable->setItem(step -1, 3, item);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
402
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
403 item = new QTableWidgetItem(QString("%1").arg(result.totcells, 2, 'f', 1, '0'));
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
404 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
405 item->setForeground(QBrush(QColor((result.totcells > needed) ? Qt::green:Qt::red)));
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
406 ui->starterTable->setItem(step -1, 4, item);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
407
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
408 item = new QTableWidgetItem(QString("%1").arg(result.growf, 3, 'f', 2, '0'));
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
409 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
410 if (result.growf < 1)
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
411 item->setForeground(QBrush(QColor(Qt::red)));
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
412 if ((stype > 0) && (result.growf > 3))
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
413 item->setForeground(QBrush(QColor(Qt::red)));
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
414 ui->starterTable->setItem(step -1, 5, item);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
415
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
416 pWidget = new QWidget();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
417 QToolButton* btn_edit = new QToolButton();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
418 btn_edit->setObjectName(QString("%1").arg(step - 1)); /* Send row with the button */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
419 btn_edit->setIcon(iconT);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
420 connect(btn_edit, SIGNAL(clicked()), this, SLOT(yeast_starter_edit_clicked()));
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
421 pLayout = new QHBoxLayout(pWidget);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
422 pLayout->addWidget(btn_edit);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
423 pLayout->setContentsMargins(5, 0, 5, 0);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
424 pWidget->setLayout(pLayout);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
425 ui->starterTable->setCellWidget(step -1, 6, pWidget);
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
426
196
f7954f2d4451 Internal product record stores the starter steps in array format.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
427 product->prop_type[step -1] = product->starter_type;
f7954f2d4451 Internal product record stores the starter steps in array format.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
428 product->prop_volume[step -1] = result.svol / 1000.0;
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
429
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
430 tcells = result.totcells;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
431 if (result.totcells > needed) // Hit the target
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
432 return;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
433 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
434
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
435 } else {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
436 /*
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
437 * Recalculate the starter.
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
438 */
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
439 qDebug() << " calcSteps() recalculate";
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
440
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
441 for (step = 0; step < 4; step++) {
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
442 if (product->prop_volume[step] > 0) {
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
443 result = calcStep(product->prop_volume[step] * 1000, product->prop_type[step], tcells);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
444 ui->starterTable->setRowCount(step + 1);
301
fe6346211b5b Finally the translation of string arrays is working.
Michiel Broek <mbroek@mbse.eu>
parents: 299
diff changeset
445 item = new QTableWidgetItem(QCoreApplication::translate("YeastStarter", g_yeast_starter[product->prop_type[step]]));
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
446 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
447 ui->starterTable->setItem(step, 0, item);
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
448
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
449 item = new QTableWidgetItem(QString("%1").arg(result.svol / 1000.0, 4, 'f', 3, '0')); // To liters
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
450 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
451 ui->starterTable->setItem(step, 1, item);
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
452
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
453 item = new QTableWidgetItem(QString("%1").arg(result.irate, 2, 'f', 1, '0'));
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
454 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
455 if ((result.irate < 25) || (result.irate > 100))
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
456 item->setForeground(QBrush(QColor(Qt::red)));
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
457 ui->starterTable->setItem(step, 2, item);
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
458
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
459 item = new QTableWidgetItem(QString("%1").arg(result.ncells, 2, 'f', 1, '0'));
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
460 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
461 ui->starterTable->setItem(step, 3, item);
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
462
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
463 item = new QTableWidgetItem(QString("%1").arg(result.totcells, 2, 'f', 1, '0'));
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
464 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
465 item->setForeground(QBrush(QColor((result.totcells > needed) ? Qt::green:Qt::red)));
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
466 ui->starterTable->setItem(step, 4, item);
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
467
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
468 item = new QTableWidgetItem(QString("%1").arg(result.growf, 3, 'f', 2, '0'));
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
469 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
470 if (result.growf < 1)
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
471 item->setForeground(QBrush(QColor(Qt::red)));
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
472 if ((stype > 0) && (result.growf > 3))
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
473 item->setForeground(QBrush(QColor(Qt::red)));
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
474 ui->starterTable->setItem(step, 5, item);
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
475
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
476 pWidget = new QWidget();
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
477 QToolButton* btn_edit = new QToolButton();
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
478 btn_edit->setObjectName(QString("%1").arg(step)); /* Send row with the button */
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
479 btn_edit->setIcon(iconT);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
480 connect(btn_edit, SIGNAL(clicked()), this, SLOT(yeast_starter_edit_clicked()));
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
481 pLayout = new QHBoxLayout(pWidget);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
482 pLayout->addWidget(btn_edit);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
483 pLayout->setContentsMargins(5, 0, 5, 0);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
484 pWidget->setLayout(pLayout);
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
485 ui->starterTable->setCellWidget(step, 6, pWidget);
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
486
199
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
487 tcells = result.totcells;
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
488 if (result.totcells > needed) { // Hit the target
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
489 for (int i = step + 1; i < 4; i++) {
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
490 product->prop_volume[i] = 0;
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
491 product->prop_type[i] = 0;
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
492 }
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
493 return;
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
494 } else if ((step < 3) && (product->prop_volume[step + 1] == 0)) { // Extra step needed, start with the same size.
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
495 product->prop_volume[step + 1] = product->prop_volume[step];
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
496 product->prop_type[step + 1] = product->prop_type[step];
59b0bdbb2f9f Added field to show the needed cells. Colors in the starter table for good and error results.
Michiel Broek <mbroek@mbse.eu>
parents: 198
diff changeset
497 }
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
498 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
499 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
500 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
501 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
502
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
503
198
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
504 void EditProduct::calcViability()
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
505 {
198
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
506 double vpm = 1.00;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
507 double max = 100;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
508
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
509 for (int i = 0; i < product->yeasts.size(); i++) {
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
510 if (product->yeasts.at(i).use == YEAST_USE_PRIMARY) {
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
511 if (product->yeasts.at(i).form == YEAST_FORMS_LIQUID) {
198
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
512 vpm = 0.80;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
513 max = 97;
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
514 if (product->yeasts.at(i).laboratory == "White Labs") { // PurePitch
198
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
515 vpm = 0.95;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
516 max = 100;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
517 }
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
518 } else if (product->yeasts.at(i).form == YEAST_FORMS_DRY) {
198
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
519 vpm = 0.998;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
520 max = 100;
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
521 } else if (product->yeasts.at(i).form == YEAST_FORMS_DRIED) { // dried kveik
198
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
522 vpm = 0.92;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
523 max = 100;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
524 } else { // Slant, Culture, Frozen, Bottle
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
525 vpm = 0.99;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
526 max = 97;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
527 }
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
528 }
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
529 }
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
530 qDebug() << "calcViability vpm:" << vpm << "max:" << max;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
531
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
532 double base = max;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
533
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
534 /*
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
535 * Calculate time days before today. If the date is cleared,
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
536 * the result is 0 days. Dates in the future are ignored.
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
537 */
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
538 int timeDiff = product->yeast_prod_date.daysTo(QDate::currentDate());
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
539 if (timeDiff < 0)
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
540 timeDiff == 0;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
541
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
542 double degrade = 1 - ((1 - vpm) / 30.41); // viability degradation per day.
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
543 for (int i = 0; i < timeDiff; i++) {
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
544 base = base * degrade;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
545 }
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
546 if (base > max)
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
547 base = max;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
548 base = round(base);
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
549 product->starter_viability = base;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
550 ui->conditionShow->setValue(product->starter_viability);
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
551 qDebug() << "age" << timeDiff << "degrade" << degrade << "base" << base ;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
552 }
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
553
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
554
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
555 void EditProduct::yeast_prod_date_changed(QDate val)
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
556 {
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
557 product->yeast_prod_date = ui->productionEdit->nullDate();
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
558 qDebug() << "yeast_prod_date_changed" << val << product->yeast_prod_date;
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
559 calcViability();
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
560 calcYeast();
202
49ec4fdee5a6 Added mash steps pH and SG values.
Michiel Broek <mbroek@mbse.eu>
parents: 201
diff changeset
561 is_changed();
198
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
562 }
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
563
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
564
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
565 void EditProduct::yeast_prod_date_clear()
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
566 {
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
567 product->yeast_prod_date = QDate();
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
568 ui->productionEdit->setDate(QDate());
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
569 }
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
570
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
571
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
572 void EditProduct::yeast_prod_date_today()
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
573 {
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
574 product->yeast_prod_date = QDate::currentDate();
904591820c3d Added yeast viability calculation.
Michiel Broek <mbroek@mbse.eu>
parents: 197
diff changeset
575 ui->productionEdit->setDate(QDate::currentDate());
195
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
576 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
577
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
578
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
579 void EditProduct::yeast_method_changed(int val)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
580 {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
581 qDebug() << "yeast_method_changed" << val;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
582 product->starter_type = val;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
583 calcYeast();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
584 is_changed();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
585 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
586
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
587
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
588 void EditProduct::yeast_starter_sg_changed(double val)
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
589 {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
590 qDebug() << "yeast_starter_sg_changed" << val;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
591 product->starter_sg = val;
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
592 calcYeast();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
593 is_changed();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
594 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
595
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
596
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
597 void EditProduct::yeast_pitchrate_button_clicked()
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
598 {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
599 }
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
600
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
601
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
602 void EditProduct::yeast_starter_edit_clicked()
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
603 {
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
604 QToolButton *pb = qobject_cast<QToolButton *>(QObject::sender());
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
605 int row = pb->objectName().toInt();
9887278c4fbe The framework to calculate yeast starters added.
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
606 qDebug() << "yeast_starter_edit_clicked" << row;
196
f7954f2d4451 Internal product record stores the starter steps in array format.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
607
197
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
608 QDialog* dialog = new QDialog(this);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
609 dialog->resize(338, 140);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
610 QDialogButtonBox *buttonBox = new QDialogButtonBox(dialog);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
611 buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
612 buttonBox->setGeometry(QRect(30, 90, 271, 32));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
613 buttonBox->setLayoutDirection(Qt::LeftToRight);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
614 buttonBox->setOrientation(Qt::Horizontal);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
615 buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
616 buttonBox->setCenterButtons(true);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
617
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
618 QLabel *typeLabel = new QLabel(dialog);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
619 typeLabel->setObjectName(QString::fromUtf8("typeLabel"));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
620 typeLabel->setText(tr("Start step type:"));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
621 typeLabel->setGeometry(QRect(10, 10, 141, 20));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
622 typeLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
623 QLabel *volLabel = new QLabel(dialog);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
624 volLabel->setObjectName(QString::fromUtf8("volLabel"));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
625 volLabel->setText(tr("Starter step volume:"));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
626 volLabel->setGeometry(QRect(10, 40, 141, 20));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
627 volLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
628
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
629 QComboBox *typeEdit = new QComboBox(dialog);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
630 typeEdit->setObjectName(QString::fromUtf8("typeEdit"));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
631 typeEdit->setGeometry(QRect(160, 10, 121, 23));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
632 typeEdit->addItem(tr("Stirred"));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
633 typeEdit->addItem(tr("Shaken"));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
634 typeEdit->addItem(tr("Simple"));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
635 typeEdit->setCurrentIndex(product->prop_type[row]);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
636
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
637 QDoubleSpinBox *volEdit = new QDoubleSpinBox(dialog);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
638 volEdit->setObjectName(QString::fromUtf8("volEdit"));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
639 volEdit->setGeometry(QRect(160, 40, 121, 24));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
640 volEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
641 volEdit->setAccelerated(true);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
642 volEdit->setDecimals(3);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
643 volEdit->setSingleStep(0.01);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
644 volEdit->setValue(product->prop_volume[row]);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
645 volEdit->setMaximum(5);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
646
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
647 connect(buttonBox, SIGNAL(rejected()), dialog, SLOT(reject()));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
648 connect(buttonBox, SIGNAL(accepted()), dialog, SLOT(accept()));
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
649
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
650 dialog->setModal(true);
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
651 dialog->exec();
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
652 if (dialog->result() == QDialog::Rejected) {
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
653 qDebug() << "reject";
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
654 } else {
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
655 product->prop_type[row] = typeEdit->currentIndex();
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
656 product->prop_volume[row] = volEdit->value();
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
657 qDebug() << "accept";
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
658 calcYeast();
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
659 is_changed();
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
660 }
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
661
6a5e5b3d0fcd Completed the starter step popup editor
Michiel Broek <mbroek@mbse.eu>
parents: 196
diff changeset
662 disconnect(buttonBox, nullptr, nullptr, nullptr);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
663 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
664
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
665
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
666 void EditProduct::addYeastRow_clicked()
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
667 {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
668 Yeasts newy;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
669
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
670 qDebug() << "Add yeast row";
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
671
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
672 for (int i = 0; i < product->yeasts.size(); i++) {
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
673 if (product->yeasts.at(i).amount == 0)
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
674 return; // Add only one at a time.
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
675 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
676
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
677 newy.name = "Select one";
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
678 newy.laboratory = "";
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
679 newy.product_id = "";
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
680 newy.amount = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
681 newy.type = YEAST_TYPES_ALE;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
682 newy.form = YEAST_FORMS_LIQUID;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
683 newy.min_temperature = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
684 newy.max_temperature = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
685 newy.flocculation = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
686 newy.attenuation = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
687 newy.cells = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
688 newy.tolerance = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
689 newy.inventory = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
690 newy.use = YEAST_USE_PRIMARY;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
691 newy.sta1 = false;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
692 newy.bacteria = false;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
693 newy.harvest_top = false;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
694 newy.harvest_time = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
695 newy.pitch_temperature = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
696 newy.pofpos = false;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
697 newy.zymocide = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
698 newy.gr_hl_lo = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
699 newy.sg_lo = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
700 newy.gr_hl_hi = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
701 newy.sg_hi = 0;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
702 newy.cost = 0;
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
703
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
704 product->yeasts.append(newy);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
705 emit refreshAll();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
706 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
707
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
708
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
709 void EditProduct::deleteYeastRow_clicked()
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
710 {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
711 if (product->locked || product->yeasts.size() < 1)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
712 return;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
713
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
714 QPushButton *pb = qobject_cast<QPushButton *>(QObject::sender());
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
715 int row = pb->objectName().toInt();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
716 qDebug() << "Delete yeast row" << row << product->yeasts.size();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
717
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
718 int rc = QMessageBox::warning(this, tr("Delete yeast"), tr("Delete %1").arg(product->yeasts.at(row).name),
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
719 QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
720 if (rc == QMessageBox::No)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
721 return;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
722
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
723 product->yeasts.removeAt(row);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
724 is_changed();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
725 emit refreshAll();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
726 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
727
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
728
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
729 void EditProduct::yeast_amount_changed(double val)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
730 {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
731 QTableWidgetItem *item;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
732
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
733 qDebug() << "yeast_amount_changed()" << product->yeasts_row << val;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
734
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
735 if (product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_LIQUID) {
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
736 product->yeasts[product->yeasts_row].amount = val;
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
737 item = new QTableWidgetItem(QString("%1 pack").arg(val, 1, 'f', 0, '0'));
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
738 } else if ((product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_DRY) ||
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
739 (product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_DRIED)) {
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
740 product->yeasts[product->yeasts_row].amount = val / 1000.0;
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
741 item = new QTableWidgetItem(QString("%1 gr").arg(val, 3, 'f', 2, '0'));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
742 } else {
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
743 product->yeasts[product->yeasts_row].amount = val / 1000.0;
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
744 item = new QTableWidgetItem(QString("%1 ml").arg(val, 3, 'f', 2, '0'));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
745 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
746 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
747 ui->yeastsTable->setItem(product->yeasts_row, 9, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
748
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
749 calcYeast();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
750 is_changed();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
751 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
752
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
753
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
754 void EditProduct::yeast_select_changed(int val)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
755 {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
756 QSqlQuery query;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
757 bool instock = yinstockEdit->isChecked();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
758 QString w;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
759 QTableWidgetItem *item;
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
760 int oldform = product->yeasts.at(product->yeasts_row).form;
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
761
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
762 if (val < 1)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
763 return;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
764
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
765 qDebug() << "yeast_select_changed()" << product->yeasts_row << val << instock;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
766
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
767 /*
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
768 * Search the yeast pointed by the index and instock flag.
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
769 */
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
770 QString sql = "SELECT name,laboratory,product_id,type,form,min_temperature,max_temperature,flocculation,attenuation,"
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
771 "cells,tolerance,sta1,bacteria,harvest_top,harvest_time,pitch_temperature,pofpos,zymocide,"
299
8021e09ab6a3 Fixed select yeasts in recipes and poducts.
Michiel Broek <mbroek@mbse.eu>
parents: 284
diff changeset
772 "gr_hl_lo,sg_lo,gr_hl_hi,sg_hi,cost,inventory FROM inventory_yeasts ";
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
773 if (instock)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
774 sql.append("WHERE inventory > 0 ");
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
775 sql.append("ORDER BY laboratory,product_id,name");
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
776 query.prepare(sql);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
777 query.exec();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
778 query.first();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
779 for (int i = 0; i < (val - 1); i++) {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
780 query.next();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
781 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
782 qDebug() << "found" << query.value(0).toString() << query.value(2).toString();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
783
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
784 /*
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
785 * Replace the yeast record contents
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
786 */
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
787 product->yeasts[product->yeasts_row].name = query.value(0).toString();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
788 product->yeasts[product->yeasts_row].laboratory = query.value(1).toString();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
789 product->yeasts[product->yeasts_row].product_id = query.value(2).toString();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
790 product->yeasts[product->yeasts_row].type = query.value(3).toInt();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
791 product->yeasts[product->yeasts_row].form = query.value(4).toInt();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
792 product->yeasts[product->yeasts_row].min_temperature = query.value(5).toDouble();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
793 product->yeasts[product->yeasts_row].max_temperature = query.value(6).toDouble();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
794 product->yeasts[product->yeasts_row].flocculation = query.value(7).toInt();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
795 product->yeasts[product->yeasts_row].attenuation = query.value(8).toDouble();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
796 product->yeasts[product->yeasts_row].cells = query.value(9).toDouble();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
797 product->yeasts[product->yeasts_row].tolerance = query.value(10).toDouble();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
798 product->yeasts[product->yeasts_row].sta1 = query.value(11).toInt() ? true:false;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
799 product->yeasts[product->yeasts_row].bacteria = query.value(12).toInt() ? true:false;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
800 product->yeasts[product->yeasts_row].harvest_top = query.value(13).toInt() ? true:false;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
801 product->yeasts[product->yeasts_row].harvest_time = query.value(14).toInt();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
802 product->yeasts[product->yeasts_row].pitch_temperature = query.value(15).toDouble();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
803 product->yeasts[product->yeasts_row].pofpos = query.value(16).toInt() ? true:false;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
804 product->yeasts[product->yeasts_row].zymocide = query.value(17).toInt();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
805 product->yeasts[product->yeasts_row].gr_hl_lo = query.value(18).toInt();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
806 product->yeasts[product->yeasts_row].sg_lo = query.value(19).toDouble();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
807 product->yeasts[product->yeasts_row].gr_hl_hi = query.value(20).toInt();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
808 product->yeasts[product->yeasts_row].sg_hi = query.value(21).toDouble();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
809 product->yeasts[product->yeasts_row].cost = query.value(22).toDouble();
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
810 product->yeasts[product->yeasts_row].inventory = query.value(23).toDouble();
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
811
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
812 /*
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
813 * Update the visible fields
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
814 */
201
b8232133a12d Fixes for select another yeast.
Michiel Broek <mbroek@mbse.eu>
parents: 200
diff changeset
815 const QSignalBlocker blocker1(yamountEdit);
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
816 ynameEdit->setText(product->yeasts.at(product->yeasts_row).name);
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
817 ylaboratoryEdit->setText(product->yeasts.at(product->yeasts_row).laboratory);
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
818 yproduct_idEdit->setText(product->yeasts.at(product->yeasts_row).product_id);
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
819 if (product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_LIQUID) {
201
b8232133a12d Fixes for select another yeast.
Michiel Broek <mbroek@mbse.eu>
parents: 200
diff changeset
820 if (oldform != YEAST_FORMS_LIQUID)
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
821 product->yeasts[product->yeasts_row].amount = 1;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
822 yamountEdit->setValue(product->yeasts[product->yeasts_row].amount);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
823 yamountEdit->setDecimals(0);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
824 yamountEdit->setSingleStep(1.0);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
825 yamountLabel->setText(tr("Total packs:"));
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
826 } else if ((product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_DRY) || (product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_DRIED)) {
201
b8232133a12d Fixes for select another yeast.
Michiel Broek <mbroek@mbse.eu>
parents: 200
diff changeset
827 if (oldform == YEAST_FORMS_LIQUID)
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
828 product->yeasts[product->yeasts_row].amount = 0.01;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
829 yamountEdit->setValue(product->yeasts[product->yeasts_row].amount * 1000.0);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
830 yamountEdit->setDecimals(1);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
831 yamountEdit->setSingleStep(0.5);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
832 yamountLabel->setText(tr("Amount in gr:"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
833 } else {
201
b8232133a12d Fixes for select another yeast.
Michiel Broek <mbroek@mbse.eu>
parents: 200
diff changeset
834 if (oldform == YEAST_FORMS_LIQUID)
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
835 product->yeasts[product->yeasts_row].amount = 0.01;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
836 yamountEdit->setValue(product->yeasts[product->yeasts_row].amount * 1000.0);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
837 yamountEdit->setDecimals(1);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
838 yamountEdit->setSingleStep(0.5);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
839 yamountLabel->setText(tr("Amount in ml:"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
840 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
841
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
842 ui->yeastsTable->setItem(product->yeasts_row, 0, new QTableWidgetItem(product->yeasts.at(product->yeasts_row).name));
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
843 ui->yeastsTable->setItem(product->yeasts_row, 1, new QTableWidgetItem(product->yeasts.at(product->yeasts_row).laboratory));
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
844 ui->yeastsTable->setItem(product->yeasts_row, 2, new QTableWidgetItem(product->yeasts.at(product->yeasts_row).product_id));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
845
301
fe6346211b5b Finally the translation of string arrays is working.
Michiel Broek <mbroek@mbse.eu>
parents: 299
diff changeset
846 item = new QTableWidgetItem(QCoreApplication::translate("YeastForm", g_yeast_forms[product->yeasts.at(product->yeasts_row).form]));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
847 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
848 ui->yeastsTable->setItem(product->yeasts_row, 3, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
849
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
850 item = new QTableWidgetItem(QString("%1").arg(product->yeasts.at(product->yeasts_row).min_temperature, 2, 'f', 1, '0'));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
851 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
852 ui->yeastsTable->setItem(product->yeasts_row, 5, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
853
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
854 item = new QTableWidgetItem(QString("%1").arg(product->yeasts.at(product->yeasts_row).max_temperature, 2, 'f', 1, '0'));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
855 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
856 ui->yeastsTable->setItem(product->yeasts_row, 6, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
857
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
858 item = new QTableWidgetItem(QString("%1").arg(product->yeasts.at(product->yeasts_row).tolerance, 2, 'f', 1, '0'));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
859 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
860 ui->yeastsTable->setItem(product->yeasts_row, 7, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
861
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
862 item = new QTableWidgetItem(QString("%1").arg(product->yeasts.at(product->yeasts_row).attenuation, 2, 'f', 1, '0'));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
863 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
864 ui->yeastsTable->setItem(product->yeasts_row, 8, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
865
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
866 if (product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_LIQUID)
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
867 item = new QTableWidgetItem(QString("%1 pack").arg(product->yeasts.at(product->yeasts_row).amount, 1, 'f', 0, '0'));
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
868 else if (product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_DRY || product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_DRIED)
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
869 item = new QTableWidgetItem(QString("%1 gr").arg(product->yeasts.at(product->yeasts_row).amount * 1000.0, 3, 'f', 2, '0'));
201
b8232133a12d Fixes for select another yeast.
Michiel Broek <mbroek@mbse.eu>
parents: 200
diff changeset
870 else
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
871 item = new QTableWidgetItem(QString("%1 ml").arg(product->yeasts.at(product->yeasts_row).amount * 1000.0, 3, 'f', 2, '0'));
201
b8232133a12d Fixes for select another yeast.
Michiel Broek <mbroek@mbse.eu>
parents: 200
diff changeset
872 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
b8232133a12d Fixes for select another yeast.
Michiel Broek <mbroek@mbse.eu>
parents: 200
diff changeset
873 ui->yeastsTable->setItem(product->yeasts_row, 9, item);
b8232133a12d Fixes for select another yeast.
Michiel Broek <mbroek@mbse.eu>
parents: 200
diff changeset
874
b8232133a12d Fixes for select another yeast.
Michiel Broek <mbroek@mbse.eu>
parents: 200
diff changeset
875 //calcYeast();
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
876 is_changed();
201
b8232133a12d Fixes for select another yeast.
Michiel Broek <mbroek@mbse.eu>
parents: 200
diff changeset
877 emit refreshAll();
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
878 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
879
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
880
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
881 void EditProduct::yeast_instock_changed(bool val)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
882 {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
883 QSqlQuery query;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
884
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
885 qDebug() << "yeast_instock_changed()" << product->yeasts_row << val;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
886
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
887 this->yselectEdit->setCurrentIndex(-1);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
888 this->yselectEdit->clear();
299
8021e09ab6a3 Fixed select yeasts in recipes and poducts.
Michiel Broek <mbroek@mbse.eu>
parents: 284
diff changeset
889 QString sql = "SELECT name,laboratory,product_id,inventory FROM inventory_yeasts ";
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
890 if (val)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
891 sql.append("WHERE inventory > 0 ");
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
892 sql.append("ORDER BY laboratory,product_id,name");
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
893 query.prepare(sql);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
894 query.exec();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
895 query.first();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
896 this->yselectEdit->addItem(""); // Start with empty value
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
897 for (int i = 0; i < query.size(); i++) {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
898 this->yselectEdit->addItem(query.value(1).toString()+" - "+query.value(2).toString()+" "+query.value(0).toString() +
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
899 QString(" (%1 gr)").arg(query.value(3).toDouble() * 1000.0, 2, 'f', 1, '0'));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
900 query.next();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
901 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
902 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
903
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
904
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
905 void EditProduct::yeast_useat_changed(int val)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
906 {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
907 qDebug() << "yeast_useat_changed()" << product->yeasts_row << val;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
908
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
909 product->yeasts[product->yeasts_row].use = val;
301
fe6346211b5b Finally the translation of string arrays is working.
Michiel Broek <mbroek@mbse.eu>
parents: 299
diff changeset
910 QTableWidgetItem *item = new QTableWidgetItem(QCoreApplication::translate("YeastUse", g_yeast_use[val]));
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
911 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
912 ui->yeastsTable->setItem(product->yeasts_row, 5, item);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
913 is_changed();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
914 emit refreshAll();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
915 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
916
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
917
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
918 void EditProduct::editYeastRow_clicked()
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
919 {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
920 QSqlQuery query;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
921
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
922 if (product->locked)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
923 return;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
924
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
925 QPushButton *pb = qobject_cast<QPushButton *>(QObject::sender());
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
926 product->yeasts_row = pb->objectName().toInt();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
927 qDebug() << "Edit yeast row" << product->yeasts_row;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
928 Yeasts backup = product->yeasts.at(product->yeasts_row);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
929
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
930 QDialog* dialog = new QDialog(this);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
931 dialog->resize(738, 260);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
932 QDialogButtonBox *buttonBox = new QDialogButtonBox(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
933 buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
934 buttonBox->setGeometry(QRect(30, 210, 671, 32));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
935 buttonBox->setLayoutDirection(Qt::LeftToRight);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
936 buttonBox->setOrientation(Qt::Horizontal);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
937 buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
938 buttonBox->setCenterButtons(true);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
939
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
940 QLabel *nameLabel = new QLabel(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
941 nameLabel->setObjectName(QString::fromUtf8("nameLabel"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
942 nameLabel->setText(tr("Yeast name:"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
943 nameLabel->setGeometry(QRect(10, 10, 141, 20));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
944 nameLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
945 QLabel *laboratoryLabel = new QLabel(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
946 laboratoryLabel->setObjectName(QString::fromUtf8("laboratoryLabel"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
947 laboratoryLabel->setText(tr("Laboratory:"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
948 laboratoryLabel->setGeometry(QRect(10, 40, 141, 20));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
949 laboratoryLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
950 QLabel *product_idLabel = new QLabel(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
951 product_idLabel->setObjectName(QString::fromUtf8("product_idLabel"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
952 product_idLabel->setText(tr("Laboratory:"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
953 product_idLabel->setGeometry(QRect(10, 70, 141, 20));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
954 product_idLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
955 QLabel *selectLabel = new QLabel(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
956 selectLabel->setObjectName(QString::fromUtf8("selectLabel"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
957 selectLabel->setText(tr("Select yeast:"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
958 selectLabel->setGeometry(QRect(10,100, 141, 20));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
959 selectLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
960 QLabel *instockLabel = new QLabel(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
961 instockLabel->setObjectName(QString::fromUtf8("instockLabel"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
962 instockLabel->setText(tr("In stock:"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
963 instockLabel->setGeometry(QRect(525,100, 121, 20));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
964 instockLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
965 yamountLabel = new QLabel(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
966 yamountLabel->setObjectName(QString::fromUtf8("amountLabel"));
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
967 if (product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_LIQUID)
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
968 yamountLabel->setText(tr("Total packs:"));
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
969 else if ((product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_DRY) || (product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_DRIED))
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
970 yamountLabel->setText(tr("Amount in gr:"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
971 else
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
972 yamountLabel->setText(tr("Amount in ml:"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
973 yamountLabel->setGeometry(QRect(10, 130, 141, 20));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
974 yamountLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
975 QLabel *useatLabel = new QLabel(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
976 useatLabel->setObjectName(QString::fromUtf8("useatLabel"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
977 useatLabel->setText(tr("Use at:"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
978 useatLabel->setGeometry(QRect(10, 160, 141, 20));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
979 useatLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
980
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
981 ynameEdit = new QLineEdit(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
982 ynameEdit->setObjectName(QString::fromUtf8("ynameEdit"));
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
983 ynameEdit->setText(product->yeasts.at(product->yeasts_row).name);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
984 ynameEdit->setGeometry(QRect(160, 10, 511, 23));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
985 ynameEdit->setReadOnly(true);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
986 ylaboratoryEdit = new QLineEdit(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
987 ylaboratoryEdit->setObjectName(QString::fromUtf8("ylaboratoryEdit"));
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
988 ylaboratoryEdit->setText(product->yeasts.at(product->yeasts_row).laboratory);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
989 ylaboratoryEdit->setGeometry(QRect(160, 40, 511, 23));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
990 ylaboratoryEdit->setReadOnly(true);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
991 yproduct_idEdit = new QLineEdit(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
992 yproduct_idEdit->setObjectName(QString::fromUtf8("yproduct_idEdit"));
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
993 yproduct_idEdit->setText(product->yeasts.at(product->yeasts_row).product_id);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
994 yproduct_idEdit->setGeometry(QRect(160, 70, 511, 23));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
995 yproduct_idEdit->setReadOnly(true);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
996 yselectEdit = new QComboBox(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
997 yselectEdit->setObjectName(QString::fromUtf8("selectEdit"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
998 yselectEdit->setGeometry(QRect(160,100, 371, 23));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
999 yinstockEdit = new QCheckBox(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1000 yinstockEdit->setObjectName(QString::fromUtf8("yinstockEdit"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1001 yinstockEdit->setGeometry(QRect(655,100, 85, 21));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1002 yinstockEdit->setChecked(true);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1003 yamountEdit = new QDoubleSpinBox(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1004 yamountEdit->setObjectName(QString::fromUtf8("yamountEdit"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1005 yamountEdit->setGeometry(QRect(160, 130, 121, 24));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1006 yamountEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1007 yamountEdit->setAccelerated(true);
201
b8232133a12d Fixes for select another yeast.
Michiel Broek <mbroek@mbse.eu>
parents: 200
diff changeset
1008 yamountEdit->setMaximum(10000.0);
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
1009 if (product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_LIQUID) {
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1010 yamountEdit->setDecimals(0);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1011 yamountEdit->setSingleStep(1.0);
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
1012 yamountEdit->setValue(product->yeasts.at(product->yeasts_row).amount);
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
1013 } else if ((product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_DRY) || (product->yeasts.at(product->yeasts_row).form == YEAST_FORMS_DRIED)) {
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1014 yamountEdit->setDecimals(1);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1015 yamountEdit->setSingleStep(0.5);
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
1016 yamountEdit->setValue(product->yeasts.at(product->yeasts_row).amount * 1000.0);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1017 } else {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1018 yamountEdit->setDecimals(1);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1019 yamountEdit->setSingleStep(0.5);
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
1020 yamountEdit->setValue(product->yeasts.at(product->yeasts_row).amount * 1000.0);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1021 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1022 yamountEdit->setMaximum(1000000000.0);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1023 useatEdit = new QComboBox(dialog);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1024 useatEdit->setObjectName(QString::fromUtf8("useatEdit"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1025 useatEdit->setGeometry(QRect(160, 160, 161, 23));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1026 useatEdit->addItem(tr("Primary"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1027 useatEdit->addItem(tr("Secondary"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1028 useatEdit->addItem(tr("Tertiary"));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1029 useatEdit->addItem(tr("Bottle"));
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
1030 useatEdit->setCurrentIndex(product->yeasts.at(product->yeasts_row).use);
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1031
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1032 yeast_instock_changed(true);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1033
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1034 connect(yselectEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditProduct::yeast_select_changed);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1035 connect(yamountEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::yeast_amount_changed);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1036 connect(useatEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditProduct::yeast_useat_changed);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1037 connect(yinstockEdit, &QCheckBox::stateChanged, this, &EditProduct::yeast_instock_changed);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1038 connect(buttonBox, SIGNAL(rejected()), dialog, SLOT(reject()));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1039 connect(buttonBox, SIGNAL(accepted()), dialog, SLOT(accept()));
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1040
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1041 dialog->setModal(true);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1042 dialog->exec();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1043 if (dialog->result() == QDialog::Rejected) {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1044 qDebug() << "reject and rollback";
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1045 product->yeasts[product->yeasts_row] = backup;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1046 } else {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1047
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1048 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1049
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1050 disconnect(yselectEdit, nullptr, nullptr, nullptr);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1051 disconnect(yamountEdit, nullptr, nullptr, nullptr);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1052 disconnect(useatEdit, nullptr, nullptr, nullptr);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1053 disconnect(yinstockEdit, nullptr, nullptr, nullptr);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1054 disconnect(buttonBox, nullptr, nullptr, nullptr);
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1055
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1056 emit refreshAll();
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1057 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1058
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1059
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1060 void EditProduct::adjustYeasts(double factor)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1061 {
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1062 double amount;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1063
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1064 if (product->yeasts.size() == 0)
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1065 return;
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1066
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1067 for (int i = 0; i < product->yeasts.size(); i++) {
284
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
1068 if (product->yeasts.at(i).form == YEAST_FORMS_DRY) { // Only adjust dry yeast
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
1069 amount = product->yeasts.at(i).amount * factor;
33bb98c33e6a Member names for yeasts normalized.
Michiel Broek <mbroek@mbse.eu>
parents: 202
diff changeset
1070 product->yeasts[i].amount = amount;
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1071 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1072 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1073 }
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1074

mercurial