src/EditProductTab11.cpp

Fri, 20 May 2022 12:47:35 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 20 May 2022 12:47:35 +0200
changeset 223
37bac72eff61
parent 222
c5a3beb15eef
child 224
d369948a3eb5
permissions
-rw-r--r--

Added keg priming and forced carbonation.

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 11, package
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 hope 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
221
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
20 double EditProduct::ResCO2(double T)
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
21 {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
22 double F = T * 1.8 + 32;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
23 return round((3.0378 - 0.050062 * F + 0.00026555 * F * F) * 1000000.0) / 1000000.0;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
24 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
25
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
26
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
27 double EditProduct::CarbCO2toS(double CO2, double T, double SFactor)
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
28 {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
29 //var sugar = SFactor * (CO2 - ResCO2(CO2, T)) / 0.286;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
30 double sugar = round((SFactor * (CO2 - ResCO2(T)) * 4.014094) * 1000000.0) / 1000000.0;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
31 if (sugar < 0)
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
32 sugar = 0;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
33 return sugar; //Round(sugar, 3);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
34 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
35
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
36
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
37 double EditProduct::GetPressure(double CO2, double T1, double T2)
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
38 {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
39 double V = CO2 - ResCO2(T1);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
40 V = CO2; // TODO: temp only total pressure, testing
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
41 if (V < 0)
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
42 return 0;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
43
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
44 double P = -1.09145427669121 + 0.00800006989646477 * T2 + 0.000260276315484684 * T2 * T2 + 0.0215142075945119 * T2 * V +
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
45 0.674996600795854 * V + -0.00471757220150754 * V * V;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
46 if (P < 0)
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
47 P = 0;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
48 P = round((P * 1.01325) * 100.0) / 100.0; // atm to bar
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
49 qDebug() << " GetPressure(" << CO2 << "," << T1 << "," << T2 << ") V:" << V << "Bar:" << P << "ignored ResCO2:" << ResCO2(T1);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
50 return P;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
51 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
52
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
53
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
54 double EditProduct::CarbCO2ToPressure(double CO2, double T)
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
55 {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
56 return (CO2 - (-0.000005594056 * pow(T, 4) + 0.000144357886 * pow(T, 3) +
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
57 0.000362999168 * T * T - 0.064872987645 * T + 1.641145175049)) /
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
58 (0.00000498031 * pow(T, 4) - 0.00024358267 * pow(T, 3) + 0.00385867329 * T * T - 0.05671206825 * T + 1.53801423376);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
59 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
60
175
f1ed3a2a94e9 Initial import of EditProduct, the part from EditRecipe is ported.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
62 void EditProduct::calcPack()
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
63 {
221
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
64 int i, j;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
65 bool found1, found2;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
66 QSqlQuery query;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
67 double TSec, SFactor;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
68
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
69 qDebug() << "calcPack()" << product->package_volume << product->package_abv << "inf" << product->package_infuse_amount << product->package_infuse_abv;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
70
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
71 if (product->package_volume < 1) {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
72 /*
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
73 * If there is not enough to package, then don't
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
74 * do any calculations and clear the rest of the form.
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
75 */
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
76 product->package_volume = 0;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
77 ui->pack_finalabvShow->setValue(0);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
78
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
79 return;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
80 }
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
81
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
82 double bvol = product->package_volume - (product->package_abv * product->package_volume) / 100.0;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
83 double balc = product->package_volume - bvol;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
84 double mvol = product->package_infuse_amount - (product->package_infuse_abv * product->package_infuse_amount) / 100.0;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
85 double malc = product->package_infuse_amount - mvol;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
86 double talc = balc + malc;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
87 double tvol = bvol + mvol;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
88
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
89 product->final_abv = round(talc / (tvol + talc) * 10000.0) / 100.0;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
90 ui->pack_finalabvShow->setValue(product->final_abv);
221
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
91
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
92 TSec = product->secondary_temp;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
93 if (TSec < 1)
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
94 TSec = product->primary_end_temp;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
95 if (TSec < 1)
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
96 TSec = 18;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
97
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
98 /*
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
99 * For bottles and kegs use the following complicated procedure to
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
100 * find the needed priming sugars.
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
101 *
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
102 * 1. If we need a priming sugar then first see in the fermentables
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
103 * table if there is one selected. If not, clear sugars and done.
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
104 * 2. Then, we update the data from the fermentables inventory.
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
105 * 3. Set the found sugar in the pulldown menu.
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
106 * 4. Calculate the sugar in gr/L and total amount need.
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
107 * 5. Calculate the ABV in the bottles/kegs.
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
108 * 6. Calculate the pressure build by the refermentation.
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
109 *
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
110 * Note that this is all a leftover from the web based application that
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
111 * did work like this. It's a bit strange but it will allways give
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
112 * the right data and sugar concentrations.
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
113 * Sometimes bugs have good things.
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
114 */
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
115 found1 = false;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
116 if (product->bottle_amount) {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
117 for (i = 0; i < product->fermentables.size(); i++) {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
118 if (product->fermentables.at(i).f_added == FERMENTABLE_ADDED_BOTTLE) {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
119 found1 = true;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
120 break;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
121 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
122 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
123 if (found1) {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
124 SFactor = 1 / ((product->fermentables.at(i).f_yield / 100) * (1 - product->fermentables.at(i).f_moisture / 100));
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
125 qDebug() << " bottle sugar" << product->fermentables.at(i).f_name << SFactor << TSec;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
126
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
127 query.prepare("SELECT name,supplier FROM inventory_fermentables WHERE type = '1' OR type = '3' ORDER BY name"); // Sugars or dry extract
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
128 query.exec();
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
129 j = 0;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
130 found2 = false;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
131 while (query.next()) {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
132 j++;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
133 if (query.value(0).toString() == product->fermentables.at(i).f_name && query.value(1).toString() == product->fermentables.at(i).f_supplier) {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
134 ui->bottle_sugarEdit->setCurrentIndex(j);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
135 product->bottle_priming_sugar = j;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
136 found2 = true;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
137 break;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
138 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
139 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
140 if (! found2) {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
141 ui->bottle_sugarEdit->setCurrentIndex(0); // Make sure not selected
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
142 product->fermentables.removeAt(i); // Remove false fermentable
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
143 refreshFermentables();
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
144 } else {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
145 product->bottle_priming_amount = CarbCO2toS(product->bottle_carbonation, TSec, SFactor);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
146 ui->bottle_sug_amountShow->setValue(product->bottle_priming_amount);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
147 double total = round(product->bottle_priming_amount * product->bottle_amount * 100.0) / 100000.0;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
148 qDebug() << " total" << total << product->fermentables.at(i).f_amount;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
149 if (total != product->fermentables.at(i).f_amount) {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
150 qDebug() << " update priming sugar" << total;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
151 product->fermentables[i].f_amount = total;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
152 refreshFermentables();
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
153 ui->bottle_sug_weightShow->setValue(total * 1000);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
154 is_changed();
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
155 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
156
222
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
157 double pabv = product->final_abv + (product->bottle_priming_amount * (1 / SFactor) * 0.47) / 7.907;
221
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
158 double pvol = product->bottle_amount - (pabv * product->bottle_amount) / 100;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
159 talc = product->bottle_amount - pvol;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
160 tvol = pvol + product->bottle_priming_water;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
161 ui->bottle_abvShow->setValue(talc / (tvol + talc) * 100);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
162 ui->bottle_barShow->setValue(GetPressure(product->bottle_carbonation, TSec, product->bottle_carbonation_temp));
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
163 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
164 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
165 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
166 if (! found1) {
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
167 qDebug() << " no bottle priming";
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
168 ui->bottle_sug_amountShow->setValue(0);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
169 ui->bottle_sug_weightShow->setValue(0);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
170 ui->bottle_abvShow->setValue(0);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
171 ui->bottle_barShow->setValue(0);
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
172 }
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
173
223
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
174 ui->keg_sugarLabel->setEnabled(! product->keg_forced_carb);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
175 ui->keg_sugarEdit->setEnabled(! product->keg_forced_carb);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
176 ui->keg_sug_weightLabel->setEnabled(! product->keg_forced_carb);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
177 ui->keg_sug_weightShow->setEnabled(! product->keg_forced_carb);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
178 ui->keg_sug_waterLabel->setEnabled(! product->keg_forced_carb);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
179 ui->keg_sug_waterEdit->setEnabled(! product->keg_forced_carb);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
180 ui->keg_sug_amountLabel->setEnabled(! product->keg_forced_carb);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
181 ui->keg_sug_amountShow->setEnabled(! product->keg_forced_carb);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
182
221
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
183 // keg_amount keg_carbonation keg_priming_sugar keg_priming_amount keg_priming_water keg_carbonation_temp keg_forced_carb keg_pressure
223
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
184 found1 = false;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
185 if (product->keg_amount) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
186
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
187 double Pressure = CarbCO2ToPressure(product->keg_carbonation, product->keg_carbonation_temp);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
188 if (Pressure < 0)
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
189 Pressure = 0;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
190 product->keg_pressure = Pressure;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
191 ui->keg_barShow->setValue(Pressure);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
192
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
193 if (! product->keg_forced_carb) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
194 for (i = 0; i < product->fermentables.size(); i++) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
195 if (product->fermentables.at(i).f_added == FERMENTABLE_ADDED_KEGS) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
196 found1 = true;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
197 break;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
198 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
199 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
200 if (found1) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
201 SFactor = 1 / ((product->fermentables.at(i).f_yield / 100) * (1 - product->fermentables.at(i).f_moisture / 100));
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
202 qDebug() << " kegs sugar" << product->fermentables.at(i).f_name << SFactor << TSec;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
203
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
204 query.prepare("SELECT name,supplier FROM inventory_fermentables WHERE type = '1' OR type = '3' ORDER BY name"); // Sugars or dry extract
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
205 query.exec();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
206 j = 0;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
207 found2 = false;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
208 while (query.next()) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
209 j++;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
210 if (query.value(0).toString() == product->fermentables.at(i).f_name && query.value(1).toString() == product->fermentables.at(i).f_supplier) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
211 ui->keg_sugarEdit->setCurrentIndex(j);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
212 product->keg_priming_sugar = j;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
213 found2 = true;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
214 break;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
215 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
216 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
217 if (! found2) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
218 ui->keg_sugarEdit->setCurrentIndex(0); // Make sure not selected
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
219 product->fermentables.removeAt(i); // Remove false fermentable
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
220 refreshFermentables();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
221 } else {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
222 product->keg_priming_amount = CarbCO2toS(product->keg_carbonation, TSec, SFactor);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
223 ui->keg_sug_amountShow->setValue(product->keg_priming_amount);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
224 double total = round(product->keg_priming_amount * product->keg_amount * 100.0) / 100000.0;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
225 qDebug() << " total" << total << product->fermentables.at(i).f_amount;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
226 if (total != product->fermentables.at(i).f_amount) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
227 qDebug() << " update priming sugar" << total;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
228 product->fermentables[i].f_amount = total;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
229 refreshFermentables();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
230 ui->keg_sug_weightShow->setValue(total * 1000);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
231 is_changed();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
232 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
233
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
234 double pabv = product->final_abv + (product->keg_priming_amount * (1 / SFactor) * 0.47) / 7.907;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
235 double pvol = product->keg_amount - (pabv * product->keg_amount) / 100;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
236 talc = product->keg_amount - pvol;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
237 tvol = pvol + product->keg_priming_water;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
238 ui->keg_abvShow->setValue(talc / (tvol + talc) * 100);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
239 ui->keg_barShow->setValue(GetPressure(product->keg_carbonation, TSec, product->keg_carbonation_temp));
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
240 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
241 } // if priming sugar.
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
242 if (! found1) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
243 qDebug() << " no keg priming";
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
244 ui->keg_sug_amountShow->setValue(0);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
245 ui->keg_sug_weightShow->setValue(0);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
246 ui->keg_abvShow->setValue(0);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
247 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
248 } else {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
249 /*
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
250 * Forced carbonation
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
251 */
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
252 ui->keg_abvShow->setValue(product->final_abv);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
253 ui->keg_sug_amountShow->setValue(0);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
254 ui->keg_sug_weightShow->setValue(0);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
255 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
256 } // if keg_amount
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
257 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
258
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
259
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
260 /*
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
261 * Triggered by writing to ui->pack_abvShow
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
262 */
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
263 void EditProduct::pack_abv_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
264 {
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
265 calcPack();
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
266 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
267
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
268
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
269 void EditProduct::pack_date_changed(QDate val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
270 {
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
271 qDebug() << "pack_date_changed" << val;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
272 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
273
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
274
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
275 void EditProduct::pack_date_button()
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
276 {
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
277 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
278
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
279
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
280 void EditProduct::pack_date_ack()
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
281 {
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
282 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
283
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
284
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
285 void EditProduct::pack_volume_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
286 {
223
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
287 /*
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
288 * If the total volume is decreased, check if the
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
289 * bottle and kegs amount need to be lowered as well.
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
290 */
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
291
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
292 product->package_volume = val;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
293 calcPack();
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
294 is_changed();
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
295 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
296
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
297
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
298 void EditProduct::pack_ph_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
299 {
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
300 if (product->package_ph == 0) {
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
301 product->package_ph = 4.0;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
302 const QSignalBlocker blocker1(ui->pack_phEdit);
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
303 ui->pack_phEdit->setValue(4.0);
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
304 } else {
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
305 product->package_ph = val;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
306 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
307 is_changed();
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
308 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
309
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
310
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
311 void EditProduct::pack_infusion_vol_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
312 {
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
313 product->package_infuse_amount = val;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
314 calcPack();
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
315 is_changed();
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
316 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
317
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
318
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
319 void EditProduct::pack_infusion_abv_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
320 {
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
321 product->package_infuse_abv = val;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
322 calcPack();
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
323 is_changed();
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
324 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
325
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
326
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
327 void EditProduct::pack_infusion_txt_changed(QString val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
328 {
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
329 product->package_infuse_notes = val;
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
330 is_changed();
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
331 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
332
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
333
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
334 void EditProduct::bottle_volume_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
335 {
223
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
336 /*
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
337 * Check if kegs volume plus this new volume fits in the package volume.
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
338 */
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
339 if ((val + product->keg_amount) > product->package_volume) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
340 double kegs = product->package_volume - val;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
341 const QSignalBlocker blocker1(ui->keg_volumeEdit);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
342 product->keg_amount = kegs;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
343 ui->keg_volumeEdit->setValue(kegs);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
344 }
221
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
345 product->bottle_amount = val;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
346 calcPack();
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
347 is_changed();
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
348 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
349
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
350
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
351 void EditProduct::bottle_co2_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
352 {
221
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
353 product->bottle_carbonation = val;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
354 calcPack();
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
355 is_changed();
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
356 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
357
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
358
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
359 void EditProduct::bottle_sugar_changed(int val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
360 {
222
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
361 Fermentables newf;
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
362 QSqlQuery query;
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
363
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
364 qDebug() << "bottle_sugar_changed" << product->bottle_priming_sugar << val;
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
365 for (int i = 0; i < product->fermentables.size(); i++) {
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
366 if (product->fermentables.at(i).f_added == FERMENTABLE_ADDED_BOTTLE) {
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
367 product->fermentables.removeAt(i);
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
368 refreshFermentables();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
369 break;
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
370 }
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
371 }
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
372
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
373 /*
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
374 * Search the sugar pointed by the index.
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
375 */
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
376 QString sql = "SELECT name,origin,supplier,cost,type,yield,color,coarse_fine_diff,moisture,diastatic_power,protein,dissolved_protein,max_in_batch,"
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
377 "graintype,recommend_mash,add_after_boil,di_ph,acid_to_ph_57,inventory FROM inventory_fermentables "
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
378 "WHERE type = '1' OR type = '3' ORDER BY name";
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
379 query.prepare(sql);
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
380 query.exec();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
381 query.first();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
382 for (int i = 0; i < (val - 1); i++) {
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
383 query.next();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
384 }
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
385
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
386 newf.f_name = query.value(0).toString();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
387 newf.f_origin = query.value(1).toString();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
388 newf.f_supplier = query.value(2).toString();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
389 newf.f_cost = query.value(3).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
390 newf.f_type = query.value(4).toInt();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
391 newf.f_yield = query.value(5).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
392 newf.f_color = query.value(6).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
393 newf.f_coarse_fine_diff = query.value(7).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
394 newf.f_moisture = query.value(8).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
395 newf.f_diastatic_power = query.value(9).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
396 newf.f_protein = query.value(10).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
397 newf.f_dissolved_protein = query.value(11).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
398 newf.f_max_in_batch = query.value(12).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
399 newf.f_graintype = query.value(13).toInt();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
400 newf.f_recommend_mash = query.value(14).toInt() ? true:false;
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
401 newf.f_add_after_boil = true;
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
402 newf.f_di_ph = query.value(16).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
403 newf.f_acid_to_ph_57 = query.value(17).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
404 newf.f_inventory = query.value(18).toDouble();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
405 newf.f_amount = 0;
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
406 newf.f_added = FERMENTABLE_ADDED_BOTTLE;
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
407
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
408 product->fermentables.append(newf);
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
409 refreshFermentables();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
410 const QSignalBlocker blocker1(ui->bottle_sugarEdit);
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
411 calcPack();
c5a3beb15eef Replace priming sugar implemented.
Michiel Broek <mbroek@mbse.eu>
parents: 221
diff changeset
412 is_changed();
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
413 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
414
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
415
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
416 void EditProduct::bottle_water_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
417 {
221
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
418 product->bottle_priming_water = val;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
419 calcPack();
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
420 is_changed();
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
421 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
422
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
423
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
424 void EditProduct::bottle_temp_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
425 {
221
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
426 product->bottle_carbonation_temp = val;
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
427 calcPack();
54828816233f Added bottles priming calculations.
Michiel Broek <mbroek@mbse.eu>
parents: 220
diff changeset
428 is_changed();
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
429 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
430
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
431
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
432 void EditProduct::kegs_volume_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
433 {
223
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
434 /*
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
435 * Check if bottle volume plus this new volume fits in the package volume.
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
436 */
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
437 if ((val + product->bottle_amount) > product->package_volume) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
438 double bottle = product->package_volume - val;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
439 const QSignalBlocker blocker1(ui->bottle_volumeEdit);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
440 product->bottle_amount = bottle;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
441 ui->bottle_volumeEdit->setValue(bottle);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
442 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
443 product->keg_amount = val;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
444 calcPack();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
445 is_changed();
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
446 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
447
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
448
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
449 void EditProduct::kegs_co2_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
450 {
223
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
451 product->keg_carbonation = val;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
452 calcPack();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
453 is_changed();
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
454 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
455
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
456
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
457 void EditProduct::kegs_sugar_changed(int val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
458 {
223
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
459 Fermentables newf;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
460 QSqlQuery query;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
461
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
462 qDebug() << "kegs_sugar_changed" << product->keg_priming_sugar << val;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
463 for (int i = 0; i < product->fermentables.size(); i++) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
464 if (product->fermentables.at(i).f_added == FERMENTABLE_ADDED_KEGS) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
465 product->fermentables.removeAt(i);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
466 refreshFermentables();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
467 break;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
468 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
469 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
470
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
471 /*
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
472 * Search the sugar pointed by the index.
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
473 */
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
474 QString sql = "SELECT name,origin,supplier,cost,type,yield,color,coarse_fine_diff,moisture,diastatic_power,protein,dissolved_protein,max_in_batch,"
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
475 "graintype,recommend_mash,add_after_boil,di_ph,acid_to_ph_57,inventory FROM inventory_fermentables "
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
476 "WHERE type = '1' OR type = '3' ORDER BY name";
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
477 query.prepare(sql);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
478 query.exec();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
479 query.first();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
480 for (int i = 0; i < (val - 1); i++) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
481 query.next();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
482 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
483
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
484 newf.f_name = query.value(0).toString();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
485 newf.f_origin = query.value(1).toString();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
486 newf.f_supplier = query.value(2).toString();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
487 newf.f_cost = query.value(3).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
488 newf.f_type = query.value(4).toInt();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
489 newf.f_yield = query.value(5).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
490 newf.f_color = query.value(6).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
491 newf.f_coarse_fine_diff = query.value(7).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
492 newf.f_moisture = query.value(8).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
493 newf.f_diastatic_power = query.value(9).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
494 newf.f_protein = query.value(10).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
495 newf.f_dissolved_protein = query.value(11).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
496 newf.f_max_in_batch = query.value(12).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
497 newf.f_graintype = query.value(13).toInt();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
498 newf.f_recommend_mash = query.value(14).toInt() ? true:false;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
499 newf.f_add_after_boil = true;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
500 newf.f_di_ph = query.value(16).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
501 newf.f_acid_to_ph_57 = query.value(17).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
502 newf.f_inventory = query.value(18).toDouble();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
503 newf.f_amount = 0;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
504 newf.f_added = FERMENTABLE_ADDED_KEGS;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
505
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
506 product->fermentables.append(newf);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
507 refreshFermentables();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
508 const QSignalBlocker blocker1(ui->keg_sugarEdit);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
509 calcPack();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
510 is_changed();
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
511 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
512
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
513
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
514 void EditProduct::kegs_water_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
515 {
223
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
516 product->keg_priming_water = val;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
517 calcPack();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
518 is_changed();
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
519 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
520
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
521
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
522 void EditProduct::kegs_forced_changed(bool val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
523 {
223
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
524 qDebug() << "kegs_forced_changed" << val;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
525
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
526 product->keg_forced_carb = val;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
527 if (val) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
528 /*
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
529 * Make sure to remove priming sugars.
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
530 */
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
531 for (int i = 0; i < product->fermentables.size(); i++) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
532 if (product->fermentables.at(i).f_added == FERMENTABLE_ADDED_KEGS) {
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
533 product->fermentables.removeAt(i);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
534 refreshFermentables();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
535 break;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
536 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
537 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
538 product->keg_priming_sugar = 0;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
539 product->keg_priming_amount = 0;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
540 product->keg_priming_water = 0;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
541 const QSignalBlocker blocker1(ui->keg_sugarEdit);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
542 const QSignalBlocker blocker2(ui->keg_sug_waterEdit);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
543 ui->keg_sugarEdit->setCurrentIndex(0);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
544 ui->keg_sug_weightShow->setValue(0);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
545 ui->keg_sug_waterEdit->setValue(0);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
546 ui->keg_sug_amountShow->setValue(0);
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
547 }
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
548
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
549 calcPack();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
550 is_changed();
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
551 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
552
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
553
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
554 void EditProduct::kegs_temp_changed(double val)
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
555 {
223
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
556 product->keg_carbonation_temp = val;
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
557 calcPack();
37bac72eff61 Added keg priming and forced carbonation.
Michiel Broek <mbroek@mbse.eu>
parents: 222
diff changeset
558 is_changed();
220
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
559 }
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
560
7792a410a277 Added first part of the package tab.
Michiel Broek <mbroek@mbse.eu>
parents: 175
diff changeset
561

mercurial