Thu, 02 Feb 2023 15:23:18 +0100
Added default load yeastpacks. Added yeast_package_changed signal.
--- a/src/EditProduct.h Tue Jan 31 16:24:11 2023 +0100 +++ b/src/EditProduct.h Thu Feb 02 15:23:18 2023 +0100 @@ -103,6 +103,7 @@ void yeast_pitchrate_button_clicked(); void yeast_retry_button_clicked(); void yeast_amount_changed(double val); + void yeast_package_changed(int val); void yeast_select_changed(int val); void yeast_instock_changed(bool val); void yeast_useat_changed(int val); @@ -340,6 +341,7 @@ void calcViability(); void calcYeast(); void adjustYeasts(double factor); + void yeast_load_packages(QString laboratory, int form); double infusionVol(double step_infused, double step_mashkg, double infuse_temp, double step_temp, double last_temp); double decoctionVol(double step_volume, double step_temp, double prev_temp); void calcMash();
--- a/src/EditProductTab6.cpp Tue Jan 31 16:24:11 2023 +0100 +++ b/src/EditProductTab6.cpp Thu Feb 02 15:23:18 2023 +0100 @@ -590,7 +590,12 @@ for (int i = 0; i < product->yeasts.size(); i++) { if (product->yeasts.at(i).use == YEAST_USE_PRIMARY) { - if (product->yeasts.at(i).form == YEAST_FORMS_LIQUID) { + qDebug() << "calcViability()" << i << product->yeasts.at(i).yp_uuid << product->yeasts.at(i).yp_package; + if (! product->yeasts.at(i).yp_uuid.isNull() && (product->yeasts.at(i).yp_uuid.length() == 36)) { + qDebug() << " valid package vpm:" << product->yeasts.at(i).yp_viability << product->yeasts.at(i).yp_max; + vpm = product->yeasts.at(i).yp_viability; + max = product->yeasts.at(i).yp_max; + } else if (product->yeasts.at(i).form == YEAST_FORMS_LIQUID) { // Fallback to hardcoded values. vpm = 0.80; max = 97; if (product->yeasts.at(i).laboratory == "White Labs") { // PurePitch @@ -954,9 +959,79 @@ } +void EditProduct::yeast_load_packages(QString laboratory, int form) +{ + QSqlQuery query; + + /* + * Clear package and rebuild package select table. + */ + this->ypackageEdit->setCurrentIndex(-1); + this->ypackageEdit->clear(); + this->ypackageEdit->addItem(""); // Start with empty value + query.prepare("SELECT * FROM inventory_yeastpack WHERE laboratory=:laboratory AND form=:form AND valid='1' ORDER BY laboratory,package"); + query.bindValue(":laboratory", laboratory); + query.bindValue(":form", form); + qDebug() << " search" << laboratory << form; + query.exec(); + while (query.next()) { + this->ypackageEdit->addItem(query.value("laboratory").toString()+" - "+query.value("package").toString()); + qDebug() << " add package" << query.value("laboratory").toString() << query.value("package").toString(); + } +} + + +void EditProduct::yeast_package_changed(int val) +{ + QSqlQuery query; + int index = 0; + +#ifdef DEBUG_YEAST + qDebug() << "yeast_package_changed()" << product->yeasts_row << val; +#endif + + /* + * Scan the packages for result number 'val' + */ + query.prepare("SELECT * FROM inventory_yeastpack WHERE laboratory=:laboratory AND form=:form AND valid='1' ORDER BY laboratory,package"); + query.bindValue(":laboratory", product->yeasts.at(product->yeasts_row).laboratory); + query.bindValue(":form", product->yeasts.at(product->yeasts_row).form); + qDebug() << " search" << product->yeasts.at(product->yeasts_row).laboratory << product->yeasts.at(product->yeasts_row).form; + query.exec(); + while (query.next()) { + index++; + if (index == val) { + qDebug() << " result" << index << query.value("package").toString(); + product->yeasts[product->yeasts_row].yp_uuid = query.value("uuid").toString(); + product->yeasts[product->yeasts_row].yp_package = query.value("package").toString(); + product->yeasts[product->yeasts_row].yp_cells = query.value("cells").toDouble(); + product->yeasts[product->yeasts_row].yp_viability = query.value("viability").toDouble(); + product->yeasts[product->yeasts_row].yp_max = query.value("max").toInt(); + product->yeasts[product->yeasts_row].yp_size = query.value("size").toDouble(); + is_changed(); + return; + } + } + if (! product->yeasts[product->yeasts_row].yp_uuid.isNull()) { + /* + * Clear package + */ + product->yeasts[product->yeasts_row].yp_uuid = QString(); + product->yeasts[product->yeasts_row].yp_package = QString(); + product->yeasts[product->yeasts_row].yp_cells = product->yeasts[product->yeasts_row].cells; + product->yeasts[product->yeasts_row].yp_viability = 0.99; + product->yeasts[product->yeasts_row].yp_max = 100; + product->yeasts[product->yeasts_row].yp_size = 0.01; + is_changed(); + qDebug() << " cleared old yp_xxx data"; + } + qDebug() << " result not found"; +} + + void EditProduct::yeast_select_changed(int val) { - QSqlQuery query, query1; + QSqlQuery query; bool instock = yinstockEdit->isChecked(); QString w; QTableWidgetItem *item; @@ -1052,18 +1127,7 @@ /* * Clear package and rebuild package select table. */ - this->ypackageEdit->setCurrentIndex(-1); - this->ypackageEdit->clear(); - this->ypackageEdit->addItem(""); // Start with empty value - query1.prepare("SELECT * FROM inventory_yeastpack WHERE laboratory=:laboratory AND form=:form AND valid='1' ORDER BY laboratory,package"); - query1.bindValue(":laboratory", query.value("laboratory").toString()); - query1.bindValue(":form", query.value("form").toInt()); - qDebug() << " search" << query.value("laboratory").toString() << query.value("form").toInt(); - query1.exec(); - while (query1.next()) { - this->ypackageEdit->addItem(query1.value("laboratory").toString()+" - "+query1.value("package").toString()); - qDebug() << " add package" << query1.value("laboratory").toString() << query1.value("package").toString(); - } + yeast_load_packages(query.value("laboratory").toString(), query.value("form").toInt()); ui->yeastsTable->setItem(product->yeasts_row, 0, new QTableWidgetItem(product->yeasts.at(product->yeasts_row).name)); ui->yeastsTable->setItem(product->yeasts_row, 1, new QTableWidgetItem(product->yeasts.at(product->yeasts_row).laboratory)); @@ -1298,8 +1362,25 @@ useatEdit->setCurrentIndex(product->yeasts.at(product->yeasts_row).use); yeast_instock_changed(true); + yeast_load_packages(product->yeasts.at(product->yeasts_row).laboratory, product->yeasts.at(product->yeasts_row).form); + + int index = -1; + if (! product->yeasts.at(product->yeasts_row).yp_uuid.isNull() && (product->yeasts.at(product->yeasts_row).yp_uuid.length() == 36)) { + query.prepare("SELECT * FROM inventory_yeastpack WHERE laboratory=:laboratory AND form=:form AND valid='1' ORDER BY laboratory,package"); + query.bindValue(":laboratory", product->yeasts.at(product->yeasts_row).laboratory); + query.bindValue(":form", product->yeasts.at(product->yeasts_row).form); + qDebug() << " search" << product->yeasts.at(product->yeasts_row).laboratory << product->yeasts.at(product->yeasts_row).form; + query.exec(); + while (query.next()) { + index++; + if (query.value("uuid").toString() == product->yeasts.at(product->yeasts_row).yp_uuid) + break; + } + qDebug() << " result" << index << (query.value("uuid").toString() == product->yeasts.at(product->yeasts_row).yp_uuid); + } connect(yselectEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditProduct::yeast_select_changed); + connect(ypackageEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditProduct::yeast_package_changed); connect(yamountEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::yeast_amount_changed); connect(useatEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditProduct::yeast_useat_changed); connect(yinstockEdit, &QCheckBox::stateChanged, this, &EditProduct::yeast_instock_changed); @@ -1318,6 +1399,7 @@ } disconnect(yselectEdit, nullptr, nullptr, nullptr); + disconnect(ypackageEdit, nullptr, nullptr, nullptr); disconnect(yamountEdit, nullptr, nullptr, nullptr); disconnect(useatEdit, nullptr, nullptr, nullptr); disconnect(yinstockEdit, nullptr, nullptr, nullptr);
--- a/translations/bmsapp_en.ts Tue Jan 31 16:24:11 2023 +0100 +++ b/translations/bmsapp_en.ts Thu Feb 02 15:23:18 2023 +0100 @@ -4330,7 +4330,7 @@ <location filename="../src/EditProductTab3.cpp" line="730"/> <location filename="../src/EditProductTab4.cpp" line="361"/> <location filename="../src/EditProductTab5.cpp" line="399"/> - <location filename="../src/EditProductTab6.cpp" line="907"/> + <location filename="../src/EditProductTab6.cpp" line="912"/> <location filename="../src/EditProductTab7.cpp" line="306"/> <location filename="../src/EditProductTab13.cpp" line="279"/> <location filename="../src/EditProduct.cpp" line="910"/> @@ -4366,7 +4366,7 @@ <message> <location filename="../src/EditProductTab3.cpp" line="1073"/> <location filename="../src/EditProductTab4.cpp" line="633"/> - <location filename="../src/EditProductTab6.cpp" line="1227"/> + <location filename="../src/EditProductTab6.cpp" line="1267"/> <source>Use at:</source> <translation type="unfinished"></translation> </message> @@ -4380,7 +4380,7 @@ <location filename="../src/EditProductTab3.cpp" line="1083"/> <location filename="../src/EditProductTab4.cpp" line="643"/> <location filename="../src/EditProductTab5.cpp" line="674"/> - <location filename="../src/EditProductTab6.cpp" line="1205"/> + <location filename="../src/EditProductTab6.cpp" line="1247"/> <source>In stock:</source> <translation type="unfinished"></translation> </message> @@ -4522,8 +4522,8 @@ <location filename="../src/EditProductTab4.cpp" line="619"/> <location filename="../src/EditProductTab5.cpp" line="525"/> <location filename="../src/EditProductTab5.cpp" line="650"/> - <location filename="../src/EditProductTab6.cpp" line="1040"/> - <location filename="../src/EditProductTab6.cpp" line="1220"/> + <location filename="../src/EditProductTab6.cpp" line="1077"/> + <location filename="../src/EditProductTab6.cpp" line="1260"/> <source>Amount in gr:</source> <translation type="unfinished"></translation> </message> @@ -4562,8 +4562,8 @@ <message> <location filename="../src/EditProductTab5.cpp" line="528"/> <location filename="../src/EditProductTab5.cpp" line="652"/> - <location filename="../src/EditProductTab6.cpp" line="1047"/> - <location filename="../src/EditProductTab6.cpp" line="1222"/> + <location filename="../src/EditProductTab6.cpp" line="1084"/> + <location filename="../src/EditProductTab6.cpp" line="1262"/> <source>Amount in ml:</source> <translation type="unfinished"></translation> </message> @@ -4574,13 +4574,13 @@ </message> <message> <location filename="../src/EditProductTab5.cpp" line="720"/> - <location filename="../src/EditProductTab6.cpp" line="1281"/> + <location filename="../src/EditProductTab6.cpp" line="1319"/> <source>Primary</source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/EditProductTab5.cpp" line="721"/> - <location filename="../src/EditProductTab6.cpp" line="1282"/> + <location filename="../src/EditProductTab6.cpp" line="1320"/> <source>Secondary</source> <translation type="unfinished"></translation> </message> @@ -4666,114 +4666,114 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="719"/> + <location filename="../src/EditProductTab6.cpp" line="724"/> <source>BMSapp - Pitchrate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="731"/> + <location filename="../src/EditProductTab6.cpp" line="736"/> <source>Beer pitch type:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="739"/> + <location filename="../src/EditProductTab6.cpp" line="744"/> <source>0.075 Real Kveik</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="740"/> + <location filename="../src/EditProductTab6.cpp" line="745"/> <source>0.75 Ale, upto 1.060</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="741"/> + <location filename="../src/EditProductTab6.cpp" line="746"/> <source>1.0 Ale, above 1.060</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="742"/> + <location filename="../src/EditProductTab6.cpp" line="747"/> <source>1.5 Lager, upto 1.060</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="743"/> + <location filename="../src/EditProductTab6.cpp" line="748"/> <source>2.0 Lager, above 1.060</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="774"/> + <location filename="../src/EditProductTab6.cpp" line="779"/> <source>Retry starter</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="774"/> + <location filename="../src/EditProductTab6.cpp" line="779"/> <source>Retry to automatic create starter steps</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="808"/> - <source>Start step type:</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../src/EditProductTab6.cpp" line="813"/> + <source>Start step type:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/EditProductTab6.cpp" line="818"/> <source>Starter step volume:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="820"/> + <location filename="../src/EditProductTab6.cpp" line="825"/> <source>Stirred</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="821"/> + <location filename="../src/EditProductTab6.cpp" line="826"/> <source>Shaken</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="822"/> + <location filename="../src/EditProductTab6.cpp" line="827"/> <source>Simple</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="907"/> + <location filename="../src/EditProductTab6.cpp" line="912"/> <source>Delete yeast</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1032"/> - <location filename="../src/EditProductTab6.cpp" line="1218"/> + <location filename="../src/EditProductTab6.cpp" line="1069"/> + <location filename="../src/EditProductTab6.cpp" line="1258"/> <source>Total packs:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1185"/> + <location filename="../src/EditProductTab6.cpp" line="1227"/> <source>Yeast name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1190"/> - <location filename="../src/EditProductTab6.cpp" line="1195"/> + <location filename="../src/EditProductTab6.cpp" line="1232"/> + <location filename="../src/EditProductTab6.cpp" line="1237"/> <source>Laboratory:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1200"/> + <location filename="../src/EditProductTab6.cpp" line="1242"/> <source>Select yeast:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1211"/> + <location filename="../src/EditProductTab6.cpp" line="1252"/> <source>Select package:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1283"/> + <location filename="../src/EditProductTab6.cpp" line="1321"/> <source>Tertiary</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1284"/> + <location filename="../src/EditProductTab6.cpp" line="1322"/> <source>Bottle</source> <translation type="unfinished"></translation> </message>
--- a/translations/bmsapp_nl.ts Tue Jan 31 16:24:11 2023 +0100 +++ b/translations/bmsapp_nl.ts Thu Feb 02 15:23:18 2023 +0100 @@ -4846,7 +4846,7 @@ <location filename="../src/EditProductTab3.cpp" line="730"/> <location filename="../src/EditProductTab4.cpp" line="361"/> <location filename="../src/EditProductTab5.cpp" line="399"/> - <location filename="../src/EditProductTab6.cpp" line="907"/> + <location filename="../src/EditProductTab6.cpp" line="912"/> <location filename="../src/EditProductTab7.cpp" line="306"/> <location filename="../src/EditProductTab13.cpp" line="279"/> <location filename="../src/EditProduct.cpp" line="910"/> @@ -4882,7 +4882,7 @@ <message> <location filename="../src/EditProductTab3.cpp" line="1073"/> <location filename="../src/EditProductTab4.cpp" line="633"/> - <location filename="../src/EditProductTab6.cpp" line="1227"/> + <location filename="../src/EditProductTab6.cpp" line="1267"/> <source>Use at:</source> <translation>Toevoegen bij:</translation> </message> @@ -4896,7 +4896,7 @@ <location filename="../src/EditProductTab3.cpp" line="1083"/> <location filename="../src/EditProductTab4.cpp" line="643"/> <location filename="../src/EditProductTab5.cpp" line="674"/> - <location filename="../src/EditProductTab6.cpp" line="1205"/> + <location filename="../src/EditProductTab6.cpp" line="1247"/> <source>In stock:</source> <translation>In voorraad:</translation> </message> @@ -5038,8 +5038,8 @@ <location filename="../src/EditProductTab4.cpp" line="619"/> <location filename="../src/EditProductTab5.cpp" line="525"/> <location filename="../src/EditProductTab5.cpp" line="650"/> - <location filename="../src/EditProductTab6.cpp" line="1040"/> - <location filename="../src/EditProductTab6.cpp" line="1220"/> + <location filename="../src/EditProductTab6.cpp" line="1077"/> + <location filename="../src/EditProductTab6.cpp" line="1260"/> <source>Amount in gr:</source> <translation>Gewicht in gr:</translation> </message> @@ -5097,8 +5097,8 @@ <message> <location filename="../src/EditProductTab5.cpp" line="528"/> <location filename="../src/EditProductTab5.cpp" line="652"/> - <location filename="../src/EditProductTab6.cpp" line="1047"/> - <location filename="../src/EditProductTab6.cpp" line="1222"/> + <location filename="../src/EditProductTab6.cpp" line="1084"/> + <location filename="../src/EditProductTab6.cpp" line="1262"/> <source>Amount in ml:</source> <translation>Hoeveelheid in ml:</translation> </message> @@ -5109,13 +5109,13 @@ </message> <message> <location filename="../src/EditProductTab5.cpp" line="720"/> - <location filename="../src/EditProductTab6.cpp" line="1281"/> + <location filename="../src/EditProductTab6.cpp" line="1319"/> <source>Primary</source> <translation>Hoofdgisting</translation> </message> <message> <location filename="../src/EditProductTab5.cpp" line="721"/> - <location filename="../src/EditProductTab6.cpp" line="1282"/> + <location filename="../src/EditProductTab6.cpp" line="1320"/> <source>Secondary</source> <translation>Nagisting/lagering</translation> </message> @@ -5201,114 +5201,114 @@ <translation>Groeifactor</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="719"/> + <location filename="../src/EditProductTab6.cpp" line="724"/> <source>BMSapp - Pitchrate</source> <translation>BMSapp - Gist enten</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="731"/> + <location filename="../src/EditProductTab6.cpp" line="736"/> <source>Beer pitch type:</source> <translation>Biergist nodig:</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="739"/> + <location filename="../src/EditProductTab6.cpp" line="744"/> <source>0.075 Real Kveik</source> <translation>0,075 Echte Kveik</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="740"/> + <location filename="../src/EditProductTab6.cpp" line="745"/> <source>0.75 Ale, upto 1.060</source> <translation>0,75 Bovengist tot 1.060</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="741"/> + <location filename="../src/EditProductTab6.cpp" line="746"/> <source>1.0 Ale, above 1.060</source> <translation>1,0 Bovengist hoger 1.060</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="742"/> + <location filename="../src/EditProductTab6.cpp" line="747"/> <source>1.5 Lager, upto 1.060</source> <translation>1,5 Ondergist tot 1.060</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="743"/> + <location filename="../src/EditProductTab6.cpp" line="748"/> <source>2.0 Lager, above 1.060</source> <translation>2,0 Ondergist hoger 1.060</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="774"/> + <location filename="../src/EditProductTab6.cpp" line="779"/> <source>Retry starter</source> <translation>Ververs starter</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="774"/> + <location filename="../src/EditProductTab6.cpp" line="779"/> <source>Retry to automatic create starter steps</source> <translation>Ververs de starter stappen automatisch</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="808"/> - <source>Start step type:</source> - <translation>Starter stap type:</translation> - </message> - <message> <location filename="../src/EditProductTab6.cpp" line="813"/> + <source>Start step type:</source> + <translation>Starter stap type:</translation> + </message> + <message> + <location filename="../src/EditProductTab6.cpp" line="818"/> <source>Starter step volume:</source> <translation>Starter stap volume:</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="820"/> + <location filename="../src/EditProductTab6.cpp" line="825"/> <source>Stirred</source> <translation>Geroerd</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="821"/> + <location filename="../src/EditProductTab6.cpp" line="826"/> <source>Shaken</source> <translation>Geschud</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="822"/> + <location filename="../src/EditProductTab6.cpp" line="827"/> <source>Simple</source> <translation>Simpel</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="907"/> + <location filename="../src/EditProductTab6.cpp" line="912"/> <source>Delete yeast</source> <translation>Verwijder gist</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1032"/> - <location filename="../src/EditProductTab6.cpp" line="1218"/> + <location filename="../src/EditProductTab6.cpp" line="1069"/> + <location filename="../src/EditProductTab6.cpp" line="1258"/> <source>Total packs:</source> <translation>Aantal pakken:</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1185"/> + <location filename="../src/EditProductTab6.cpp" line="1227"/> <source>Yeast name:</source> <translation>Gist naam:</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1190"/> - <location filename="../src/EditProductTab6.cpp" line="1195"/> + <location filename="../src/EditProductTab6.cpp" line="1232"/> + <location filename="../src/EditProductTab6.cpp" line="1237"/> <source>Laboratory:</source> <translation>Laboratorium:</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1200"/> + <location filename="../src/EditProductTab6.cpp" line="1242"/> <source>Select yeast:</source> <translation>Kies gist:</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1211"/> + <location filename="../src/EditProductTab6.cpp" line="1252"/> <source>Select package:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1283"/> + <location filename="../src/EditProductTab6.cpp" line="1321"/> <source>Tertiary</source> <translation>Lageren</translation> </message> <message> - <location filename="../src/EditProductTab6.cpp" line="1284"/> + <location filename="../src/EditProductTab6.cpp" line="1322"/> <source>Bottle</source> <translation>Bottelen</translation> </message>