Product beerXML updates: Add product code to beerxml filename. Add OG and FG values if valid. Fixed equipment values to use the real equipment profile. Don't export fermentables that are used for packaging.

Tue, 31 May 2022 15:30:53 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Tue, 31 May 2022 15:30:53 +0200
changeset 246
9e420bea7c38
parent 245
f58543ef3fed
child 247
a789ceedfe0c

Product beerXML updates: Add product code to beerxml filename. Add OG and FG values if valid. Fixed equipment values to use the real equipment profile. Don't export fermentables that are used for packaging.

src/EditProductExport.cpp file | annotate | diff | comparison | revisions
--- a/src/EditProductExport.cpp	Tue May 31 15:05:52 2022 +0200
+++ b/src/EditProductExport.cpp	Tue May 31 15:30:53 2022 +0200
@@ -41,7 +41,8 @@
     const QStringList misc_use({ "Starter", "Mash", "Boil", "Primary", "Secondary", "Bottling" });
     const QStringList step_type({ "Infusion", "Temperature", "Decoction" });
 
-    QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), QDir::homePath() + "/" + product->name + ".xml", tr("Files (*.xml)"));
+    QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
+		    	QDir::homePath() + "/" + product->code + " " + product->name + ".xml", tr("Files (*.xml)"));
     if (fileName == 0) {
         QMessageBox::warning(this, tr("Save File"), tr("No XML file selected."));
         return;
@@ -70,6 +71,10 @@
     xmlWriter->writeTextElement("BOIL_SIZE", QString::number(product->boil_size, 'f', 4));
     xmlWriter->writeTextElement("BOIL_TIME", QString::number(product->boil_time, 'f', 3));
     xmlWriter->writeTextElement("EFFICIENCY", QString::number(product->efficiency, 'f', 4));
+    if (product->og > 0.9)
+    	xmlWriter->writeTextElement("OG", QString::number(product->og, 'f', 3));
+    if (product->fg > 0.9)
+    	xmlWriter->writeTextElement("FG", QString::number(product->fg, 'f', 3));
     xmlWriter->writeTextElement("EST_OG", QString::number(product->est_og, 'f', 3));
     xmlWriter->writeTextElement("EST_FG", QString::number(product->est_fg, 'f', 3));
     if (product->est_abv > 0)
@@ -82,6 +87,7 @@
 	xmlWriter->writeTextElement("EST_IBU", QString::number(product->est_ibu, 'f', 1));
 	xmlWriter->writeTextElement("IBU_METHOD", ibu_method[product->ibu_method]);
     }
+    xmlWriter->writeTextElement("BMS_COOLING_TO", QString::number(product->brew_cooling_to, 'f', 1));
 
     xmlWriter->writeStartElement("STYLE");
 	xmlWriter->writeTextElement("VERSION", "1");
@@ -107,10 +113,11 @@
 
     xmlWriter->writeStartElement("EQUIPMENT");
 	xmlWriter->writeTextElement("VERSION", "1");
-	xmlWriter->writeTextElement("NAME", "Dummy Brewery");
-	xmlWriter->writeTextElement("BATCH_SIZE", QString::number(product->batch_size, 'f', 2));
-	xmlWriter->writeTextElement("BOIL_SIZE", QString::number(product->boil_size, 'f', 2));
-	xmlWriter->writeTextElement("BOIL_TIME", QString::number(product->boil_time, 'f', 0));
+	xmlWriter->writeTextElement("NAME", product->eq_name);
+	xmlWriter->writeTextElement("NOTES", product->eq_notes);
+	xmlWriter->writeTextElement("BATCH_SIZE", QString::number(product->eq_batch_size, 'f', 2));
+	xmlWriter->writeTextElement("BOIL_SIZE", QString::number(product->eq_boil_size, 'f', 2));
+	xmlWriter->writeTextElement("BOIL_TIME", QString::number(product->eq_boil_time, 'f', 0));
     xmlWriter->writeEndElement();	// EQUIPMENT
 
     xmlWriter->writeStartElement("HOPS");
