src/EditProductTab8.cpp

changeset 350
37b3c690b02c
parent 349
f05aeee71a14
child 359
dfbb012c631c
equal deleted inserted replaced
349:f05aeee71a14 350:37b3c690b02c
158 double Acid = 0, Acidmg = 0; 158 double Acid = 0, Acidmg = 0;
159 int AT; 159 int AT;
160 160
161 qDebug() << "calcWater()"; 161 qDebug() << "calcWater()";
162 162
163 ui->w1_hardnessEdit->setValue(Utils::Hardness(product->w1_calcium, product->w1_magnesium));
164 ui->w1_raEdit->setValue(Utils::RA_ppm(product->w1_total_alkalinity, product->w1_calcium, product->w1_magnesium));
165
163 /* 166 /*
164 * If there is a dilute water source, mix the waters. 167 * If there is a dilute water source, mix the waters.
165 */ 168 */
166 if (product->w2_name != "") { 169 if (product->w2_name != "") {
167 liters = product->w1_amount + product->w2_amount; 170 liters = product->w1_amount + product->w2_amount;
170 sodium = Utils::mix(product->w1_amount, product->w2_amount, product->w1_sodium, product->w2_sodium); 173 sodium = Utils::mix(product->w1_amount, product->w2_amount, product->w1_sodium, product->w2_sodium);
171 chloride = Utils::mix(product->w1_amount, product->w2_amount, product->w1_chloride, product->w2_chloride); 174 chloride = Utils::mix(product->w1_amount, product->w2_amount, product->w1_chloride, product->w2_chloride);
172 sulfate = Utils::mix(product->w1_amount, product->w2_amount, product->w1_sulfate, product->w2_sulfate); 175 sulfate = Utils::mix(product->w1_amount, product->w2_amount, product->w1_sulfate, product->w2_sulfate);
173 total_alkalinity = Utils::mix(product->w1_amount, product->w2_amount, product->w1_total_alkalinity, product->w2_total_alkalinity); 176 total_alkalinity = Utils::mix(product->w1_amount, product->w2_amount, product->w1_total_alkalinity, product->w2_total_alkalinity);
174 ph = -log10(((pow(10, -product->w1_ph) * product->w1_amount) + (pow(10, -product->w2_ph) * product->w2_amount)) / liters); 177 ph = -log10(((pow(10, -product->w1_ph) * product->w1_amount) + (pow(10, -product->w2_ph) * product->w2_amount)) / liters);
178 ui->w2_hardnessEdit->setValue(Utils::Hardness(product->w2_calcium, product->w2_magnesium));
179 ui->w2_raEdit->setValue(Utils::RA_ppm(product->w2_total_alkalinity, product->w2_calcium, product->w2_magnesium));
175 } else { 180 } else {
176 liters = product->w1_amount; 181 liters = product->w1_amount;
177 calcium = product->w1_calcium; 182 calcium = product->w1_calcium;
178 magnesium = product->w1_magnesium; 183 magnesium = product->w1_magnesium;
179 sodium = product->w1_sodium; 184 sodium = product->w1_sodium;
199 ui->wg_caco3Edit->setValue(total_alkalinity); 204 ui->wg_caco3Edit->setValue(total_alkalinity);
200 ui->wg_naEdit->setValue(sodium); 205 ui->wg_naEdit->setValue(sodium);
201 ui->wg_clEdit->setValue(chloride); 206 ui->wg_clEdit->setValue(chloride);
202 ui->wg_so4Edit->setValue(sulfate); 207 ui->wg_so4Edit->setValue(sulfate);
203 ui->wg_phEdit->setValue(ph); 208 ui->wg_phEdit->setValue(ph);
209 ui->wg_hardnessEdit->setValue(Utils::Hardness(calcium, magnesium));
210 ui->wg_raEdit->setValue(Utils::RA_ppm(total_alkalinity, calcium, magnesium));
204 bicarbonate = total_alkalinity * 1.22; 211 bicarbonate = total_alkalinity * 1.22;
205 212
206 /* Save mixed water ions for later */ 213 /* Save mixed water ions for later */
207 double wg_calcium = calcium; 214 double wg_calcium = calcium;
208 double wg_sodium = sodium; 215 double wg_sodium = sodium;
373 ui->wb_hco3Edit->setValue(bicarbonate); 380 ui->wb_hco3Edit->setValue(bicarbonate);
374 ui->wb_caco3Edit->setValue(total_alkalinity); 381 ui->wb_caco3Edit->setValue(total_alkalinity);
375 ui->wb_naEdit->setValue(sodium); 382 ui->wb_naEdit->setValue(sodium);
376 ui->wb_clEdit->setValue(chloride); 383 ui->wb_clEdit->setValue(chloride);
377 ui->wb_so4Edit->setValue(sulfate); 384 ui->wb_so4Edit->setValue(sulfate);
385 ui->wb_hardnessEdit->setValue(Utils::Hardness(calcium, magnesium));
386 ui->wb_raEdit->setValue(Utils::RA_ppm(total_alkalinity, calcium, magnesium));
378 387
379 ui->wb_caEdit->setStyleSheet((calcium < 40 || calcium > 150) ? "background-color: red":"background-color: green"); 388 ui->wb_caEdit->setStyleSheet((calcium < 40 || calcium > 150) ? "background-color: red":"background-color: green");
380 ui->wb_mgEdit->setStyleSheet((magnesium < 5 || magnesium > 40) ? "background-color: red":"background-color: green"); 389 ui->wb_mgEdit->setStyleSheet((magnesium < 5 || magnesium > 40) ? "background-color: red":"background-color: green");
381 ui->wb_naEdit->setStyleSheet((sodium > 150) ? "background-color: red":"background-color: green"); 390 ui->wb_naEdit->setStyleSheet((sodium > 150) ? "background-color: red":"background-color: green");
382 /* 391 /*
483 Acid *= product->sparge_volume; //ml acid total 492 Acid *= product->sparge_volume; //ml acid total
484 Acid = round(Acid * 100.0) / 100.0; 493 Acid = round(Acid * 100.0) / 100.0;
485 product->sparge_acid_amount = Acid / 1000; 494 product->sparge_acid_amount = Acid / 1000;
486 ui->sp_acidvolEdit->setValue(Acid); 495 ui->sp_acidvolEdit->setValue(Acid);
487 496
488 product->est_preboil_ph = -log10(((pow(10, -product->mash_ph) * product->wg_amount) + (pow(10, -product->sparge_ph) * product->brew_sparge_est)) / (product->wg_amount + product->brew_sparge_est)); 497 // Finally calculate the estimate preboil pH
498 product->est_preboil_ph = -log10(((pow(10, -product->mash_ph) * product->wg_amount) + (pow(10, -product->sparge_ph) * product->brew_sparge_est)) /
499 (product->wg_amount + product->brew_sparge_est));
489 ui->preboil_phEdit->setValue(product->est_preboil_ph); 500 ui->preboil_phEdit->setValue(product->est_preboil_ph);
490 ui->brew_preboilphShow->setValue(product->est_preboil_ph); 501 ui->brew_preboilphShow->setValue(product->est_preboil_ph);
491 } 502 }
492 503
493 504
715 ui->w1_caco3Edit->setValue(product->w1_total_alkalinity); 726 ui->w1_caco3Edit->setValue(product->w1_total_alkalinity);
716 ui->w1_naEdit->setValue(product->w1_sodium); 727 ui->w1_naEdit->setValue(product->w1_sodium);
717 ui->w1_clEdit->setValue(product->w1_chloride); 728 ui->w1_clEdit->setValue(product->w1_chloride);
718 ui->w1_so4Edit->setValue(product->w1_sulfate); 729 ui->w1_so4Edit->setValue(product->w1_sulfate);
719 ui->w1_phEdit->setValue(product->w1_ph); 730 ui->w1_phEdit->setValue(product->w1_ph);
731 ui->w1_hardnessEdit->setValue(Utils::Hardness(product->w1_calcium, product->w1_magnesium));
732 ui->w1_raEdit->setValue(Utils::RA_ppm(product->w1_total_alkalinity, product->w1_calcium, product->w1_magnesium));
720 733
721 check_waters(); 734 check_waters();
722 is_changed(); 735 is_changed();
723 calcWater(); 736 calcWater();
724 } 737 }
725 738
726 739
727 void EditProduct::w2_name_changed(int val) 740 void EditProduct::w2_name_changed(int val)
728 { 741 {
729 QSqlQuery query; 742 QSqlQuery query;
743 double hardness, ra_ppm;
730 744
731 qDebug() << "w2_name_changed" << val; 745 qDebug() << "w2_name_changed" << val;
732 746
733 if (val == 0) { // Clear water 2. 747 if (val == 0) { // Clear water 2.
734 product->w2_name = ""; 748 product->w2_name = "";
739 product->w2_chloride = 0; 753 product->w2_chloride = 0;
740 product->w2_sulfate = 0; 754 product->w2_sulfate = 0;
741 product->w2_ph = 0; 755 product->w2_ph = 0;
742 product->w1_amount += product->w2_amount; 756 product->w1_amount += product->w2_amount;
743 product->w2_amount = 0; 757 product->w2_amount = 0;
758 hardness = ra_ppm = 0;
744 } else { 759 } else {
745 query.prepare("SELECT * FROM inventory_waters ORDER BY record"); 760 query.prepare("SELECT * FROM inventory_waters ORDER BY record");
746 query.exec(); 761 query.exec();
747 query.first(); 762 query.first();
748 for (int i = 0; i < (val - 1); i++) { 763 for (int i = 0; i < (val - 1); i++) {
756 product->w2_total_alkalinity = query.value(11).toDouble(); 771 product->w2_total_alkalinity = query.value(11).toDouble();
757 product->w2_sodium = query.value(7).toDouble(); 772 product->w2_sodium = query.value(7).toDouble();
758 product->w2_chloride = query.value(6).toDouble(); 773 product->w2_chloride = query.value(6).toDouble();
759 product->w2_sulfate = query.value(5).toDouble(); 774 product->w2_sulfate = query.value(5).toDouble();
760 product->w2_ph = query.value(9).toDouble(); 775 product->w2_ph = query.value(9).toDouble();
776 hardness = Utils::Hardness(product->w2_calcium, product->w2_magnesium);
777 ra_ppm = Utils::RA_ppm(product->w2_total_alkalinity, product->w2_calcium, product->w2_magnesium);
761 } 778 }
762 ui->w1_volEdit->setValue(product->w1_amount); 779 ui->w1_volEdit->setValue(product->w1_amount);
763 ui->w2_volEdit->setValue(product->w2_amount); 780 ui->w2_volEdit->setValue(product->w2_amount);
764 ui->w2_caEdit->setValue(product->w2_calcium); 781 ui->w2_caEdit->setValue(product->w2_calcium);
765 ui->w2_mgEdit->setValue(product->w2_magnesium); 782 ui->w2_mgEdit->setValue(product->w2_magnesium);
767 ui->w2_caco3Edit->setValue(product->w2_total_alkalinity); 784 ui->w2_caco3Edit->setValue(product->w2_total_alkalinity);
768 ui->w2_naEdit->setValue(product->w2_sodium); 785 ui->w2_naEdit->setValue(product->w2_sodium);
769 ui->w2_clEdit->setValue(product->w2_chloride); 786 ui->w2_clEdit->setValue(product->w2_chloride);
770 ui->w2_so4Edit->setValue(product->w2_sulfate); 787 ui->w2_so4Edit->setValue(product->w2_sulfate);
771 ui->w2_phEdit->setValue(product->w2_ph); 788 ui->w2_phEdit->setValue(product->w2_ph);
789 ui->w2_hardnessEdit->setValue(hardness);
790 ui->w2_raEdit->setValue(ra_ppm);
772 791
773 check_waters(); 792 check_waters();
774 is_changed(); 793 is_changed();
775 calcWater(); 794 calcWater();
776 } 795 }
787 ui->wt_hco3Edit->setValue(0); 806 ui->wt_hco3Edit->setValue(0);
788 ui->wt_caco3Edit->setValue(0); 807 ui->wt_caco3Edit->setValue(0);
789 ui->wt_naEdit->setValue(0); 808 ui->wt_naEdit->setValue(0);
790 ui->wt_clEdit->setValue(0); 809 ui->wt_clEdit->setValue(0);
791 ui->wt_so4Edit->setValue(0); 810 ui->wt_so4Edit->setValue(0);
811 ui->wt_hardnessEdit->setValue(0);
812 ui->wt_raEdit->setValue(0);
792 } else { 813 } else {
793 query.prepare("SELECT * FROM profile_water ORDER BY name"); 814 query.prepare("SELECT * FROM profile_water ORDER BY name");
794 query.exec(); 815 query.exec();
795 query.first(); 816 query.first();
796 for (int i = 0; i < (val - 1); i++) { 817 for (int i = 0; i < (val - 1); i++) {
797 query.next(); 818 query.next();
798 } 819 }
799 ui->wt_caEdit->setValue(query.value(2).toDouble()); 820 ui->wt_caEdit->setValue(query.value("calcium").toDouble());
800 ui->wt_mgEdit->setValue(query.value(7).toDouble()); 821 ui->wt_mgEdit->setValue(query.value("magnesium").toDouble());
801 ui->wt_hco3Edit->setValue(query.value(3).toDouble()); 822 ui->wt_hco3Edit->setValue(query.value("bicarbonate").toDouble());
802 ui->wt_caco3Edit->setValue(query.value(10).toDouble()); 823 ui->wt_caco3Edit->setValue(query.value("total_alkalinity").toDouble());
803 ui->wt_naEdit->setValue(query.value(6).toDouble()); 824 ui->wt_naEdit->setValue(query.value("sodium").toDouble());
804 ui->wt_clEdit->setValue(query.value(5).toDouble()); 825 ui->wt_clEdit->setValue(query.value("chloride").toDouble());
805 ui->wt_so4Edit->setValue(query.value(4).toDouble()); 826 ui->wt_so4Edit->setValue(query.value("sulfate").toDouble());
827 ui->wt_hardnessEdit->setValue(Utils::Hardness(query.value("calcium").toDouble(), query.value("magnesium").toDouble()));
828 ui->wt_raEdit->setValue(Utils::RA_ppm(query.value("total_alkalinity").toDouble(), query.value("calcium").toDouble(), query.value("magnesium").toDouble()));
806 } 829 }
807 calcWater(); 830 calcWater();
808 } 831 }
809 832
810 833

mercurial