360 if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "FERMENTABLE")) { |
359 if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "FERMENTABLE")) { |
361 /* |
360 /* |
362 * Fermentable |
361 * Fermentable |
363 */ |
362 */ |
364 total++; |
363 total++; |
365 hasnotes = false; |
364 Fermentables *f = new Fermentables; |
366 sql = "INSERT INTO inventory_fermentables SET uuid='"; |
365 f->f_supplier = f->f_origin = f->f_notes = ""; |
367 sql.append(QUuid::createUuid().toString().mid(1, 36)); |
366 f->f_yield = 80; |
368 sql.append("'"); |
367 f->f_max_in_batch = 100; |
|
368 f->f_recommend_mash = true; |
|
369 f->f_protein = f->f_dissolved_protein = f->f_coarse_fine_diff = f->f_moisture = f->f_diastatic_power = 0; |
|
370 f->f_di_ph = 5.7; |
|
371 f->f_acid_to_ph_57 = 0; |
369 |
372 |
370 while (xml->readNext()) { |
373 while (xml->readNext()) { |
371 if (xml->atEnd()) |
374 if (xml->atEnd()) |
372 break; |
375 break; |
373 if ((xml->tokenType() == QXmlStreamReader::EndElement) && (xml->name() == "FERMENTABLE")) { |
376 if ((xml->tokenType() == QXmlStreamReader::EndElement) && (xml->name() == "FERMENTABLE")) { |
374 qDebug() << "hasnotes" << hasnotes; |
377 query.prepare("INSERT INTO inventory_fermentables SET name=:name, type=:type, yield=:yield, color=:color, " |
375 if (! hasnotes) |
378 "add_after_boil=:addafter, origin=:origin, supplier=:supplier, notes=:notes, coarse_fine_diff=:coarse, " |
376 sql.append(", notes=''"); |
379 "moisture=:moisture, diastatic_power=:diastatic, protein=:protein, dissolved_protein=:dissolved, " |
377 query.exec(sql); |
380 "max_in_batch=:maxinbatch, recommend_mash=:mash, added=:added, di_ph=:diph, " |
|
381 "acid_to_ph_57=:acidph, graintype=:graintype, uuid = :uuid"); |
|
382 query.bindValue(":name", f->f_name); |
|
383 query.bindValue(":type", f->f_type); |
|
384 query.bindValue(":yield", QString("%1").arg(f->f_yield, 2, 'f', 1, '0')); |
|
385 query.bindValue(":color", QString("%1").arg(Utils::srm_to_ebc(f->f_color), 1, 'f', 0, '0')); |
|
386 query.bindValue(":addafter", f->f_add_after_boil ? 1:0); |
|
387 query.bindValue(":origin", f->f_origin); |
|
388 query.bindValue(":supplier", f->f_supplier); |
|
389 query.bindValue(":notes", f->f_notes); |
|
390 query.bindValue(":coarse", QString("%1").arg(f->f_coarse_fine_diff, 4, 'f', 3, '0')); |
|
391 query.bindValue(":moisture", QString("%1").arg(f->f_moisture, 4, 'f', 3, '0')); |
|
392 query.bindValue(":diastatic", Utils::kolbach_to_lintner(f->f_diastatic_power)); |
|
393 query.bindValue(":protein", QString("%1").arg(f->f_protein, 4, 'f', 3, '0')); |
|
394 query.bindValue(":dissolved", QString("%1").arg(f->f_dissolved_protein, 4, 'f', 3, '0')); |
|
395 query.bindValue(":maxinbatch", QString("%1").arg(f->f_max_in_batch, 2, 'f', 1, '0')); |
|
396 query.bindValue(":mash", f->f_recommend_mash ? 1:0); |
|
397 query.bindValue(":added", f->f_added); |
|
398 query.bindValue(":diph", QString("%1").arg(f->f_di_ph, 6, 'f', 5, '0')); |
|
399 query.bindValue(":acidph", QString("%1").arg(f->f_acid_to_ph_57, 6, 'f', 5, '0')); |
|
400 query.bindValue(":graintype", f->f_graintype); |
|
401 query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36)); |
|
402 query.exec(); |
378 if (query.lastError().isValid()) { |
403 if (query.lastError().isValid()) { |
379 qWarning() << sql << query.lastError(); |
404 qWarning() << query.lastError(); |
380 errors++; |
405 errors++; |
381 } |
406 } |
382 ui->progressBar->setValue(round(100 * xml->characterOffset() / fsize)); |
407 ui->progressBar->setValue(round(100 * xml->characterOffset() / fsize)); |
383 break; |
408 break; |
384 } |
409 } |
385 if ((xml->tokenType() == QXmlStreamReader::StartElement) && |
410 if ((xml->tokenType() == QXmlStreamReader::StartElement) && |
386 ((xml->name() == "VERSION") || (xml->name() == "DISPLAY_COST") || |
411 ((xml->name() == "VERSION") || (xml->name() == "DISPLAY_COST") || |
387 (xml->name() == "DISPLAY_COLOR") || (xml->name() == "INVENTORY") || |
412 (xml->name() == "DISPLAY_COLOR") || (xml->name() == "INVENTORY") || |
|
413 (xml->name() == "COST") || (xml->name() == "ALWAYS_ON_STOCK") || |
388 (xml->name() == "PERCENTAGE") || (xml->name() == "ADJUST_TO_TOTAL_100") )) { |
414 (xml->name() == "PERCENTAGE") || (xml->name() == "ADJUST_TO_TOTAL_100") )) { |
389 // Ignore. |
415 // Ignore. |
390 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "NAME")) { |
416 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "NAME")) { |
391 sql.append(QString(", name='%1'").arg(xml->readElementText())); |
417 f->f_name = xml->readElementText(); |
392 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "COST")) { |
|
393 sql.append(QString(", cost=%1").arg(xml->readElementText().toDouble(), 3, 'f', 2, '0')); |
|
394 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TYPE")) { |
418 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TYPE")) { |
395 QString temp = xml->readElementText(); |
419 QString temp = xml->readElementText(); |
396 if (temp == "Grain") |
420 if (temp == "Sugar") |
397 sql.append(", type=0"); |
421 f->f_type = 1; |
398 else if (temp == "Sugar") |
|
399 sql.append(", type=1"); |
|
400 else if (temp == "Extract") |
422 else if (temp == "Extract") |
401 sql.append(", type=2"); |
423 f->f_type = 2; |
402 else if (temp == "Dry extract") |
424 else if (temp == "Dry extract") |
403 sql.append(", type=3"); |
425 f->f_type = 3; |
404 else if (temp == "Adjunct") |
426 else if (temp == "Adjunct") |
405 sql.append(", type=4"); |
427 f->f_type = 4; |
|
428 else |
|
429 f->f_type = 0; |
406 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "ORIGIN")) { |
430 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "ORIGIN")) { |
407 sql.append(QString(", origin='%1'").arg(xml->readElementText())); |
431 f->f_origin = xml->readElementText(); |
408 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "SUPPLIER")) { |
432 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "SUPPLIER")) { |
409 sql.append(QString(", supplier='%1'").arg(xml->readElementText())); |
433 f->f_supplier = xml->readElementText(); |
410 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "NOTES")) { |
434 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "NOTES")) { |
411 sql.append(QString(", notes='%1'").arg(xml->readElementText())); |
435 f->f_notes = xml->readElementText(); |
412 hasnotes = true; |
|
413 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "ALWAYS_ON_STOCK")) { |
|
414 sql.append(QString(", always_on_stock=%1").arg(xml->readElementText().toLower())); |
|
415 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "YIELD")) { |
436 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "YIELD")) { |
416 sql.append(QString(", yield=%1").arg(xml->readElementText().toDouble(), 5, 'f', 4, '0')); |
437 f->f_yield = xml->readElementText().toDouble(); |
417 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "COARSE_FINE_DIFF")) { |
438 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "COARSE_FINE_DIFF")) { |
418 sql.append(QString(", coarse_fine_diff=%1").arg(xml->readElementText().toDouble(), 5, 'f', 4, '0')); |
439 f->f_coarse_fine_diff = xml->readElementText().toDouble(); |
419 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "MOISTURE")) { |
440 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "MOISTURE")) { |
420 sql.append(QString(", moisture=%1").arg(xml->readElementText().toDouble(), 5, 'f', 4, '0')); |
441 f->f_moisture = xml->readElementText().toDouble(); |
421 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "DIASTATIC_POWER")) { |
442 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "DIASTATIC_POWER")) { |
422 sql.append(QString(", diastatic_power=%1").arg(xml->readElementText().toDouble(), 5, 'f', 4, '0')); |
443 f->f_diastatic_power = xml->readElementText().toDouble(); |
423 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "MAX_IN_BATCH")) { |
444 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "MAX_IN_BATCH")) { |
424 sql.append(QString(", max_in_batch=%1").arg(xml->readElementText().toDouble(), 5, 'f', 4, '0')); |
445 f->f_max_in_batch = xml->readElementText().toDouble(); |
425 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "RECOMMEND_MASH")) { |
446 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "RECOMMEND_MASH")) { |
426 sql.append(QString(", recommend_mash=%1").arg(xml->readElementText().toLower())); |
447 f->f_recommend_mash = (xml->readElementText() == "TRUE") ? true:false; |
427 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "GRAINTYPE")) { |
448 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "GRAINTYPE")) { |
428 QString temp = xml->readElementText(); |
449 QString temp = xml->readElementText(); |
429 if (temp == "Base") |
450 if (temp == "Roast") |
430 sql.append(QString(", graintype=0")); |
451 f->f_graintype = 1; |
431 else if (temp == "Roast") |
|
432 sql.append(QString(", graintype=1")); |
|
433 else if (temp == "Crystal") |
452 else if (temp == "Crystal") |
434 sql.append(QString(", graintype=2")); |
453 f->f_graintype = 2; |
435 else if (temp == "Kilned") |
454 else if (temp == "Kilned") |
436 sql.append(QString(", graintype=3")); |
455 f->f_graintype = 3; |
437 else if (temp == "Sour Malt") |
456 else if (temp == "Sour Malt") |
438 sql.append(QString(", graintype=4")); |
457 f->f_graintype = 4; |
439 else if (temp == "Special") |
458 else if (temp == "Special") |
440 sql.append(QString(", graintype=5")); |
459 f->f_graintype = 5; |
441 else if (temp == "No malt") |
460 else if (temp == "No malt") |
442 sql.append(QString(", graintype=6")); |
461 f->f_graintype = 6; |
|
462 else |
|
463 f->f_graintype = 0; |
443 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "ADDED")) { |
464 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "ADDED")) { |
444 QString temp = xml->readElementText(); |
465 QString temp = xml->readElementText(); |
445 if (temp == "Mash") |
466 if (temp == "Boil") |
446 sql.append(QString(", added=0")); |
467 f->f_added = 1; |
447 else if (temp == "Boil") |
|
448 sql.append(QString(", added=1")); |
|
449 else if (temp == "Fermentation") |
468 else if (temp == "Fermentation") |
450 sql.append(QString(", added=2")); |
469 f->f_added = 2; |
451 else if (temp == "Lagering") |
470 else if (temp == "Lagering") |
452 sql.append(QString(", added=3")); |
471 f->f_added = 3; |
453 else if (temp == "Bottle") |
472 else if (temp == "Bottle") |
454 sql.append(QString(", added=4")); |
473 f->f_added = 4; |
|
474 else |
|
475 f->f_added = 0; |
455 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "ADD_AFTER_BOIL")) { |
476 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "ADD_AFTER_BOIL")) { |
456 sql.append(QString(", add_after_boil=%1").arg(xml->readElementText().toLower())); |
477 f->f_add_after_boil = (xml->readElementText() == "TRUE") ? true:false; |
457 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "COLOR")) { |
478 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "COLOR")) { |
458 sql.append(QString(", color=%1").arg(xml->readElementText().toDouble(), 5, 'f', 4, '0')); |
479 f->f_color = xml->readElementText().toDouble(); |
459 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "PROTEIN")) { |
480 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "PROTEIN")) { |
460 sql.append(QString(", protein=%1").arg(xml->readElementText().toDouble(), 5, 'f', 4, '0')); |
481 f->f_protein = xml->readElementText().toDouble(); |
461 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "DISSOLVED_PROTEIN")) { |
482 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "DISSOLVED_PROTEIN")) { |
462 sql.append(QString(", dissolved_protein=%1").arg(xml->readElementText().toDouble(), 5, 'f', 4, '0')); |
483 f->f_dissolved_protein = xml->readElementText().toDouble(); |
463 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "DI_pH")) { |
484 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "DI_pH")) { |
464 sql.append(QString(", di_ph=%1").arg(xml->readElementText().toDouble(), 6, 'f', 5, '0')); |
485 f->f_di_ph = xml->readElementText().toDouble(); |
465 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "ACID_TO_pH_5.7")) { |
486 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "ACID_TO_pH_5.7")) { |
466 sql.append(QString(", acid_to_ph_57=%1").arg(xml->readElementText().toDouble(), 6, 'f', 5, '0')); |
487 f->f_acid_to_ph_57 = xml->readElementText().toDouble(); |
467 } else { |
488 } else { |
468 if (xml->tokenType() == QXmlStreamReader::StartElement) |
489 if (xml->tokenType() == QXmlStreamReader::StartElement) |
469 qDebug() << "2 " << xml->tokenType() << xml->name(); |
490 qDebug() << "2 " << xml->tokenType() << xml->name(); |
470 } |
491 } |
471 } |
492 } |