src/EditHop.cpp

Fri, 20 May 2022 20:43:33 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 20 May 2022 20:43:33 +0200
changeset 225
448e4187cada
parent 90
2396457a8167
child 292
b6ec2e275736
permissions
-rw-r--r--

Implemented the tasting tab. On the generic tab, show the ingredients check or the read only prompt on the same place depending on the product stage. Fixed the yeasts ingredients in stock check. Reordered the tab order of all edit fields. It looks like this module is ready and needs testing.

24
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /**
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 * EditHop.cpp is part of bmsapp.
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 *
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 * bmsapp is free software: you can redistribute it and/or modify
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 * the Free Software Foundation, either version 3 of the License, or
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 * (at your option) any later version.
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 *
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 * bmsapp is distributed in the hope that it will be useful,
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 * GNU General Public License for more details.
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 *
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 #include "EditHop.h"
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 #include "../ui/ui_EditHop.h"
90
2396457a8167 Moved functions from bmsapp.cpp to MainWindow.cpp
Michiel Broek <mbroek@mbse.eu>
parents: 60
diff changeset
19 #include "MainWindow.h"
24
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 EditHop::EditHop(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditHop)
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 QSqlQuery query;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 qDebug() << "EditHop record:" << id;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 ui->setupUi(this);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 this->recno = id;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 WindowTitle();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 ui->typeEdit->addItem(tr("Bittering"));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 ui->typeEdit->addItem(tr("Aroma"));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 ui->typeEdit->addItem(tr("Both"));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 ui->formEdit->addItem(tr("Pellet"));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 ui->formEdit->addItem(tr("Plug"));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 ui->formEdit->addItem(tr("Leaf"));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 ui->formEdit->addItem(tr("Leaf Wet")); /* Not in beerxml */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 ui->formEdit->addItem(tr("Cryo")); /* Not in beerxml */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 if (id >= 0) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43 query.prepare("SELECT * FROM inventory_hops WHERE record = :recno");
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 query.bindValue(":recno", id);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 query.exec();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46 query.next();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 ui->nameEdit->setText(query.value(1).toString());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 ui->alphaEdit->setValue(query.value(2).toDouble());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 ui->betaEdit->setValue(query.value(3).toDouble());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 ui->humuleneEdit->setValue(query.value(4).toDouble());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 ui->caryEdit->setValue(query.value(5).toDouble());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 ui->cohumuloneEdit->setValue(query.value(6).toDouble());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 ui->myrceneEdit->setValue(query.value(7).toDouble());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 ui->hsiEdit->setValue(query.value(8).toDouble());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 ui->typeEdit->setCurrentIndex(query.value(9).toInt());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 ui->formEdit->setCurrentIndex(query.value(10).toInt());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 ui->notesEdit->setPlainText(query.value(11).toString());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 ui->originEdit->setText(query.value(12).toString());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 ui->substitutesEdit->setText(query.value(13).toString());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61 ui->alwaysEdit->setChecked(query.value(14).toInt() ? true:false);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 ui->inventoryEdit->setValue(query.value(15).toDouble());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63 ui->costEdit->setValue(query.value(16).toDouble());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 ui->valueEdit->setValue(query.value(15).toDouble() * query.value(16).toDouble());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 if (query.value(17).toString().length() == 10) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66 ui->prodEdit->setDate(query.value(17).toDate());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 } else {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 ui->prodEdit->clear();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 if (query.value(18).toString().length() == 10) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 ui->thtEdit->setDate(query.value(18).toDate());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72 } else {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 ui->thtEdit->clear();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 ui->oilEdit->setValue(query.value(19).toDouble());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 } else {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 /* Set some defaults */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 ui->typeEdit->setCurrentIndex(0);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 ui->formEdit->setCurrentIndex(0);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80 ui->prodEdit->clear();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 ui->thtEdit->clear();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83 connect(ui->nameEdit, &QLineEdit::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 connect(ui->alphaEdit, &QDoubleSpinBox::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 connect(ui->betaEdit, &QDoubleSpinBox::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 connect(ui->humuleneEdit, &QDoubleSpinBox::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87 connect(ui->caryEdit, &QDoubleSpinBox::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88 connect(ui->cohumuloneEdit, &QDoubleSpinBox::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 connect(ui->myrceneEdit, &QDoubleSpinBox::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 connect(ui->hsiEdit, &QDoubleSpinBox::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91 connect(ui->typeEdit, &QComboBox::currentTextChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92 connect(ui->formEdit, &QComboBox::currentTextChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 connect(ui->notesEdit, SIGNAL(textChanged()), this, SLOT(is_changed()));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94 connect(ui->originEdit, &QLineEdit::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 connect(ui->substitutesEdit, &QLineEdit::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96 connect(ui->alwaysEdit, &QCheckBox::stateChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 connect(ui->inventoryEdit, &QDoubleSpinBox::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 connect(ui->costEdit, &QDoubleSpinBox::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 connect(ui->prodEdit, &QDateEdit::dateChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100 connect(ui->thtEdit, &QDateEdit::dateChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 connect(ui->oilEdit, &QDoubleSpinBox::textChanged, this, &EditHop::is_changed);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
103 ui->saveButton->setEnabled(false);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
104 ui->deleteButton->setEnabled((ui->inventoryEdit->value() == 0 && id >= 0) ? true:false);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
105 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
106
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
107
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
108 EditHop::~EditHop()
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
109 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
110 qDebug() << "EditHop done";
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
111 delete ui;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 emit entry_changed();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
114
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
115
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
116 /*
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117 * Window header, mark any change with '**'
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
118 */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
119 void EditHop::WindowTitle()
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
120 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
121 QString txt;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
122
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
123 if (this->recno < 0) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
124 txt = QString(tr("BMSapp - Add new hop"));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
125 } else {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
126 txt = QString(tr("BMSapp - Edit hop %1").arg(this->recno));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
127 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
128
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
129 if (this->textIsChanged) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
130 txt.append((QString(" **")));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
131 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
132 setWindowTitle(txt);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
133 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
134
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
135
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
136 void EditHop::on_saveButton_clicked()
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
137 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
138 QSqlQuery query;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
139
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
140 /* If there are errors in the form, show a message and do "return;" */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
141 if (ui->nameEdit->text().length() < 2) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
142 QMessageBox::warning(this, tr("Edit Hop"), tr("Name empty or too short."));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
143 return;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
144 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
145 if (ui->originEdit->text().length() < 2) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
146 QMessageBox::warning(this, tr("Edit Hop"), tr("Origin empty or too short."));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
147 return;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
148 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
149
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
150 if (this->textIsChanged) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
151 if (this->recno == -1) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
152 query.prepare("INSERT INTO inventory_hops SET name=:name, alpha=:alpha, beta=:beta, "
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
153 "humulene=:humulene, caryophyllene=:cary, cohumulone=:cohumulone, myrcene=:myrcene, "
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
154 "hsi=:hsi, type=:type, form=:form, notes=:notes, origin=:origin, substitutes=:substitutes, "
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
155 "always_on_stock=:always, inventory=:inventory, cost=:cost, production_date=:prod, "
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
156 "tht_date=:tht, total_oil=:oil, uuid = :uuid");
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
157 } else {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
158 query.prepare("UPDATE inventory_hops SET name=:name, alpha=:alpha, beta=:beta, "
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
159 "humulene=:humulene, caryophyllene=:cary, cohumulone=:cohumulone, myrcene=:myrcene, "
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
160 "hsi=:hsi, type=:type, form=:form, notes=:notes, origin=:origin, substitutes=:substitutes, "
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
161 "always_on_stock=:always, inventory=:inventory, cost=:cost, production_date=:prod, "
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
162 "tht_date=:tht, total_oil=:oil WHERE record = :recno");
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
163 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
164 query.bindValue(":name", ui->nameEdit->text());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
165 query.bindValue(":alpha", QString("%1").arg(ui->alphaEdit->value(), 2, 'f', 1, '0'));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
166 query.bindValue(":beta", QString("%1").arg(ui->betaEdit->value(), 2, 'f', 1, '0'));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
167 query.bindValue(":humulene", QString("%1").arg(ui->humuleneEdit->value(), 2, 'f', 1, '0'));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
168 query.bindValue(":cary", QString("%1").arg(ui->caryEdit->value(), 2, 'f', 1, '0'));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
169 query.bindValue(":cohumulone", QString("%1").arg(ui->cohumuloneEdit->value(), 2, 'f', 1, '0'));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
170 query.bindValue(":myrcene", QString("%1").arg(ui->myrceneEdit->value(), 2, 'f', 1, '0'));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
171 query.bindValue(":hsi", QString("%1").arg(ui->hsiEdit->value(), 2, 'f', 1, '0'));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
172 query.bindValue(":type", ui->typeEdit->currentIndex());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
173 query.bindValue(":form", ui->formEdit->currentIndex());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
174 query.bindValue(":notes", ui->notesEdit->toPlainText());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
175 query.bindValue(":origin", ui->originEdit->text());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
176 query.bindValue(":substitutes", ui->substitutesEdit->text());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
177 query.bindValue(":always", ui->alwaysEdit->isChecked() ? 1:0);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
178 query.bindValue(":inventory", QString("%1").arg(ui->inventoryEdit->value(), 5, 'f', 4, '0'));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
179 query.bindValue(":cost", QString("%1").arg(ui->costEdit->value(), 3, 'f', 2, '0'));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
180 /* Uses https://www.qtcentre.org/threads/17295-How-to-put-empty-value-in-QDateEdit */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
181 query.bindValue(":prod", ui->prodEdit->nullDate());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
182 query.bindValue(":tht", ui->thtEdit->nullDate());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
183 query.bindValue(":oil", QString("%1").arg(ui->oilEdit->value(), 2, 'f', 1, '0'));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
184 if (this->recno == -1) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
185 query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
186 } else {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
187 query.bindValue(":recno", this->recno);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
188 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
189 query.exec();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
190 if (query.lastError().isValid()) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
191 qDebug() << "EditHop" << query.lastError();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
192 QMessageBox::warning(this, tr("Database error"),
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
193 tr("MySQL error: %1\n%2\n%3")
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
194 .arg(query.lastError().nativeErrorCode())
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
195 .arg(query.lastError().driverText())
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
196 .arg(query.lastError().databaseText()));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
197 } else {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
198 qDebug() << "EditHop Saved";
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
199 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
200 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
201
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
202 ui->saveButton->setEnabled(false);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
203 this->textIsChanged = false;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
204 WindowTitle();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
205 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
206
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
207
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
208 void EditHop::on_deleteButton_clicked()
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
209 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
210 QSqlQuery query;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
211
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
212 query.prepare("DELETE FROM inventory_hops WHERE record = :recno");
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
213 query.bindValue(":recno", this->recno);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
214 query.exec();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
215 if (query.lastError().isValid()) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
216 qDebug() << "EditHop" << query.lastError();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
217 QMessageBox::warning(this, tr("Database error"),
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
218 tr("MySQL error: %1\n%2\n%3")
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
219 .arg(query.lastError().nativeErrorCode())
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
220 .arg(query.lastError().driverText())
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
221 .arg(query.lastError().databaseText()));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
222 } else {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
223 qDebug() << "EditHop Deleted" << this->recno;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
224 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
225
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
226 this->close();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
227 this->setResult(1);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
228 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
229
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
230
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
231 void EditHop::is_changed()
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
232 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
233 ui->valueEdit->setValue(ui->inventoryEdit->value() * ui->costEdit->value());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
234 ui->saveButton->setEnabled(true);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
235 ui->deleteButton->setEnabled((ui->inventoryEdit->value() == 0 && this->recno >= 0) ? true:false);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
236 this->textIsChanged = true;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
237 WindowTitle();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
238 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
239
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
240
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
241 void EditHop::on_quitButton_clicked()
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
242 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
243 if (this->textIsChanged) {
60
0d65238ebedc Updated translations and some messages.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
244 int rc = QMessageBox::warning(this, tr("Hop changed"), tr("This hop has been modified. Save changes?"),
24
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
245 QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Save);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
246 switch (rc) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
247 case QMessageBox::Save:
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
248 on_saveButton_clicked();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
249 break; /* Saved and then Quit */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
250 case QMessageBox::Discard:
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
251 break; /* Quit without Save */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
252 case QMessageBox::Cancel:
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
253 return; /* Return to the editor page */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
254 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
255 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
256
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
257 this->close();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
258 this->setResult(1);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
259 }

mercurial