diff -r 57dba736d10b -r d0b1640ba951 src/EditWater.cpp --- a/src/EditWater.cpp Sun May 22 11:23:28 2022 +0200 +++ b/src/EditWater.cpp Mon May 23 14:16:44 2022 +0200 @@ -48,6 +48,7 @@ ui->alkalinityEdit->setValue(query.value(11).toDouble()); ui->inventoryEdit->setValue(query.value(12).toDouble()); ui->costEdit->setValue(query.value(13).toDouble()); + ui->noEdit->setValue(query.value(15).toDouble()); } else { /* Set some defaults */ ui->phEdit->setValue(7.0); @@ -66,6 +67,7 @@ connect(ui->notesEdit, SIGNAL(textChanged()), this, SLOT(is_changed())); connect(ui->inventoryEdit, &QDoubleSpinBox::textChanged, this, &EditWater::is_changed); connect(ui->costEdit, &QDoubleSpinBox::textChanged, this, &EditWater::is_changed); + connect(ui->noEdit, &QDoubleSpinBox::textChanged, this, &EditWater::water_changed); ui->saveButton->setEnabled(false); ui->deleteButton->setEnabled((ui->inventoryEdit->value() == 0 && id >= 0) ? true:false); @@ -114,11 +116,11 @@ if (this->recno == -1) { query.prepare("INSERT INTO inventory_waters SET name=:name, unlimited_stock=:unlimited, calcium=:ca, " "bicarbonate=:hco, sulfate=:so4, chloride=:cl, sodium=:na, magnesium=:mg, ph=:ph, notes=:notes, " - "total_alkalinity=:alkalinity, inventory=:inventory, cost=:cost, uuid = :uuid"); + "total_alkalinity=:alkalinity, inventory=:inventory, cost=:cost, nitrate=:no, uuid = :uuid"); } else { query.prepare("UPDATE inventory_waters SET name=:name, unlimited_stock=:unlimited, calcium=:ca, " "bicarbonate=:hco, sulfate=:so4, chloride=:cl, sodium=:na, magnesium=:mg, ph=:ph, notes=:notes, " - "total_alkalinity=:alkalinity, inventory=:inventory, cost=:cost WHERE record = :recno"); + "total_alkalinity=:alkalinity, inventory=:inventory, cost=:cost, nitrate=:no WHERE record = :recno"); } query.bindValue(":name", ui->nameEdit->text()); query.bindValue(":unlimited", ui->unlimitedEdit->isChecked() ? 1:0); @@ -133,6 +135,7 @@ query.bindValue(":alkalinity", QString("%1").arg(ui->alkalinityEdit->value(), 2, 'f', 1, '0')); query.bindValue(":inventory", QString("%1").arg(ui->inventoryEdit->value(), 2, 'f', 1, '0')); query.bindValue(":cost", QString("%1").arg(ui->costEdit->value(), 6, 'f', 5, '0')); + query.bindValue(":no", QString("%1").arg(ui->noEdit->value(), 3, 'f', 2, '0')); if (this->recno == -1) { query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36)); } else { @@ -184,10 +187,16 @@ { double cations, anions, balance; + double CaCO3 = ui->hcoEdit->value() / 1.22; + double pH = ui->phEdit->value(); + double CO3 = ((CaCO3 / 50) / (1+(2* pow(10, pH - 10.33))) * pow(10, pH - 10.33)) * 60; cations = (ui->caEdit->value() / 20.039) + (ui->mgEdit->value() / 12.1525) + (ui->naEdit->value() / 22.989); - anions = (ui->hcoEdit->value() / 61.016) + (ui->so4Edit->value() / 48.031) + (ui->clEdit->value() / 35.4527); + anions = (ui->hcoEdit->value() / 61.016) + (CO3 / 30) + (ui->so4Edit->value() / 48.031) + + (ui->clEdit->value() / 35.4527) + (ui->noEdit->value() / 62.0049); balance = round((cations - anions) * 100) / 100; ui->balanceEdit->setValue(balance); + ui->co3Edit->setValue(CO3); + //qDebug() << A13 << B13 << CO3; if (balance <= 0.1 && balance >= -0.1) { ui->balanceIcon->setPixmap(QPixmap(":icons/silk/tick.png"));