diff -r d45c502ce77f -r afd711e37f68 src/EditProductTab8.cpp --- a/src/EditProductTab8.cpp Thu Jun 23 16:56:07 2022 +0200 +++ b/src/EditProductTab8.cpp Fri Jun 24 11:07:34 2022 +0200 @@ -635,11 +635,45 @@ } ui->w2_volEdit->setValue(product->w2_amount); + check_waters(); calcWater(); is_changed(); } +void EditProduct::check_waters() +{ + QSqlQuery query; + product->waters_ok = true; + + if (product->w1_name != "") { + qDebug() << "check_waters 1" << product->w1_name; + query.prepare("SELECT unlimited_stock,inventory FROM inventory_waters WHERE name=:name"); + query.bindValue(":name", product->w1_name); + query.exec(); + if (query.first()) { + if ((query.value("unlimited_stock").toInt() == 0) && (query.value("inventory").toDouble() < product->w1_amount)) { + product->waters_ok = false; + qDebug() << "w1_amount too low"; + } + } + } + + if ((product->w2_name != "") && (product->w2_amount > 0)) { + qDebug() << "check_waters 2" << product->w2_name; + query.prepare("SELECT unlimited_stock,inventory FROM inventory_waters WHERE name=:name"); + query.bindValue(":name", product->w2_name); + query.exec(); + if (query.first()) { + if ((query.value("unlimited_stock").toInt() == 0) && (query.value("inventory").toDouble() < product->w2_amount)) { + product->waters_ok = false; + qDebug() << "w2_amount too low"; + } + } + } +} + + void EditProduct::w1_name_changed(int val) { QSqlQuery query; @@ -660,16 +694,16 @@ for (int i = 0; i < (val - 1); i++) { query.next(); } - qDebug() << "set water" << query.value(1).toString(); + qDebug() << "set water" << query.value("name").toString(); - product->w1_name = query.value(1).toString(); - product->w1_calcium = query.value(3).toDouble(); - product->w1_magnesium = query.value(8).toDouble(); - product->w1_total_alkalinity = query.value(11).toDouble(); - product->w1_sodium = query.value(7).toDouble(); - product->w1_chloride = query.value(6).toDouble(); - product->w1_sulfate = query.value(5).toDouble(); - product->w1_ph = query.value(9).toDouble(); + product->w1_name = query.value("name").toString(); + product->w1_calcium = query.value("calcium").toDouble(); + product->w1_magnesium = query.value("magnesium").toDouble(); + product->w1_total_alkalinity = query.value("total_alkalinity").toDouble(); + product->w1_sodium = query.value("sodium").toDouble(); + product->w1_chloride = query.value("chloride").toDouble(); + product->w1_sulfate = query.value("sulfate").toDouble(); + product->w1_ph = query.value("ph").toDouble(); ui->w1_caEdit->setValue(product->w1_calcium); ui->w1_mgEdit->setValue(product->w1_magnesium); @@ -680,6 +714,7 @@ ui->w1_so4Edit->setValue(product->w1_sulfate); ui->w1_phEdit->setValue(product->w1_ph); + check_waters(); is_changed(); calcWater(); } @@ -731,6 +766,7 @@ ui->w2_so4Edit->setValue(product->w2_sulfate); ui->w2_phEdit->setValue(product->w2_ph); + check_waters(); is_changed(); calcWater(); }