59 ui->sp_sourceEdit->addItem(tr("Source 2")); |
59 ui->sp_sourceEdit->addItem(tr("Source 2")); |
60 ui->sp_sourceEdit->addItem(tr("Mixed")); |
60 ui->sp_sourceEdit->addItem(tr("Mixed")); |
61 |
61 |
62 query.prepare("SELECT name FROM inventory_waters ORDER BY record"); |
62 query.prepare("SELECT name FROM inventory_waters ORDER BY record"); |
63 query.exec(); |
63 query.exec(); |
64 query.first(); |
|
65 ui->w1_nameEdit->addItem(""); |
64 ui->w1_nameEdit->addItem(""); |
66 ui->w2_nameEdit->addItem(""); |
65 ui->w2_nameEdit->addItem(""); |
67 for (int i = 0; i < query.size(); i++) { |
66 while (query.next()) { |
68 ui->w1_nameEdit->addItem(query.value(0).toString()); |
67 ui->w1_nameEdit->addItem(query.value(0).toString()); |
69 ui->w2_nameEdit->addItem(query.value(0).toString()); |
68 ui->w2_nameEdit->addItem(query.value(0).toString()); |
70 query.next(); |
|
71 } |
69 } |
72 |
70 |
73 query.prepare("SELECT name FROM profile_water ORDER BY name"); |
71 query.prepare("SELECT name FROM profile_water ORDER BY name"); |
74 query.exec(); |
72 query.exec(); |
75 ui->wt_sourceEdit->addItem(""); |
73 ui->wt_sourceEdit->addItem(""); |
82 ui->mash_pickEdit->addItem(""); |
80 ui->mash_pickEdit->addItem(""); |
83 while (query.next()) { |
81 while (query.next()) { |
84 ui->mash_pickEdit->addItem(query.value(0).toString()); |
82 ui->mash_pickEdit->addItem(query.value(0).toString()); |
85 } |
83 } |
86 |
84 |
87 ui->beerstyleEdit->addItem(""); // First add a dummy |
85 ui->beerstyleEdit->addItem(product->st_name); // First add a dummy, the current style |
88 query.prepare("SELECT style_guide,style_letter,name FROM profile_styles ORDER BY style_guide,style_letter,name"); |
86 query.prepare("SELECT style_guide,style_letter,name FROM profile_styles ORDER BY style_guide,style_letter,name"); |
89 query.exec(); |
87 query.exec(); |
90 query.first(); |
88 while (query.next()) { |
91 for (int i = 0; i < query.size(); i++) { |
|
92 ui->beerstyleEdit->addItem(query.value(0).toString()+" "+query.value(1).toString()+" "+query.value(2).toString()); |
89 ui->beerstyleEdit->addItem(query.value(0).toString()+" "+query.value(1).toString()+" "+query.value(2).toString()); |
93 query.next(); |
|
94 } |
90 } |
95 |
91 |
96 if (id >= 0) { |
92 if (id >= 0) { |
97 query.prepare("SELECT * FROM products WHERE record = :recno"); |
93 query.prepare("SELECT * FROM products WHERE record = :recno"); |
98 query.bindValue(":recno", id); |
94 query.bindValue(":recno", id); |
564 qDebug() << "empty mashs"; |
560 qDebug() << "empty mashs"; |
565 } |
561 } |
566 qDebug() << "mashs" << product->mashs.size(); |
562 qDebug() << "mashs" << product->mashs.size(); |
567 |
563 |
568 } else { |
564 } else { |
569 /* Set some defaults */ |
565 /* New product, set some defaults */ |
570 product->locked = false; |
566 product->locked = product->log_brew = product->log_fermentation = product->log_ispindel = product->log_co2pressure = false; |
571 product->st_name = ""; |
567 product->st_name = ""; |
572 product->st_letter = ""; |
568 product->st_letter = ""; |
573 product->st_guide = ""; |
569 product->st_guide = ""; |
574 product->st_category = ""; |
570 product->st_category = ""; |
575 product->st_category_number = 0; |
571 product->st_category_number = 0; |
578 product->st_fg_min = 1.000; product->st_fg_max = 1.020; |
574 product->st_fg_min = 1.000; product->st_fg_max = 1.020; |
579 product->st_ibu_min = 5; product->st_ibu_max = 200; |
575 product->st_ibu_min = 5; product->st_ibu_max = 200; |
580 product->st_color_min = 3; product->st_color_max = 100; |
576 product->st_color_min = 3; product->st_color_max = 100; |
581 product->st_carb_min = 1.0; product->st_carb_max = 4.5; |
577 product->st_carb_min = 1.0; product->st_carb_max = 4.5; |
582 product->st_abv_min = 1; product->st_abv_max = 15; |
578 product->st_abv_min = 1; product->st_abv_max = 15; |
583 product->name = ""; |
579 product->eq_name = product->eq_notes = product->name = product->code = ""; |
|
580 product->eq_tun_specific_heat = 0.11; |
|
581 product->eq_tun_material = 0; |
|
582 product->eq_tun_volume = product->eq_tun_height = 20; |
|
583 product->eq_tun_weight = 2; |
|
584 product->eq_top_up_water = 0; |
|
585 product->eq_trub_chiller_loss = 0.5; |
|
586 product->eq_evap_rate = 1.8; |
|
587 product->eq_calc_boil_volume = true; |
|
588 product->eq_top_up_kettle = 0; |
|
589 product->eq_hop_utilization = 100; |
|
590 product->eq_lauter_volume = product->eq_lauter_height = product->eq_kettle_volume = product->eq_kettle_height = product->eq_mash_volume = 20; |
|
591 product->eq_lauter_deadspace = 0.5; |
|
592 product->eq_mash_max = 6; |
|
593 product->eq_efficiency = 75; |
|
594 product->birth = QDate::currentDate(); |
|
595 product->stage = product->inventory_reduced = PROD_STAGE_PLAN; |
584 product->notes = ""; |
596 product->notes = ""; |
585 product->efficiency = 75; |
597 product->efficiency = 75; |
586 product->batch_size = 20; |
598 product->eq_batch_size = product->batch_size = 20; |
587 product->boil_time = 60; |
599 product->eq_boil_time = product->boil_time = 60; |
588 product->boil_size = product->batch_size + (round(product->batch_size * product->boil_time / 60.0) / 10.0); |
600 product->eq_boil_size = product->boil_size = product->batch_size + (round(product->batch_size * product->boil_time / 60.0) / 10.0); |
589 product->type = 2; |
601 product->type = 2; |
590 product->est_og = product->est_fg = product->est_color = product->est_ibu = product->est_abv = 0; |
602 product->est_og = product->est_fg = product->est_color = product->est_ibu = product->est_abv = 0; |
|
603 product->brew_date_start = product->brew_date_end = QDateTime(); |
|
604 product->brew_mash_ph = product->brew_mash_sg = product->brew_mash_efficiency = 0; |
|
605 product->brew_sparge_temperature = product->brew_sparge_volume = product->brew_sparge_est = product->brew_sparge_ph = 0; |
|
606 product->brew_preboil_volume = product->brew_preboil_sg = product->brew_preboil_ph = product->brew_preboil_efficiency = 0; |
|
607 product->brew_aboil_volume = product->brew_aboil_sg = product->brew_aboil_ph = product->brew_aboil_efficiency = 0; |
|
608 product->brew_cooling_method = product->brew_cooling_time = 0; |
|
609 product->brew_cooling_to = 20; |
|
610 product->brew_whirlpool9 = product->brew_whirlpool7 = product->brew_whirlpool6 = product->brew_whirlpool2 = 0; |
|
611 product->brew_fermenter_volume = product->brew_fermenter_extrawater = product->brew_fermenter_tcloss = 0; |
|
612 product->brew_aeration_time = product->brew_aeration_speed = product->brew_aeration_type = 0; |
|
613 product->brew_fermenter_sg = product->brew_fermenter_ibu = product->brew_fermenter_color = 0; |
|
614 product->og = product->fg = 0; |
|
615 product->primary_start_temp = product->primary_max_temp = product->primary_end_temp = product->primary_end_sg = 0; |
|
616 product->primary_end_date = product->secondary_end_date = QDate(); |
|
617 product->secondary_temp = product->secondary_end_sg = product->tertiary_temp = 0; |
|
618 product->package_date = QDate(); |
|
619 product->package_volume = product->package_infuse_amount = product->package_infuse_abv = product->package_abv = product->package_ph = 0; |
|
620 product->package_infuse_notes = ""; |
|
621 product->bottle_amount = product->bottle_carbonation = product->bottle_priming_amount = product->bottle_carbonation_temp = 0; |
|
622 product->keg_amount = product->keg_carbonation = product->keg_priming_amount = product->keg_priming_water = 0; |
|
623 product->keg_carbonation_temp = product->keg_pressure = 0; |
|
624 product->bottle_priming_water = product->keg_priming_sugar = 0; |
|
625 product->taste_rate = 0; |
|
626 product->taste_date = QDate(); |
|
627 product->taste_notes = product->taste_color = product->taste_transparency = product->taste_head = ""; |
|
628 product->taste_aroma = product->taste_taste = product->taste_mouthfeel = product->taste_aftertaste = ""; |
591 product->sparge_temp = 80; |
629 product->sparge_temp = 80; |
592 product->sparge_ph = 5.4; |
630 product->sparge_ph = 5.4; |
593 product->sparge_volume = 8; |
631 product->sparge_volume = 8; |
594 product->sparge_source = 0; |
632 product->sparge_source = 0; |
595 product->sparge_acid_type = 0; |
633 product->sparge_acid_type = 0; |
634 product->wb_total_alkalinity = 0; |
672 product->wb_total_alkalinity = 0; |
635 product->wb_ph = 7; |
673 product->wb_ph = 7; |
636 product->wa_acid_name = 0; |
674 product->wa_acid_name = 0; |
637 product->wa_acid_perc = 80; |
675 product->wa_acid_perc = 80; |
638 product->wa_base_name = 0; |
676 product->wa_base_name = 0; |
|
677 product->starter_enable = false; |
|
678 product->starter_type = product->prop1_type = product->prop2_type = product->prop3_type = product->prop4_type = 0; |
|
679 product->starter_viability = 100; |
|
680 product->starter_sg = 1.037; |
|
681 product->yeast_prod_date = QDate(); |
|
682 product->yeast_pitchrate = product->prop1_volume = product->prop2_volume = product->prop3_volume = product->prop4_volume = 0; |
|
683 product->divide_type = product->divide_parts = product->divide_part = 0; |
|
684 product->divide_size = product->divide_factor = 0; |
639 } |
685 } |
640 |
686 |
641 // Tab generic. |
687 // Tab generic. |
642 ui->lockedEdit->setChecked(product->locked); |
688 ui->lockedEdit->setChecked(product->locked); |
643 ui->st_nameEdit->setText(product->st_name); |
689 ui->st_nameEdit->setText(product->st_name); |
645 ui->st_guideEdit->setText(product->st_guide); |
691 ui->st_guideEdit->setText(product->st_guide); |
646 ui->st_catEdit->setText(product->st_category); |
692 ui->st_catEdit->setText(product->st_category); |
647 ui->st_catnrEdit->setText(QString("%1").arg(product->st_category_number)); |
693 ui->st_catnrEdit->setText(QString("%1").arg(product->st_category_number)); |
648 ui->st_typeEdit->setText(style_types[product->st_type]); |
694 ui->st_typeEdit->setText(style_types[product->st_type]); |
649 ui->nameEdit->setText(product->name); |
695 ui->nameEdit->setText(product->name); |
|
696 ui->codeEdit->setText(product->code); |
|
697 ui->birthEdit->setText(product->birth.toString("dd MMM yyyy")); |
|
698 ui->stageEdit->setText(prod_stages[product->stage]); |
650 ui->notesEdit->setPlainText(product->notes); |
699 ui->notesEdit->setPlainText(product->notes); |
651 ui->typeEdit->setCurrentIndex(product->type); |
700 ui->typeEdit->setCurrentIndex(product->type); |
652 ui->batch_sizeEdit->setValue(product->batch_size); |
701 ui->batch_sizeEdit->setValue(product->batch_size); |
653 ui->boil_sizeEdit->setValue(product->boil_size); |
702 ui->boil_sizeEdit->setValue(product->boil_size); |
654 ui->boil_timeEdit->setValue(product->boil_time); |
703 ui->boil_timeEdit->setValue(product->boil_time); |
655 ui->efficiencyEdit->setValue(product->efficiency); |
704 ui->efficiencyEdit->setValue(product->efficiency); |
|
705 if (product->divide_type > 0) |
|
706 ui->splitatEdit->setText(QString(tr("%1, part %2 of %3").arg(prod_split[product->divide_type]) |
|
707 .arg(product->divide_part + 1) |
|
708 .arg(product->divide_parts + 1))); |
|
709 else |
|
710 ui->splitatEdit->setText(prod_split[product->divide_type]); |
656 ui->est_ogEdit->setValue(product->est_og); |
711 ui->est_ogEdit->setValue(product->est_og); |
657 ui->est_ogShow->setRange(product->st_og_min, product->st_og_max); |
712 ui->est_ogShow->setRange(product->st_og_min, product->st_og_max); |
658 ui->est_ogShow->setPrecision(3); |
713 ui->est_ogShow->setPrecision(3); |
659 ui->est_ogShow->setMarkerTextIsValue(true); |
714 ui->est_ogShow->setMarkerTextIsValue(true); |
660 ui->est_ogShow->setValue(product->est_og); |
715 ui->est_ogShow->setValue(product->est_og); |
684 ui->est_carbEdit->setValue(product->est_carb); |
739 ui->est_carbEdit->setValue(product->est_carb); |
685 ui->est_carbShow->setPrecision(1); |
740 ui->est_carbShow->setPrecision(1); |
686 ui->est_carbShow->setMarkerTextIsValue(true); |
741 ui->est_carbShow->setMarkerTextIsValue(true); |
687 ui->est_carbShow->setRange(product->st_carb_min, product->st_carb_max); |
742 ui->est_carbShow->setRange(product->st_carb_min, product->st_carb_max); |
688 ui->est_carbShow->setValue(product->est_carb); |
743 ui->est_carbShow->setValue(product->est_carb); |
|
744 |
|
745 // Tab equipment. |
|
746 showEquipment(); |
689 |
747 |
690 // Tab fermentables. |
748 // Tab fermentables. |
691 ui->est_og2Edit->setValue(product->est_og); |
749 ui->est_og2Edit->setValue(product->est_og); |
692 ui->est_color2Edit->setValue(product->est_color); |
750 ui->est_color2Edit->setValue(product->est_color); |
693 ui->est_color2Edit->setStyleSheet(Utils::ebc_to_style(product->est_color)); |
751 ui->est_color2Edit->setStyleSheet(Utils::ebc_to_style(product->est_color)); |
805 ui->sp_phEdit->setValue(product->sparge_ph); |
863 ui->sp_phEdit->setValue(product->sparge_ph); |
806 ui->sp_sourceEdit->setCurrentIndex(product->sparge_source); |
864 ui->sp_sourceEdit->setCurrentIndex(product->sparge_source); |
807 ui->sp_acidtypeEdit->setCurrentIndex(product->sparge_acid_type); |
865 ui->sp_acidtypeEdit->setCurrentIndex(product->sparge_acid_type); |
808 ui->sp_acidpercEdit->setValue(product->sparge_acid_perc); |
866 ui->sp_acidpercEdit->setValue(product->sparge_acid_perc); |
809 ui->sp_acidvolEdit->setValue(product->sparge_acid_amount); |
867 ui->sp_acidvolEdit->setValue(product->sparge_acid_amount); |
|
868 |
|
869 // Tab brewday. |
|
870 |
|
871 // Tab fermentation. |
|
872 |
|
873 // Tab packaging. |
|
874 |
|
875 // Tab taste. |
810 |
876 |
811 // All signals from tab "Generic" |
877 // All signals from tab "Generic" |
812 connect(ui->lockedEdit, &QCheckBox::stateChanged, this, &EditProduct::is_changed); |
878 connect(ui->lockedEdit, &QCheckBox::stateChanged, this, &EditProduct::is_changed); |
813 connect(ui->nameEdit, &QLineEdit::textChanged, this, &EditProduct::name_changed); |
879 connect(ui->nameEdit, &QLineEdit::textChanged, this, &EditProduct::name_changed); |
814 connect(ui->notesEdit, SIGNAL(textChanged()), this, SLOT(notes_changed())); |
880 connect(ui->notesEdit, SIGNAL(textChanged()), this, SLOT(notes_changed())); |