src/ImportBrew.cpp

Fri, 10 Feb 2023 17:28:46 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 10 Feb 2023 17:28:46 +0100
changeset 492
c3a781b4d35b
parent 387
7945bf3be1f9
permissions
-rw-r--r--

ChartCarbonate saves the image path in the settings file. Conditional debug messages in a lot on monitor files. In Fermenter monitor details make the status background red if offline. A lot more generic variables instead of continuous expensive calls to MySQL. If fermenter values for the thermometers are not OK, then do not show anything.

387
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /**
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 * ImportBrew.cpp is part of bmsapp.
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 *
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 * bmsapp is free software: you can redistribute it and/or modify
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 * the Free Software Foundation, either version 3 of the License, or
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 * (at your option) any later version.
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 *
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 * bmsapp is distributed in the hope that it will be useful,
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 * GNU General Public License for more details.
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 *
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 */
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 #include "ImportBrew.h"
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 #include "../ui/ui_ImportBrew.h"
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 #include "global.h"
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 #include "Utils.h"
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 #include "database/db_product.h"
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 #include "MainWindow.h"
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 ImportBrew::ImportBrew(QWidget *parent) : QDialog(parent), ui(new Ui::ImportBrew)
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 qDebug() << "ImportBrew start";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 ui->setupUi(this);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 WindowTitle();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 ui->progressBar->setValue(0);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 connect(ui->quitButton, SIGNAL(clicked()), parent, SLOT(fromImportBrew()));
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 ImportBrew::~ImportBrew()
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 qDebug() << "ImportBrew done";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 delete ui;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 void ImportBrew::WindowTitle()
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43 {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 QString txt = QString(tr("BMSapp - Import Brewlog"));
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 setWindowTitle(txt);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 void ImportBrew::on_openButton_clicked()
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 QSqlQuery query;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 QString log, sql, code, name, uuid;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 int total = 0, errors = 0, updates = 0;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), QDir::homePath() + "/*.json", tr("Files (*.json)"));
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 if (fileName == 0) {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 QMessageBox::warning(this, tr("Open File"), tr("No Brewlog JSON file selected."));
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 return;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 ui->fileEdit->setText(fileName);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 QFile file(fileName);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63 qint64 fsize = file.size();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 log = "Import Brewlog file `" + fileName + "`\n\n";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66 qInfo() << "Import Brewlog" << fileName << "length" << fsize << "bytes";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 file.open(QIODevice::ReadOnly);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 QByteArray val = file.readAll();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 file.close();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72 QJsonParseError parseError;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 QJsonDocument brewlog = QJsonDocument::fromJson(val, &parseError);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 if (parseError.error != QJsonParseError::NoError) {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 qWarning() << "Parse error: " << parseError.errorString() << "at" << parseError.offset ;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 } else {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 QJsonObject root = brewlog.object();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 QJsonValue value = root.value(QString("brew"));
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80 /*
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 * The logfile is a array with just 1 item.
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 */
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83 QJsonArray array = value.toArray();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 foreach (const QJsonValue & v, array) {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 /*
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 * 4 items in a object is a complete brewlog.
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87 */
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88 QString Recipe = v.toObject().value("Recipe").toString();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 QDateTime Date = QDateTime::fromString(v.toObject().value("Date").toString());
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 QJsonArray data = v.toObject().value("brewdata").toArray();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91 QJsonArray events = v.toObject().value("annotations").toArray();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92 qDebug() << Recipe << Date << data.size() << events.size();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 code = Recipe.split(" ").at(0);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94 name = Recipe.remove(0, code.size() + 1);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 log.append(QString(tr("Brew: ") + code + " " + name + "\n"));
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 sql = "SELECT uuid FROM products WHERE code='" + code + "'";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 query.exec(sql);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 if (query.first()) {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100 uuid = query.value(0).toString();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 qDebug() << uuid;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102 } else {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
103 uuid = "";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
104 errors++;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
105 qWarning() << "ImportBrew" << code << "product not found";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
106 continue;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
107 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
108
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
109 sql = "DELETE FROM log_brews WHERE code='" + code + "'";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
110 query.exec(sql);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
111 if (query.numRowsAffected() > 0) {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 log.append(QString(tr("Deleted %1 old records\n")).arg(query.numRowsAffected()));
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113 qDebug() << "ImportBrew deleted" << query.numRowsAffected();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
114 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
115
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
116 for (int j = 0; j < data.size(); j++) {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
118 QJsonObject obj = data.at(j).toObject();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
119
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
120 /*
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
121 * It's fucking crazy that despite all Googling this cannot be
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
122 * done with an internal function. All examples are not working
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
123 * for this very very simple problem, add the time string converted
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
124 * to QTime to a QDateTime.
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
125 *
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
126 * Solution that always works, split the string, and do the math.
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
127 */
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
128 QStringList Times = obj["Label"].toString().split(":");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
129 int seconds = Times[0].toInt() * 3600 + Times[1].toInt() * 60;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
130 QDateTime logDate = Date.addSecs(seconds);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
131 QString dt = logDate.toString("yyyy-MM-dd HH:mm:ss");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
132
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
133 sql = "INSERT INTO log_brews SET version='2', datetime='" + dt + "'";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
134 sql.append(", uuid='" + uuid + "'");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
135 sql.append(", code='" + code + "'");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
136 sql.append(", name='" + name + "'");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
137 sql.append(", pv_mlt='" + obj["MLT_pv"].toString() + "'");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
138 sql.append(", sp_mlt='" + obj["MLT_sp"].toString() + "'");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
139 sql.append(", pwm_mlt='" + obj["MLT_pwm"].toString() + "'");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
140 if (obj["HLT_pv"].toString().size()) {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
141 sql.append(", pv_hlt='" + obj["HLT_pv"].toString() + "'");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
142 sql.append(", sp_hlt='" + obj["HLT_sp"].toString() + "'");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
143 sql.append(", pwm_hlt='" + obj["HLT_pwm"].toString() + "'");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
144 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
145 //qDebug() << sql;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
146
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
147 query.exec(sql);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
148 if (query.lastError().isValid()) {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
149 qWarning() << "ImportBrew" << query.lastError();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
150 errors++;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
151 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
152 total++;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
153
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
154 /*
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
155 * The first 90% is for the normal data
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
156 */
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
157 ui->progressBar->setValue((total * 90) / data.size());
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
158 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
159 log.append(QString(tr("Inserted %1 new records\n")).arg(total - errors));
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
160
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
161 /*
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
162 * Update events, they are annotations in the json file.
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
163 */
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
164 for (int j = 0; j < events.size(); j++) {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
165
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
166 QJsonObject obj = events.at(j).toObject();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
167
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
168 QStringList Times = obj["value"].toString().split(":");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
169 int seconds = Times[0].toInt() * 3600 + Times[1].toInt() * 60;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
170 QDateTime logDate = Date.addSecs(seconds);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
171 QString dt = logDate.toString("yyyy-MM-dd HH:mm:ss");
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
172 QJsonObject label = obj["label"].toObject();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
173 QString evt = label["content"].toString();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
174
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
175 sql = "UPDATE log_brews SET event='" + evt + "' WHERE datetime='" + dt + "' AND uuid='" + uuid + "'";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
176 //qDebug() << sql;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
177 query.exec(sql);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
178 if (query.lastError().isValid()) {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
179 qWarning() << "ImportBrew" << query.lastError();
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
180 errors++;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
181 } else {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
182 updates++;
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
183 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
184
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
185 /*
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
186 * The last 10% is for the updates.
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
187 */
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
188 ui->progressBar->setValue(((updates * 10) / events.size()) + 90);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
189 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
190 log.append(QString(tr("Updated %1 records with events\n")).arg(updates));
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
191
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
192 if (errors == 0) {
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
193 sql = "UPDATE products SET log_brew=1 WHERE code='" + code + "'";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
194 query.exec(sql);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
195 if (query.numRowsAffected())
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
196 log.append(QString(tr("Marked brew graph available in product\n")));
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
197 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
198 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
199
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
200 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
201
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
202 ui->logEdit->setPlainText(log);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
203 qInfo() << "Import" << total << "records, " << total - errors << "ok, " << errors << "errors";
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
204
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
205 ui->progressBar->setValue(100);
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
206 }
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
207
7945bf3be1f9 Import brew logs added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
208

mercurial