89 if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "EQUIPMENT")) { |
89 if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "EQUIPMENT")) { |
90 /* |
90 /* |
91 * Equipment |
91 * Equipment |
92 */ |
92 */ |
93 total++; |
93 total++; |
94 hasnotes = false; |
94 Equipment *eq = new Equipment; |
95 sql = "INSERT INTO inventory_equipments SET uuid='"; |
95 eq->notes = ""; |
96 sql.append(QUuid::createUuid().toString().mid(1, 36)); |
96 eq->top_up_kettle = eq->top_up_water = 0; |
97 sql.append("', top_up_water=0"); |
|
98 |
97 |
99 while (xml->readNext()) { |
98 while (xml->readNext()) { |
100 if (xml->atEnd()) |
99 if (xml->atEnd()) |
101 break; |
100 break; |
102 if ((xml->tokenType() == QXmlStreamReader::EndElement) && (xml->name() == "EQUIPMENT")) { |
101 if ((xml->tokenType() == QXmlStreamReader::EndElement) && (xml->name() == "EQUIPMENT")) { |
103 if (! hasnotes) |
102 query.prepare("INSERT INTO inventory_equipments SET name=:name, boil_size=:boil_size, " |
104 sql.append(", notes=''"); |
103 "batch_size=:batch_size, tun_volume=:tun_volume, tun_weight=:tun_weight, " |
105 query.exec(sql); |
104 "tun_specific_heat=:tun_specific_heat, tun_material=:tun_material, tun_height=:tun_height, " |
|
105 "top_up_water=:top_up_water, trub_chiller_loss=:chiller_loss, evap_rate=:evap_rate, " |
|
106 "boil_time=:boil_time, calc_boil_volume=:calcboil, top_up_kettle=:top_up_kettle, " |
|
107 "hop_utilization=:hopfactor, notes=:notes, lauter_volume=:lauter_volume, " |
|
108 "lauter_height=:lauter_height, lauter_deadspace=:lauter_deadspace, kettle_volume=:kettle_volume, " |
|
109 "kettle_height=:kettle_height, mash_volume=:mash_volume, mash_max=:mash_max, " |
|
110 "efficiency=:efficiency, uuid=:uuid"); |
|
111 query.bindValue(":name", eq->name); |
|
112 query.bindValue(":boil_size", QString("%1").arg(eq->boil_size, 2, 'f', 1, '0')); |
|
113 query.bindValue(":batch_size", QString("%1").arg(eq->batch_size, 3, 'f', 2, '0')); |
|
114 query.bindValue(":tun_volume", QString("%1").arg(eq->tun_volume, 2, 'f', 1, '0')); |
|
115 query.bindValue(":tun_weight", QString("%1").arg(eq->tun_weight, 2, 'f', 1, '0')); |
|
116 query.bindValue(":tun_specific_heat", QString("%1").arg(eq->tun_specific_heat, 4, 'f', 3, '0')); |
|
117 query.bindValue(":tun_material", eq->tun_material); |
|
118 query.bindValue(":tun_height", QString("%1").arg(eq->tun_height, 4, 'f', 3, '0')); |
|
119 query.bindValue(":top_up_water", QString("%1").arg(eq->top_up_water, 2, 'f', 1, '0')); |
|
120 query.bindValue(":chiller_loss", QString("%1").arg(eq->trub_chiller_loss, 2, 'f', 1, '0')); |
|
121 /* The evaporation in beerxml is percentage, but we use the real volume per hour */ |
|
122 query.bindValue(":evap_rate", QString("%1").arg((eq->evap_rate / 100) * eq->boil_size, 3, 'f', 2, '0')); |
|
123 query.bindValue(":boil_time", QString("%1").arg(eq->boil_time, 1, 'f', 0, '0')); |
|
124 query.bindValue(":calcboil", eq->calc_boil_volume ? 1:0); |
|
125 query.bindValue(":top_up_kettle", QString("%1").arg(eq->top_up_kettle, 2, 'f', 1, '0')); |
|
126 query.bindValue(":hopfactor", QString("%1").arg(eq->hop_utilization, 1, 'f', 0, '0')); |
|
127 query.bindValue(":notes", eq->notes); |
|
128 query.bindValue(":lauter_volume", QString("%1").arg(eq->lauter_volume, 2, 'f', 1, '0')); |
|
129 query.bindValue(":lauter_height", QString("%1").arg(eq->lauter_height, 4, 'f', 3, '0')); |
|
130 query.bindValue(":lauter_deadspace", QString("%1").arg(eq->lauter_deadspace, 2, 'f', 1, '0')); |
|
131 query.bindValue(":kettle_volume", QString("%1").arg(eq->kettle_volume, 2, 'f', 1, '0')); |
|
132 query.bindValue(":kettle_height", QString("%1").arg(eq->kettle_height, 4, 'f', 3, '0')); |
|
133 query.bindValue(":mash_volume", QString("%1").arg(eq->mash_volume, 2, 'f', 1, '0')); |
|
134 query.bindValue(":mash_max", QString("%1").arg(eq->mash_max, 2, 'f', 1, '0')); |
|
135 query.bindValue(":efficiency", QString("%1").arg(eq->efficiency, 2, 'f', 1, '0')); |
|
136 query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36)); |
|
137 query.exec(); |
106 if (query.lastError().isValid()) { |
138 if (query.lastError().isValid()) { |
107 qWarning() << sql << query.lastError(); |
139 qWarning() << query.lastError(); |
108 errors++; |
140 errors++; |
109 } |
141 } |
110 ui->progressBar->setValue(round(100 * xml->characterOffset() / fsize)); |
142 ui->progressBar->setValue(round(100 * xml->characterOffset() / fsize)); |
|
143 delete eq; |
111 break; |
144 break; |
112 } |
145 } |
113 if ((xml->tokenType() == QXmlStreamReader::StartElement) && |
146 if ((xml->tokenType() == QXmlStreamReader::StartElement) && |
114 ((xml->name() == "VERSION") || (xml->name() == "DISPLAY_BOIL_SIZE") || |
147 ((xml->name() == "VERSION") || (xml->name() == "DISPLAY_BOIL_SIZE") || |
115 (xml->name() == "DISPLAY_BATCH_SIZE") || (xml->name() == "DISPLAY_TUN_VOLUME") || |
148 (xml->name() == "DISPLAY_BATCH_SIZE") || (xml->name() == "DISPLAY_TUN_VOLUME") || |
118 (xml->name() == "ATTENUATION_FACTOR_YEAST") || (xml->name() == "ATTENUATION_FACTOR_WATER_TO_GRAIN_RATIO") || |
151 (xml->name() == "ATTENUATION_FACTOR_YEAST") || (xml->name() == "ATTENUATION_FACTOR_WATER_TO_GRAIN_RATIO") || |
119 (xml->name() == "ATTENUATION_FACTOR_TOTAL_MASH_TIME") || (xml->name() == "ATTENUATION_FACTOR_PERC_SIMPLE_SUGAR") || |
152 (xml->name() == "ATTENUATION_FACTOR_TOTAL_MASH_TIME") || (xml->name() == "ATTENUATION_FACTOR_PERC_SIMPLE_SUGAR") || |
120 (xml->name() == "ATTENUATION_FACTOR_CONSTANT"))) { |
153 (xml->name() == "ATTENUATION_FACTOR_CONSTANT"))) { |
121 // Ignore. |
154 // Ignore. |
122 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "NAME")) { |
155 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "NAME")) { |
123 sql.append(QString(", name='%1'").arg(xml->readElementText())); |
156 eq->name = xml->readElementText(); |
124 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "NOTES")) { |
157 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "NOTES")) { |
125 sql.append(QString(", notes='%1'").arg(xml->readElementText())); |
158 eq->notes = xml->readElementText(); |
126 hasnotes = true; |
|
127 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "BOIL_SIZE")) { |
159 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "BOIL_SIZE")) { |
128 sql.append(QString(", boil_size=%1").arg(xml->readElementText().toDouble(), 2, 'f', 1, '0')); |
160 eq->boil_size = xml->readElementText().toDouble(); |
129 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "BATCH_SIZE")) { |
161 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "BATCH_SIZE")) { |
130 sql.append(QString(", batch_size=%1").arg(xml->readElementText().toDouble(), 3, 'f', 2, '0')); |
162 eq->batch_size = xml->readElementText().toDouble(); |
|
163 qDebug() << eq->batch_size; |
131 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TUN_VOLUME")) { |
164 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TUN_VOLUME")) { |
132 sql.append(QString(", tun_volume=%1").arg(xml->readElementText().toDouble(), 2, 'f', 1, '0')); |
165 eq->tun_volume = xml->readElementText().toDouble(); |
133 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TUN_WEIGHT")) { |
166 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TUN_WEIGHT")) { |
134 sql.append(QString(", tun_weight=%1").arg(xml->readElementText().toDouble(), 2, 'f', 1, '0')); |
167 eq->tun_weight = xml->readElementText().toDouble(); |
135 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TUN_SPECIFIC_HEAT")) { |
168 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TUN_SPECIFIC_HEAT")) { |
136 sql.append(QString(", tun_specific_heat=%1").arg(xml->readElementText().toDouble(), 4, 'f', 3, '0')); |
169 eq->tun_specific_heat = xml->readElementText().toDouble(); |
|
170 if (eq->tun_specific_heat == 0.22) |
|
171 eq->tun_material = 1; |
|
172 else if (eq->tun_specific_heat == 0.46) |
|
173 eq->tun_material = 2; |
|
174 else if (eq->tun_specific_heat == 0.092) |
|
175 eq->tun_material = 3; |
|
176 else |
|
177 eq->tun_material = 0; |
137 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TUN_HEIGHT")) { |
178 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TUN_HEIGHT")) { |
138 sql.append(QString(", tun_height=%1").arg(xml->readElementText().toDouble(), 4, 'f', 3, '0')); |
179 eq->tun_height = xml->readElementText().toDouble(); |
139 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TRUB_CHILLER_LOSS")) { |
180 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TRUB_CHILLER_LOSS")) { |
140 sql.append(QString(", trub_chiller_loss=%1").arg(xml->readElementText().toDouble(), 2, 'f', 1, '0')); |
181 eq->trub_chiller_loss = xml->readElementText().toDouble(); |
141 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "EVAP_RATE")) { |
182 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "EVAP_RATE")) { |
142 sql.append(QString(", evap_rate=%1").arg(xml->readElementText().toDouble(), 3, 'f', 2, '0')); |
183 eq->evap_rate = xml->readElementText().toDouble(); |
143 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "BOIL_TIME")) { |
184 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "BOIL_TIME")) { |
144 sql.append(QString(", boil_time=%1").arg(xml->readElementText().toDouble(), 1, 'f', 0, '0')); |
185 eq->boil_time = xml->readElementText().toDouble(); |
145 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "CALC_BOIL_VOLUME")) { |
186 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "CALC_BOIL_VOLUME")) { |
146 sql.append(QString(", calc_boil_volume=%1").arg((xml->readElementText() == "TRUE") ? "true":"false")); |
187 eq->calc_boil_volume = (xml->readElementText() == "TRUE") ? true:false; |
147 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TOP_UP_KETTLE")) { |
188 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TOP_UP_KETTLE")) { |
148 sql.append(QString(", top_up_kettle=%1").arg(xml->readElementText().toDouble(), 2, 'f', 1, '0')); |
189 eq->top_up_kettle = xml->readElementText().toDouble(); |
149 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "HOP_UTILIZATION")) { |
190 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "HOP_UTILIZATION")) { |
150 sql.append(QString(", hop_utilization=%1").arg(xml->readElementText().toDouble(), 1, 'f', 0, '0')); |
191 eq->hop_utilization = xml->readElementText().toDouble(); |
151 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "LAUTER_VOLUME")) { |
192 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "LAUTER_VOLUME")) { |
152 sql.append(QString(", lauter_volume=%1").arg(xml->readElementText().toDouble(), 2, 'f', 1, '0')); |
193 eq->lauter_volume = xml->readElementText().toDouble(); |
153 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "LAUTER_HEIGHT")) { |
194 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "LAUTER_HEIGHT")) { |
154 sql.append(QString(", lauter_height=%1").arg(xml->readElementText().toDouble(), 4, 'f', 3, '0')); |
195 eq->lauter_height = xml->readElementText().toDouble(); |
155 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "LAUTER_DEADSPACE")) { |
196 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "LAUTER_DEADSPACE")) { |
156 sql.append(QString(", lauter_deadspace=%1").arg(xml->readElementText().toDouble(), 2, 'f', 1, '0')); |
197 eq->lauter_deadspace = xml->readElementText().toDouble(); |
157 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "KETTLE_VOLUME")) { |
198 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "KETTLE_VOLUME")) { |
158 sql.append(QString(", kettle_volume=%1").arg(xml->readElementText().toDouble(), 2, 'f', 1, '0')); |
199 eq->kettle_volume = xml->readElementText().toDouble(); |
159 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "KETTLE_HEIGHT")) { |
200 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "KETTLE_HEIGHT")) { |
160 sql.append(QString(", kettle_height=%1").arg(xml->readElementText().toDouble(), 4, 'f', 3, '0')); |
201 eq->kettle_height = xml->readElementText().toDouble(); |
161 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "MASH_VOLUME")) { |
202 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "MASH_VOLUME")) { |
162 sql.append(QString(", mash_volume=%1").arg(xml->readElementText().toDouble(), 2, 'f', 1, '0')); |
203 eq->mash_volume = xml->readElementText().toDouble(); |
|
204 eq->mash_max = eq->mash_volume / 3; |
163 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "EFFICIENCY")) { |
205 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "EFFICIENCY")) { |
164 sql.append(QString(", efficiency=%1").arg(xml->readElementText().toDouble(), 2, 'f', 1, '0')); |
206 eq->efficiency = xml->readElementText().toDouble(); |
165 } else { |
207 } else { |
166 if (xml->tokenType() == QXmlStreamReader::StartElement) |
208 if (xml->tokenType() == QXmlStreamReader::StartElement) |
167 qDebug() << "2 " << xml->tokenType() << xml->name(); |
209 qDebug() << "2 " << xml->tokenType() << xml->name(); |
168 } |
210 } |
169 } |
211 } |