@@ -133,29 +140,31 @@
 
     xmlWriter->writeStartElement("FERMENTABLES");
     for (int i = 0; i < product->fermentables.size(); i++) {
-        xmlWriter->writeStartElement("FERMENTABLE");
-        xmlWriter->writeTextElement("VERSION", "1");
-	xmlWriter->writeTextElement("NAME", product->fermentables.at(i).f_name);
-	xmlWriter->writeTextElement("TYPE", fermentable_type[product->fermentables.at(i).f_type]);
-	xmlWriter->writeTextElement("AMOUNT", QString::number(product->fermentables.at(i).f_amount, 'f', 4));
-	xmlWriter->writeTextElement("YIELD", QString::number(product->fermentables.at(i).f_yield, 'f', 1));
-	xmlWriter->writeTextElement("COLOR", QString::number(Utils::ebc_to_srm(product->fermentables.at(i).f_color), 'f', 1));
-	xmlWriter->writeTextElement("ADD_AFTER_BOIL", product->fermentables.at(i).f_add_after_boil ? "TRUE":"FALSE");
-	xmlWriter->writeTextElement("ORIGIN", product->fermentables.at(i).f_origin);
-	xmlWriter->writeTextElement("SUPPLIER", product->fermentables.at(i).f_supplier);
-	if (product->fermentables.at(i).f_coarse_fine_diff)
-	    xmlWriter->writeTextElement("COARSE_FINE_DIFF", QString::number(product->fermentables.at(i).f_coarse_fine_diff, 'f', 4));
-	if (product->fermentables.at(i).f_moisture)
-	    xmlWriter->writeTextElement("MOISTURE", QString::number(product->fermentables.at(i).f_moisture, 'f', 4));
-	if (product->fermentables.at(i).f_diastatic_power)
-	    xmlWriter->writeTextElement("DIASTATIC_POWER", QString::number(product->fermentables.at(i).f_diastatic_power, 'f', 4));
-	if (product->fermentables.at(i).f_protein)
-	    xmlWriter->writeTextElement("PROTEIN", QString::number(product->fermentables.at(i).f_protein, 'f', 4));
-	if (product->fermentables.at(i).f_max_in_batch)
-	    xmlWriter->writeTextElement("MAX_IN_BATCH", QString::number(product->fermentables.at(i).f_max_in_batch, 'f', 1));
-	xmlWriter->writeTextElement("RECOMMEND_MASH", product->fermentables.at(i).f_recommend_mash ? "TRUE":"FALSE");
-	xmlWriter->writeTextElement("GRAINTYPE", fermentable_graintype[product->fermentables.at(i).f_graintype]);
-	xmlWriter->writeEndElement();
+	if (product->fermentables.at(i).f_added < FERMENTABLE_ADDED_BOTTLE) {
+            xmlWriter->writeStartElement("FERMENTABLE");
+            xmlWriter->writeTextElement("VERSION", "1");
+	    xmlWriter->writeTextElement("NAME", product->fermentables.at(i).f_name);
+	    xmlWriter->writeTextElement("TYPE", fermentable_type[product->fermentables.at(i).f_type]);
+	    xmlWriter->writeTextElement("AMOUNT", QString::number(product->fermentables.at(i).f_amount, 'f', 4));
+	    xmlWriter->writeTextElement("YIELD", QString::number(product->fermentables.at(i).f_yield, 'f', 1));
+	    xmlWriter->writeTextElement("COLOR", QString::number(Utils::ebc_to_srm(product->fermentables.at(i).f_color), 'f', 1));
+	    xmlWriter->writeTextElement("ADD_AFTER_BOIL", product->fermentables.at(i).f_add_after_boil ? "TRUE":"FALSE");
+	    xmlWriter->writeTextElement("ORIGIN", product->fermentables.at(i).f_origin);
+	    xmlWriter->writeTextElement("SUPPLIER", product->fermentables.at(i).f_supplier);
+	    if (product->fermentables.at(i).f_coarse_fine_diff)
+	    	xmlWriter->writeTextElement("COARSE_FINE_DIFF", QString::number(product->fermentables.at(i).f_coarse_fine_diff, 'f', 4));
+	    if (product->fermentables.at(i).f_moisture)
+	    	xmlWriter->writeTextElement("MOISTURE", QString::number(product->fermentables.at(i).f_moisture, 'f', 4));
+	    if (product->fermentables.at(i).f_diastatic_power)
+	    	xmlWriter->writeTextElement("DIASTATIC_POWER", QString::number(product->fermentables.at(i).f_diastatic_power, 'f', 4));
+	    if (product->fermentables.at(i).f_protein)
+	    	xmlWriter->writeTextElement("PROTEIN", QString::number(product->fermentables.at(i).f_protein, 'f', 4));
+	    if (product->fermentables.at(i).f_max_in_batch)
+	    	xmlWriter->writeTextElement("MAX_IN_BATCH", QString::number(product->fermentables.at(i).f_max_in_batch, 'f', 1));
+	    xmlWriter->writeTextElement("RECOMMEND_MASH", product->fermentables.at(i).f_recommend_mash ? "TRUE":"FALSE");
+	    xmlWriter->writeTextElement("GRAINTYPE", fermentable_graintype[product->fermentables.at(i).f_graintype]);
+	    xmlWriter->writeEndElement();
+	}
     }
     xmlWriter->writeEndElement();	// FERMENTABLES
 

mercurial