46 ui->phEdit->setValue(query.value(9).toDouble()); |
46 ui->phEdit->setValue(query.value(9).toDouble()); |
47 ui->notesEdit->setPlainText(query.value(10).toString()); |
47 ui->notesEdit->setPlainText(query.value(10).toString()); |
48 ui->alkalinityEdit->setValue(query.value(11).toDouble()); |
48 ui->alkalinityEdit->setValue(query.value(11).toDouble()); |
49 ui->inventoryEdit->setValue(query.value(12).toDouble()); |
49 ui->inventoryEdit->setValue(query.value(12).toDouble()); |
50 ui->costEdit->setValue(query.value(13).toDouble()); |
50 ui->costEdit->setValue(query.value(13).toDouble()); |
|
51 ui->noEdit->setValue(query.value(15).toDouble()); |
51 } else { |
52 } else { |
52 /* Set some defaults */ |
53 /* Set some defaults */ |
53 ui->phEdit->setValue(7.0); |
54 ui->phEdit->setValue(7.0); |
54 } |
55 } |
55 WaterSet(); |
56 WaterSet(); |
64 connect(ui->phEdit, &QDoubleSpinBox::textChanged, this, &EditWater::water_changed); |
65 connect(ui->phEdit, &QDoubleSpinBox::textChanged, this, &EditWater::water_changed); |
65 connect(ui->alkalinityEdit, &QDoubleSpinBox::textChanged, this, &EditWater::alkalinity_changed); |
66 connect(ui->alkalinityEdit, &QDoubleSpinBox::textChanged, this, &EditWater::alkalinity_changed); |
66 connect(ui->notesEdit, SIGNAL(textChanged()), this, SLOT(is_changed())); |
67 connect(ui->notesEdit, SIGNAL(textChanged()), this, SLOT(is_changed())); |
67 connect(ui->inventoryEdit, &QDoubleSpinBox::textChanged, this, &EditWater::is_changed); |
68 connect(ui->inventoryEdit, &QDoubleSpinBox::textChanged, this, &EditWater::is_changed); |
68 connect(ui->costEdit, &QDoubleSpinBox::textChanged, this, &EditWater::is_changed); |
69 connect(ui->costEdit, &QDoubleSpinBox::textChanged, this, &EditWater::is_changed); |
|
70 connect(ui->noEdit, &QDoubleSpinBox::textChanged, this, &EditWater::water_changed); |
69 |
71 |
70 ui->saveButton->setEnabled(false); |
72 ui->saveButton->setEnabled(false); |
71 ui->deleteButton->setEnabled((ui->inventoryEdit->value() == 0 && id >= 0) ? true:false); |
73 ui->deleteButton->setEnabled((ui->inventoryEdit->value() == 0 && id >= 0) ? true:false); |
72 } |
74 } |
73 |
75 |
112 |
114 |
113 if (this->textIsChanged) { |
115 if (this->textIsChanged) { |
114 if (this->recno == -1) { |
116 if (this->recno == -1) { |
115 query.prepare("INSERT INTO inventory_waters SET name=:name, unlimited_stock=:unlimited, calcium=:ca, " |
117 query.prepare("INSERT INTO inventory_waters SET name=:name, unlimited_stock=:unlimited, calcium=:ca, " |
116 "bicarbonate=:hco, sulfate=:so4, chloride=:cl, sodium=:na, magnesium=:mg, ph=:ph, notes=:notes, " |
118 "bicarbonate=:hco, sulfate=:so4, chloride=:cl, sodium=:na, magnesium=:mg, ph=:ph, notes=:notes, " |
117 "total_alkalinity=:alkalinity, inventory=:inventory, cost=:cost, uuid = :uuid"); |
119 "total_alkalinity=:alkalinity, inventory=:inventory, cost=:cost, nitrate=:no, uuid = :uuid"); |
118 } else { |
120 } else { |
119 query.prepare("UPDATE inventory_waters SET name=:name, unlimited_stock=:unlimited, calcium=:ca, " |
121 query.prepare("UPDATE inventory_waters SET name=:name, unlimited_stock=:unlimited, calcium=:ca, " |
120 "bicarbonate=:hco, sulfate=:so4, chloride=:cl, sodium=:na, magnesium=:mg, ph=:ph, notes=:notes, " |
122 "bicarbonate=:hco, sulfate=:so4, chloride=:cl, sodium=:na, magnesium=:mg, ph=:ph, notes=:notes, " |
121 "total_alkalinity=:alkalinity, inventory=:inventory, cost=:cost WHERE record = :recno"); |
123 "total_alkalinity=:alkalinity, inventory=:inventory, cost=:cost, nitrate=:no WHERE record = :recno"); |
122 } |
124 } |
123 query.bindValue(":name", ui->nameEdit->text()); |
125 query.bindValue(":name", ui->nameEdit->text()); |
124 query.bindValue(":unlimited", ui->unlimitedEdit->isChecked() ? 1:0); |
126 query.bindValue(":unlimited", ui->unlimitedEdit->isChecked() ? 1:0); |
125 query.bindValue(":ca", QString("%1").arg(ui->caEdit->value(), 2, 'f', 1, '0')); |
127 query.bindValue(":ca", QString("%1").arg(ui->caEdit->value(), 2, 'f', 1, '0')); |
126 query.bindValue(":hco", QString("%1").arg(ui->hcoEdit->value(), 2, 'f', 1, '0')); |
128 query.bindValue(":hco", QString("%1").arg(ui->hcoEdit->value(), 2, 'f', 1, '0')); |
131 query.bindValue(":ph", QString("%1").arg(ui->phEdit->value(), 3, 'f', 2, '0')); |
133 query.bindValue(":ph", QString("%1").arg(ui->phEdit->value(), 3, 'f', 2, '0')); |
132 query.bindValue(":notes", ui->notesEdit->toPlainText()); |
134 query.bindValue(":notes", ui->notesEdit->toPlainText()); |
133 query.bindValue(":alkalinity", QString("%1").arg(ui->alkalinityEdit->value(), 2, 'f', 1, '0')); |
135 query.bindValue(":alkalinity", QString("%1").arg(ui->alkalinityEdit->value(), 2, 'f', 1, '0')); |
134 query.bindValue(":inventory", QString("%1").arg(ui->inventoryEdit->value(), 2, 'f', 1, '0')); |
136 query.bindValue(":inventory", QString("%1").arg(ui->inventoryEdit->value(), 2, 'f', 1, '0')); |
135 query.bindValue(":cost", QString("%1").arg(ui->costEdit->value(), 6, 'f', 5, '0')); |
137 query.bindValue(":cost", QString("%1").arg(ui->costEdit->value(), 6, 'f', 5, '0')); |
|
138 query.bindValue(":no", QString("%1").arg(ui->noEdit->value(), 3, 'f', 2, '0')); |
136 if (this->recno == -1) { |
139 if (this->recno == -1) { |
137 query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36)); |
140 query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36)); |
138 } else { |
141 } else { |
139 query.bindValue(":recno", this->recno); |
142 query.bindValue(":recno", this->recno); |
140 } |
143 } |
182 |
185 |
183 void EditWater::WaterSet() |
186 void EditWater::WaterSet() |
184 { |
187 { |
185 double cations, anions, balance; |
188 double cations, anions, balance; |
186 |
189 |
|
190 double CaCO3 = ui->hcoEdit->value() / 1.22; |
|
191 double pH = ui->phEdit->value(); |
|
192 double CO3 = ((CaCO3 / 50) / (1+(2* pow(10, pH - 10.33))) * pow(10, pH - 10.33)) * 60; |
187 cations = (ui->caEdit->value() / 20.039) + (ui->mgEdit->value() / 12.1525) + (ui->naEdit->value() / 22.989); |
193 cations = (ui->caEdit->value() / 20.039) + (ui->mgEdit->value() / 12.1525) + (ui->naEdit->value() / 22.989); |
188 anions = (ui->hcoEdit->value() / 61.016) + (ui->so4Edit->value() / 48.031) + (ui->clEdit->value() / 35.4527); |
194 anions = (ui->hcoEdit->value() / 61.016) + (CO3 / 30) + (ui->so4Edit->value() / 48.031) + |
|
195 (ui->clEdit->value() / 35.4527) + (ui->noEdit->value() / 62.0049); |
189 balance = round((cations - anions) * 100) / 100; |
196 balance = round((cations - anions) * 100) / 100; |
190 ui->balanceEdit->setValue(balance); |
197 ui->balanceEdit->setValue(balance); |
|
198 ui->co3Edit->setValue(CO3); |
|
199 //qDebug() << A13 << B13 << CO3; |
191 |
200 |
192 if (balance <= 0.1 && balance >= -0.1) { |
201 if (balance <= 0.1 && balance >= -0.1) { |
193 ui->balanceIcon->setPixmap(QPixmap(":icons/silk/tick.png")); |
202 ui->balanceIcon->setPixmap(QPixmap(":icons/silk/tick.png")); |
194 } else if (balance <= 0.5 && balance >= -0.5) { |
203 } else if (balance <= 0.5 && balance >= -0.5) { |
195 ui->balanceIcon->setPixmap(QPixmap(":icons/silk/thumb_down.png")); |
204 ui->balanceIcon->setPixmap(QPixmap(":icons/silk/thumb_down.png")); |