--- a/src/database/db_product.cpp Tue Jan 31 11:10:14 2023 +0100 +++ b/src/database/db_product.cpp Tue Jan 31 16:24:11 2023 +0100 @@ -64,11 +64,7 @@ prod->eq_trub_loss = query.value("eq_trub_loss").toDouble(); prod->eq_evap_rate = query.value("eq_evap_rate").toDouble(); prod->eq_boil_time = query.value("eq_boil_time").toDouble(); -// prod->eq_calc_boil_volume = query.value("eq_calc_boil_volume").toInt() ? true:false; prod->eq_top_up_kettle = query.value("eq_top_up_kettle").toDouble(); -// prod->eq_hop_utilization = query.value("eq_hop_utilization").toDouble(); -// prod->eq_lauter_volume = query.value("eq_lauter_volume").toDouble(); -// prod->eq_lauter_height = query.value("eq_lauter_height").toDouble(); prod->eq_lauter_deadspace = query.value("eq_lauter_deadspace").toDouble(); prod->eq_kettle_volume = query.value("eq_kettle_volume").toDouble(); prod->eq_kettle_height = query.value("eq_kettle_height").toDouble(); @@ -438,6 +434,7 @@ } else if (yeasts.isArray()) { for (int i = 0; i < yeasts.array().size(); i++) { QJsonObject obj = yeasts.array().at(i).toObject(); + qDebug() << "yeasts_Json" << i << obj; Yeasts y; /* First some defaults for newer fields. */ y.tolerance = y.harvest_time = y.pitch_temperature = y.zymocide = 0; @@ -446,6 +443,13 @@ y.sg_lo = 1.04; y.gr_hl_hi = 80; y.sg_hi = 1.08; + /* Clear Yeast Package data */ + y.yp_uuid = QString(); + y.yp_package = QString(); + y.yp_cells = obj["y_cells"].toDouble(); + y.yp_viability = 0.99; + y.yp_max = 100; + y.yp_size = 0.01; /* Now get what we have got */ y.name = obj["y_name"].toString(); y.laboratory = obj["y_laboratory"].toString(); @@ -485,25 +489,42 @@ yquery.exec(); if (yquery.first()) { if (y.tolerance == 0 || y.cells == 0) { - y.tolerance = yquery.value(0).toDouble(); - y.cells = yquery.value(1).toDouble(); + y.tolerance = yquery.value("tolerance").toDouble(); + y.cells = yquery.value("cells").toDouble(); } - y.sta1 = yquery.value(2).toInt() ? true:false; - y.bacteria = yquery.value(3).toInt() ? true:false; - y.harvest_top = yquery.value(4).toInt() ? true:false; - y.harvest_time = yquery.value(5).toInt(); - y.pitch_temperature = yquery.value(6).toDouble(); - y.pofpos = yquery.value(7).toInt() ? true:false; - y.zymocide = yquery.value(8).toInt(); - y.gr_hl_lo = yquery.value(9).toInt(); - y.sg_lo = yquery.value(10).toDouble(); - y.gr_hl_hi = yquery.value(11).toInt(); - y.sg_hi = yquery.value(12).toDouble(); - y.inventory = yquery.value(13).toDouble(); + y.sta1 = yquery.value("sta1").toInt() ? true:false; + y.bacteria = yquery.value("bacteria").toInt() ? true:false; + y.harvest_top = yquery.value("harvest_top").toInt() ? true:false; + y.harvest_time = yquery.value("harvest_time").toInt(); + y.pitch_temperature = yquery.value("pitch_temperature").toDouble(); + y.pofpos = yquery.value("pofpos").toInt() ? true:false; + y.zymocide = yquery.value("zymocide").toInt(); + y.gr_hl_lo = yquery.value("gr_hl_lo").toInt(); + y.sg_lo = yquery.value("sg_lo").toDouble(); + y.gr_hl_hi = yquery.value("gr_hl_hi").toInt(); + y.sg_hi = yquery.value("sg_hi").toDouble(); + y.inventory = yquery.value("inventory").toDouble(); y.avail = true; } else { qDebug() << y.name << y.product_id << "not found for upgrade"; } + /* + * Yeast Pack. + */ + if (obj.contains("y_package") && obj["y_package"].isObject()) { + qDebug() << "y_package object present"; + QJsonObject package = obj.value("y_package").toObject(); + qDebug() << "yeasts_Json package" << i << package; + y.yp_uuid = package["uuid"].toString(); + y.yp_package = package["package"].toString(); + y.yp_cells = package["cells"].toDouble(); + y.yp_viability = package["viability"].toDouble(); + y.yp_max = package["max"].toInt(); + y.yp_size = package["size"].toDouble(); + } else { + qDebug() << "y_package not present"; + } + prod->yeasts.append(y); } // qDebug() << "yeasts" << prod->yeasts.size(); @@ -973,7 +994,18 @@ obj.insert("y_gr_hl_hi", prod->yeasts.at(i).gr_hl_hi); obj.insert("y_sg_hi", round(prod->yeasts.at(i).sg_hi * 1000) / 1000); obj.insert("y_cost", round(prod->yeasts.at(i).cost * 1000) / 1000); - // qDebug() << "yeasts_Json" << i << obj; + if (! product->yeasts.at(i).yp_uuid.isNull() && (product->yeasts.at(i).yp_uuid.length() == 36)) { + qDebug() << "yeasts_Json append package"; + QJsonObject package; + package.insert("uuid", prod->yeasts.at(i).yp_uuid); + package.insert("package", prod->yeasts.at(i).yp_package); + package.insert("cells", prod->yeasts.at(i).yp_cells); + package.insert("viability", round(prod->yeasts.at(i).yp_viability * 10000) / 10000); + package.insert("max", prod->yeasts.at(i).yp_max); + package.insert("size", round(prod->yeasts.at(i).yp_size * 100000) / 100000); + obj.insert("y_package", package); + } + qDebug() << "yeasts_Json" << i << obj; array.append(obj); /* Append this object */ } QJsonDocument doc;