Added reports, total production, fermentations and efficiency.

Mon, 01 Aug 2022 21:49:57 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 01 Aug 2022 21:49:57 +0200
changeset 386
2e30c9c20d22
parent 385
09af9f46518f
child 387
7945bf3be1f9

Added reports, total production, fermentations and efficiency.

src/MainWindow.cpp file | annotate | diff | comparison | revisions
src/MainWindow.h file | annotate | diff | comparison | revisions
src/PrinterDialog.cpp file | annotate | diff | comparison | revisions
src/PrinterDialog.h file | annotate | diff | comparison | revisions
translations/bmsapp_en.ts file | annotate | diff | comparison | revisions
translations/bmsapp_nl.ts file | annotate | diff | comparison | revisions
ui/MainWindow.ui file | annotate | diff | comparison | revisions
--- a/src/MainWindow.cpp	Mon Aug 01 13:05:23 2022 +0200
+++ b/src/MainWindow.cpp	Mon Aug 01 21:49:57 2022 +0200
@@ -793,6 +793,24 @@
 }
 
 
+void MainWindow::on_actionRep_Production_triggered()
+{
+    PrinterDialog(PR_REP_TOTAL, -1, this);
+}
+
+
+void MainWindow::on_actionRep_Efficiency_triggered()
+{
+    PrinterDialog(PR_REP_EFF, -1, this);
+}
+
+
+void MainWindow::on_actionRep_Fermentation_triggered()
+{
+    PrinterDialog(PR_REP_SVG, -1, this);
+}
+
+
 void MainWindow::fromProfileWaters()
 {
     ui->mainStack->setCurrentIndex(-1);
--- a/src/MainWindow.h	Mon Aug 01 13:05:23 2022 +0200
+++ b/src/MainWindow.h	Mon Aug 01 21:49:57 2022 +0200
@@ -149,6 +149,9 @@
     void on_actionMon_CO2meters_triggered();
     void on_actionMon_iSpindels_triggered();
     void on_actionProd_inprod_triggered();
+    void on_actionRep_Production_triggered();
+    void on_actionRep_Efficiency_triggered();
+    void on_actionRep_Fermentation_triggered();
     void on_actionOn_Name_triggered();
     void on_actionOn_Code_triggered();
     void on_actionOn_Date_triggered();
--- a/src/PrinterDialog.cpp	Mon Aug 01 13:05:23 2022 +0200
+++ b/src/PrinterDialog.cpp	Mon Aug 01 21:49:57 2022 +0200
@@ -2141,6 +2141,231 @@
 		}
 	    }
 	}
+    } else if (p_job == PR_REP_TOTAL) {
+
+	qInfo() << "Print total production";
+	printHeader(&painter);
+        y = 120;
+
+	/* Report header */
+	painter.setFont(QFont("Helvetica", 9, QFont::Bold));
+        painter.setPen(Qt::black);
+        painter.fillRect( 20, y,   540, 20, c_header);
+	painter.drawText( 20, y+4,  80, 20, Qt::AlignHCenter, tr("Number"));
+	painter.drawText(100, y+4,  80, 20, Qt::AlignHCenter, tr("Year"));
+	painter.drawText(180, y+4, 120, 20, Qt::AlignRight, tr("Brew sessions"));
+	painter.drawText(300, y+4, 120, 20, Qt::AlignRight, tr("Brew volume"));
+	painter.drawText(420, y+4, 120, 20, Qt::AlignRight, tr("Average volume"));
+	y += 20;
+	painter.setFont(QFont("Helvetica", 9, QFont::Normal));
+	query.exec("SELECT DISTINCT YEAR(package_date) FROM products WHERE package_date ORDER BY package_date");
+	query.first();
+	int regel = 0, brews = 0, total = 0;
+	double packaged = 0, tvolume = 0, average;
+	QString year = "";
+	for (int i = 0 ; i < query.size() ; i++ ) {
+	    if ((y + 20) > painter.device()->height()) {
+                printer->newPage();
+                printHeader(&painter);
+                y = 120;
+            }
+
+	    brews = 0;
+	    packaged = 0;
+	    regel++;
+	    year = query.value(0).toString();
+	    QSqlQuery query2;
+	    query2.exec("SELECT package_volume FROM products WHERE package_date AND YEAR(package_date) = '" + year + "'");
+	    while (query2.next()) {
+		brews++;
+		total++;
+		packaged += query2.value(0).toDouble();
+		tvolume += query2.value(0).toDouble();
+	    }
+	    average = packaged / brews;
+	    painter.fillRect( 20, y,   540, 20, (i % 2) ? c_line1:c_line2);
+	    painter.drawText( 20, y+4,  80, 20, Qt::AlignCenter, QString("%1").arg(regel));
+            painter.drawText(100, y+4, 100, 20, Qt::AlignCenter, year);
+	    painter.drawText(180, y+4, 120, 20, Qt::AlignRight, QString("%1").arg(brews));
+	    painter.drawText(300, y+4, 120, 20, Qt::AlignRight, QString("%1 L").arg(packaged, 2, 'f', 1, '0'));
+	    painter.drawText(420, y+4, 120, 20, Qt::AlignRight, QString("%1 L").arg(average, 2, 'f', 1, '0'));
+	    query.next();
+            y += 20;
+	}
+	average = tvolume / total;
+	painter.fillRect(180, y,   360, 20, w_line);
+	painter.drawText(180, y+4, 120, 20, Qt::AlignRight, QString("%1").arg(total));
+	painter.drawText(300, y+4, 120, 20, Qt::AlignRight, QString("%1 L").arg(tvolume, 2, 'f', 1, '0'));
+	painter.drawText(420, y+4, 120, 20, Qt::AlignRight, QString("%1 L").arg(average, 2, 'f', 1, '0'));
+	y += 20;
+
+    } else if (p_job == PR_REP_EFF) {
+
+	qInfo() << "Print efficiency";
+        y = painter.device()->height() + 100;
+
+	query.exec("SELECT * FROM products WHERE package_date AND type='2' ORDER BY code");
+	query.first();
+	for (int i = 0 ; i < query.size() ; i++ ) {
+            if ((y + 20) > painter.device()->height()) {
+		if (i > 0)
+                    printer->newPage();
+                printHeader(&painter);
+                y = 120;
+
+		/* Report header */
+        	painter.setFont(QFont("Helvetica", 9, QFont::Bold));
+        	painter.setPen(Qt::black);
+        	painter.fillRect( 20, y,   715, 20, c_header);
+        	painter.drawText( 25, y+4,  65, 20, Qt::AlignLeft, tr("Code"));
+        	painter.drawText( 90, y+4, 200, 20, Qt::AlignLeft, tr("Name"));
+        	painter.drawText(290, y+4, 120, 20, Qt::AlignLeft, tr("Beer style"));
+        	painter.drawText(410, y+4,  80, 20, Qt::AlignRight, tr("Max extract"));
+        	painter.drawText(490, y+4,  80, 20, Qt::AlignRight, tr("Mash eff."));
+        	painter.drawText(570, y+4,  80, 20, Qt::AlignRight, tr("Sparge eff"));
+        	painter.drawText(650, y+4,  80, 20, Qt::AlignRight, tr("Boil eff"));
+        	y += 20;
+        	painter.setFont(QFont("Helvetica", 9, QFont::Normal));
+            }
+
+	    /*
+	     * Data is not always available, calculate the missing pieces.
+	     */
+	    double mvol = 0, msugars = 0, ssugars = 0;
+	    QJsonParseError parseError;
+
+	    const auto& ma_json = query.value("json_mashs").toString().trimmed();
+	    if (!ma_json.trimmed().isEmpty()) {
+		const auto& formattedJson = QString("%1").arg(ma_json);
+		QJsonDocument mashs = QJsonDocument::fromJson(formattedJson.toUtf8(),  &parseError);
+		if (parseError.error != QJsonParseError::NoError) {
+		    qWarning() << "Parse error: " << parseError.errorString() << "at" << parseError.offset ;
+		} else if (mashs.isArray()) {
+		    for (int j = 0; j < mashs.array().size(); j++) {
+			QJsonObject obj = mashs.array().at(j).toObject();
+			if (obj["step_type"].toInt() == 0)
+			    mvol += obj["step_infuse_amount"].toDouble();
+		    }
+		}
+	    }
+
+	    const auto& f_json = query.value("json_fermentables").toString();
+	    if (!f_json.trimmed().isEmpty()) {
+		const auto& formattedJson = QString("%1").arg(f_json);
+		QJsonDocument fermentables = QJsonDocument::fromJson(formattedJson.toUtf8(),  &parseError);
+		if (parseError.error != QJsonParseError::NoError) {
+		    qWarning() << "Parse error: " << parseError.errorString() << "at" << parseError.offset ;
+		} else if (fermentables.isArray()) {
+		    for (int j = 0; j < fermentables.array().size(); j++) {
+			QJsonObject obj = fermentables.array().at(j).toObject();
+			if (obj["f_added"].toInt() == 0) {
+			    double d = obj["f_amount"].toDouble() * (obj["f_yield"].toDouble() / 100) * (1 - obj["f_moisture"].toDouble() / 100);
+			    ssugars += obj["f_amount"].toDouble();
+			    mvol += obj["f_amount"].toDouble() * obj["f_moisture"].toDouble() / 100;
+			    msugars += d;
+			}
+		    }
+		}
+	    }
+
+	    double sugardensity = 1.611;
+	    double v = msugars / sugardensity + mvol;
+	    double plato = 1000 * msugars / (v * 10);	// deg. Plato
+	    double mash_efficiency = query.value("brew_mash_efficiency").toDouble();
+	    double mash_sg = query.value("brew_mash_sg").toDouble();
+	    if ((mash_efficiency == 0) && (mash_sg > 1)) {
+		mash_efficiency = 100 * Utils::sg_to_plato(mash_sg) / plato;
+	    }
+	    double mash_extract = 100 * msugars / ssugars;
+	    double preboil_sg = query.value("brew_preboil_sg").toDouble();
+	    double preboil_volume = query.value("brew_preboil_volume").toDouble();
+	    double est_preboil_plato = Utils::sg_to_plato(preboil_sg) * (preboil_volume / 1.04) * preboil_sg * 10 / 1000;
+	    double preboil_efficiency = query.value("brew_preboil_efficiency").toDouble();
+	    if ((msugars > 0) && (preboil_efficiency == 0))
+		preboil_efficiency = est_preboil_plato / msugars * 100;
+	    if (preboil_efficiency < 0)
+		preboil_efficiency = 0;
+	    double aboil_efficiency = query.value("brew_aboil_efficiency").toDouble();
+
+	    painter.fillRect( 20, y,   715, 20, (i % 2) ? c_line1:c_line2);
+	    painter.drawText( 25, y+4,  65, 20, Qt::AlignLeft, query.value("code").toString());
+	    painter.drawText( 90, y+4, 200, 20, Qt::AlignLeft, query.value("name").toString());
+	    painter.drawText(290, y+4, 120, 20, Qt::AlignLeft, query.value("st_name").toString());
+	    painter.drawText(410, y+4,  80, 20, Qt::AlignRight, QString("%1%").arg(mash_extract, 2, 'f', 1, '0'));
+	    painter.drawText(490, y+4,  80, 20, Qt::AlignRight, QString("%1%").arg(mash_efficiency, 2, 'f', 1, '0'));
+	    painter.drawText(570, y+4,  80, 20, Qt::AlignRight, QString("%1%").arg(preboil_efficiency, 2, 'f', 1, '0'));
+	    painter.drawText(650, y+4,  80, 20, Qt::AlignRight, QString("%1%").arg(aboil_efficiency, 2, 'f', 1, '0'));
+	    query.next();
+	    y += 20;
+	}
+
+    } else if (p_job == PR_REP_SVG) {
+
+	qInfo() << "Print fermentations";
+	y = painter.device()->height() + 100;
+	QString y_name, y_lab, y_product;
+
+	/*
+	 * Works from MariaDB 10.6.x and later, MySQL 8.x and later.
+	 * Pick the first yeast record, that should be the one used for primary.
+	 */
+	query.exec("SELECT code,name,brew_date_end,primary_end_temp,primary_end_date,secondary_temp,secondary_end_date,tertiary_temp,"
+			"package_date,brew_fermenter_sg,fg,json_yeasts,"
+		      	"JSON_EXTRACT(json_yeasts, '$[0].y_laboratory') AS yeastLab,JSON_EXTRACT(json_yeasts, '$[0].y_product_id') AS yeastID "	
+			"FROM products WHERE package_date AND type='2' ORDER BY yeastID");
+	query.first();
+
+	for (int i = 0 ; i < query.size() ; i++ ) {
+            if ((y + 20) > painter.device()->height()) {
+		if (i > 0)
+                    printer->newPage();
+                printHeader(&painter);
+                y = 120;
+
+		/* Report header */
+        	painter.setFont(QFont("Helvetica", 9, QFont::Bold));
+        	painter.setPen(Qt::black);
+        	painter.fillRect( 20, y,   715, 20, c_header);
+        	painter.drawText( 25, y+4,  65, 20, Qt::AlignLeft, tr("Code"));
+        	painter.drawText( 90, y+4, 180, 20, Qt::AlignLeft, tr("Name"));
+        	painter.drawText(270, y+4, 110, 20, Qt::AlignLeft, tr("Yeast"));
+        	painter.drawText(380, y+4,  60, 20, Qt::AlignHCenter, tr("Primary"));
+        	painter.drawText(440, y+4,  60, 20, Qt::AlignHCenter, tr("Secondary"));
+        	painter.drawText(500, y+4,  60, 20, Qt::AlignHCenter, tr("Tertiary"));
+		painter.drawText(560, y+4,  40, 20, Qt::AlignRight, tr("Days"));
+		painter.drawText(600, y+4,  40, 20, Qt::AlignRight, tr("OG"));
+		painter.drawText(640, y+4,  40, 20, Qt::AlignRight, tr("FG"));
+        	painter.drawText(680, y+4,  50, 20, Qt::AlignRight, tr("AA"));
+        	y += 20;
+        	painter.setFont(QFont("Helvetica", 9, QFont::Normal));
+            }
+
+	    int primary = query.value("brew_date_end").toDate().daysTo(query.value("primary_end_date").toDate());
+	    int secondary = query.value("primary_end_date").toDate().daysTo(query.value("secondary_end_date").toDate());
+	    int tertiary = query.value("secondary_end_date").toDate().daysTo(query.value("package_date").toDate());
+	    int total = query.value("brew_date_end").toDate().daysTo(query.value("package_date").toDate());
+	    double og = query.value("brew_fermenter_sg").toDouble();
+	    double fg = query.value("fg").toDouble();
+	    double aa = Utils::calc_svg(og, fg);
+
+	    painter.fillRect( 20, y,   715, 20, (i % 2) ? c_line1:c_line2);
+	    painter.drawText( 25, y+4,  65, 20, Qt::AlignLeft, query.value("code").toString());
+            painter.drawText( 90, y+4, 180, 20, Qt::AlignLeft, query.value("name").toString());
+	    painter.drawText(270, y+4, 110, 20, Qt::AlignLeft, query.value("yeastID").toString() + " " + query.value("yeastLab").toString());
+	    painter.drawText(380, y+4,  40, 20, Qt::AlignRight, QString("%1°").arg(query.value("primary_end_temp").toDouble(), 2, 'f', 1));
+            painter.drawText(420, y+4,  20, 20, Qt::AlignRight, QString("%1").arg(primary));
+	    painter.drawText(440, y+4,  40, 20, Qt::AlignRight, QString("%1°").arg(query.value("secondary_temp").toDouble(), 2, 'f', 1));
+            painter.drawText(480, y+4,  20, 20, Qt::AlignRight, QString("%1").arg(secondary));
+	    painter.drawText(500, y+4,  40, 20, Qt::AlignRight, QString("%1°").arg(query.value("tertiary_temp").toDouble(), 2, 'f', 1));
+	    painter.drawText(540, y+4,  20, 20, Qt::AlignRight, QString("%1").arg(tertiary));
+	    painter.drawText(560, y+4,  40, 20, Qt::AlignRight, QString("%1").arg(total));
+	    painter.drawText(600, y+4,  40, 20, Qt::AlignRight, QString("%1").arg(og, 4, 'f', 3, '0'));
+	    painter.drawText(640, y+4,  40, 20, Qt::AlignRight, QString("%1").arg(fg, 4, 'f', 3, '0'));
+	    painter.drawText(680, y+4,  50, 20, Qt::AlignRight, QString("%1%").arg(aa, 2, 'f', 1, '0'));
+
+	    query.next();
+            y += 20;
+	}
     }
 
     painter.end();
@@ -2232,6 +2457,12 @@
 	painter->drawText(140, 0,  500, 40, Qt::AlignLeft, recipe->name);
     } else if (p_job == PR_PRODUCT || p_job == PR_CHECKLIST) {
         painter->drawText(140, 0,  500, 40, Qt::AlignLeft, product->code + "  " + product->name);
+    } else if (p_job == PR_REP_TOTAL) {
+	painter->drawText(140, 0,  500, 40, Qt::AlignLeft, tr("Year production") + " " + my_brewery_name);
+    } else if (p_job == PR_REP_EFF) {
+	painter->drawText(140, 0,  500, 40, Qt::AlignLeft, tr("Brew efficiency") + " " + my_brewery_name);
+    } else if (p_job == PR_REP_SVG) {
+	painter->drawText(140, 0,  500, 40, Qt::AlignLeft, tr("Fermentations") + " " + my_brewery_name);
     } else {
         painter->drawText(140, 0,  500, 40, Qt::AlignLeft, "?? " + my_brewery_name);
     }
--- a/src/PrinterDialog.h	Mon Aug 01 13:05:23 2022 +0200
+++ b/src/PrinterDialog.h	Mon Aug 01 21:49:57 2022 +0200
@@ -6,7 +6,7 @@
 #include <QPainter>
 
 
-enum JobType { PR_SUPPLIES, PR_YEASTBANK, PR_RECIPE, PR_PRODUCT, PR_CHECKLIST };
+enum JobType { PR_SUPPLIES, PR_YEASTBANK, PR_RECIPE, PR_PRODUCT, PR_CHECKLIST, PR_REP_TOTAL, PR_REP_EFF, PR_REP_SVG };
 
 namespace Ui {
 class PrinterDialog;
--- a/translations/bmsapp_en.ts	Mon Aug 01 13:05:23 2022 +0200
+++ b/translations/bmsapp_en.ts	Mon Aug 01 21:49:57 2022 +0200
@@ -1109,6 +1109,11 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/EditEquipment.ui" line="1220"/>
+        <source>Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditEquipment.cpp" line="32"/>
         <source>Stainless Steel</source>
         <translation type="unfinished"></translation>
@@ -1129,46 +1134,58 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="149"/>
+        <location filename="../src/EditEquipment.cpp" line="147"/>
         <source>BMSapp - Add new equipment</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="151"/>
+        <location filename="../src/EditEquipment.cpp" line="149"/>
         <source>BMSapp - Edit equipment %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="167"/>
+        <location filename="../src/EditEquipment.cpp" line="165"/>
         <source>Edit Equipment</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="167"/>
+        <location filename="../src/EditEquipment.cpp" line="165"/>
         <source>Name empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="225"/>
-        <location filename="../src/EditEquipment.cpp" line="250"/>
+        <location filename="../src/EditEquipment.cpp" line="223"/>
+        <location filename="../src/EditEquipment.cpp" line="281"/>
+        <location filename="../src/EditEquipment.cpp" line="306"/>
         <source>Database error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="226"/>
-        <location filename="../src/EditEquipment.cpp" line="251"/>
+        <location filename="../src/EditEquipment.cpp" line="224"/>
+        <location filename="../src/EditEquipment.cpp" line="282"/>
+        <location filename="../src/EditEquipment.cpp" line="307"/>
         <source>MySQL error: %1
 %2
 %3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="299"/>
+        <location filename="../src/EditEquipment.cpp" line="296"/>
+        <source>Delete equipment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditEquipment.cpp" line="296"/>
+        <source>Delete %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditEquipment.cpp" line="355"/>
         <source>Equipment changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="299"/>
+        <location filename="../src/EditEquipment.cpp" line="355"/>
         <source>This equipment has been modified. Save changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1418,6 +1435,11 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/EditFermentable.ui" line="1152"/>
+        <source>Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditFermentable.cpp" line="33"/>
         <source>Grain</source>
         <translation type="unfinished"></translation>
@@ -1508,58 +1530,70 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="163"/>
+        <location filename="../src/EditFermentable.cpp" line="157"/>
         <source>BMSapp - Add new fermentable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="165"/>
+        <location filename="../src/EditFermentable.cpp" line="159"/>
         <source>BMSapp - Edit fermentable %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="181"/>
-        <location filename="../src/EditFermentable.cpp" line="185"/>
-        <location filename="../src/EditFermentable.cpp" line="189"/>
+        <location filename="../src/EditFermentable.cpp" line="175"/>
+        <location filename="../src/EditFermentable.cpp" line="179"/>
+        <location filename="../src/EditFermentable.cpp" line="183"/>
         <source>Edit Fermentable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="181"/>
+        <location filename="../src/EditFermentable.cpp" line="175"/>
         <source>Name empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="185"/>
+        <location filename="../src/EditFermentable.cpp" line="179"/>
         <source>Origin empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="189"/>
+        <location filename="../src/EditFermentable.cpp" line="183"/>
         <source>Supplier empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="242"/>
-        <location filename="../src/EditFermentable.cpp" line="267"/>
+        <location filename="../src/EditFermentable.cpp" line="236"/>
+        <location filename="../src/EditFermentable.cpp" line="290"/>
+        <location filename="../src/EditFermentable.cpp" line="315"/>
         <source>Database error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="243"/>
-        <location filename="../src/EditFermentable.cpp" line="268"/>
+        <location filename="../src/EditFermentable.cpp" line="237"/>
+        <location filename="../src/EditFermentable.cpp" line="291"/>
+        <location filename="../src/EditFermentable.cpp" line="316"/>
         <source>MySQL error: %1
 %2
 %3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="313"/>
+        <location filename="../src/EditFermentable.cpp" line="305"/>
+        <source>Delete fermentable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditFermentable.cpp" line="305"/>
+        <source>Delete %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditFermentable.cpp" line="361"/>
         <source>Fermentable changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="313"/>
+        <location filename="../src/EditFermentable.cpp" line="361"/>
         <source>This fermentable has been modified. Save changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1789,54 +1823,64 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="130"/>
+        <location filename="../src/EditHop.cpp" line="129"/>
         <source>BMSapp - Add new hop</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="132"/>
+        <location filename="../src/EditHop.cpp" line="131"/>
         <source>BMSapp - Edit hop %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="149"/>
-        <location filename="../src/EditHop.cpp" line="153"/>
+        <location filename="../src/EditHop.cpp" line="148"/>
+        <location filename="../src/EditHop.cpp" line="152"/>
         <source>Edit Hop</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="149"/>
+        <location filename="../src/EditHop.cpp" line="148"/>
         <source>Name empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="153"/>
+        <location filename="../src/EditHop.cpp" line="152"/>
         <source>Origin empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/EditHop.cpp" line="204"/>
+        <location filename="../src/EditHop.cpp" line="256"/>
+        <location filename="../src/EditHop.cpp" line="282"/>
+        <source>Database error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditHop.cpp" line="205"/>
-        <location filename="../src/EditHop.cpp" line="258"/>
-        <location filename="../src/EditHop.cpp" line="279"/>
-        <source>Database error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditHop.cpp" line="206"/>
-        <location filename="../src/EditHop.cpp" line="259"/>
-        <location filename="../src/EditHop.cpp" line="280"/>
+        <location filename="../src/EditHop.cpp" line="257"/>
+        <location filename="../src/EditHop.cpp" line="283"/>
         <source>MySQL error: %1
 %2
 %3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="320"/>
+        <location filename="../src/EditHop.cpp" line="272"/>
+        <source>Delete hop</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditHop.cpp" line="272"/>
+        <source>Delete %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditHop.cpp" line="323"/>
         <source>Hop changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="320"/>
+        <location filename="../src/EditHop.cpp" line="323"/>
         <source>This hop has been modified. Save changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1895,7 +1939,7 @@
     </message>
     <message>
         <location filename="../ui/EditMisc.ui" line="182"/>
-        <location filename="../src/EditMisc.cpp" line="219"/>
+        <location filename="../src/EditMisc.cpp" line="260"/>
         <source> gr</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1991,6 +2035,11 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/EditMisc.ui" line="674"/>
+        <source>Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditMisc.cpp" line="32"/>
         <source>Spice</source>
         <translation type="unfinished"></translation>
@@ -2056,51 +2105,63 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="122"/>
+        <location filename="../src/EditMisc.cpp" line="121"/>
         <source>BMSapp - Add new misc ingredient</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="124"/>
+        <location filename="../src/EditMisc.cpp" line="123"/>
         <source>BMSapp - Edit misc ingredient %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="140"/>
+        <location filename="../src/EditMisc.cpp" line="139"/>
         <source>Edit Misc</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="140"/>
+        <location filename="../src/EditMisc.cpp" line="139"/>
         <source>Name empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/EditMisc.cpp" line="176"/>
+        <location filename="../src/EditMisc.cpp" line="218"/>
+        <location filename="../src/EditMisc.cpp" line="243"/>
+        <source>Database error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditMisc.cpp" line="177"/>
-        <location filename="../src/EditMisc.cpp" line="202"/>
-        <source>Database error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditMisc.cpp" line="178"/>
-        <location filename="../src/EditMisc.cpp" line="203"/>
+        <location filename="../src/EditMisc.cpp" line="219"/>
+        <location filename="../src/EditMisc.cpp" line="244"/>
         <source>MySQL error: %1
 %2
 %3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="221"/>
+        <location filename="../src/EditMisc.cpp" line="233"/>
+        <source>Delete misc</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditMisc.cpp" line="233"/>
+        <source>Delete %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditMisc.cpp" line="262"/>
         <source> ml</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="297"/>
+        <location filename="../src/EditMisc.cpp" line="338"/>
         <source>Misc changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="297"/>
+        <location filename="../src/EditMisc.cpp" line="338"/>
         <source>The ingredient has been modified. Save changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2133,7 +2194,7 @@
         <location filename="../src/EditProductTab5.cpp" line="166"/>
         <location filename="../src/EditProductTab6.cpp" line="56"/>
         <location filename="../src/EditProductTab6.cpp" line="143"/>
-        <location filename="../src/EditProductExport.cpp" line="852"/>
+        <location filename="../src/EditProductExport.cpp" line="855"/>
         <source>Delete</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2267,8 +2328,8 @@
         <location filename="../ui/EditProduct.ui" line="10407"/>
         <location filename="../ui/EditProduct.ui" line="10767"/>
         <location filename="../ui/EditProduct.ui" line="10848"/>
-        <location filename="../src/EditProductExport.cpp" line="816"/>
-        <location filename="../src/EditProductExport.cpp" line="824"/>
+        <location filename="../src/EditProductExport.cpp" line="819"/>
+        <location filename="../src/EditProductExport.cpp" line="827"/>
         <source> L</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2545,7 +2606,7 @@
         <location filename="../ui/EditProduct.ui" line="2713"/>
         <location filename="../ui/EditProduct.ui" line="3495"/>
         <location filename="../ui/EditProduct.ui" line="3650"/>
-        <location filename="../src/EditProductExport.cpp" line="844"/>
+        <location filename="../src/EditProductExport.cpp" line="847"/>
         <source>Add</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3424,7 +3485,7 @@
     </message>
     <message>
         <location filename="../ui/EditProduct.ui" line="8320"/>
-        <location filename="../src/EditProductExport.cpp" line="783"/>
+        <location filename="../src/EditProductExport.cpp" line="786"/>
         <source>After boil</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4482,7 +4543,7 @@
         <location filename="../src/EditProductTab9.cpp" line="560"/>
         <location filename="../src/EditProductExport.cpp" line="37"/>
         <location filename="../src/EditProductExport.cpp" line="40"/>
-        <location filename="../src/EditProductExport.cpp" line="261"/>
+        <location filename="../src/EditProductExport.cpp" line="264"/>
         <source>Save File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4497,198 +4558,198 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="261"/>
+        <location filename="../src/EditProductExport.cpp" line="264"/>
         <source>XML export ready</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="313"/>
-        <location filename="../src/EditProductExport.cpp" line="315"/>
-        <location filename="../src/EditProductExport.cpp" line="411"/>
-        <location filename="../src/EditProductExport.cpp" line="413"/>
+        <location filename="../src/EditProductExport.cpp" line="316"/>
+        <location filename="../src/EditProductExport.cpp" line="318"/>
+        <location filename="../src/EditProductExport.cpp" line="414"/>
+        <location filename="../src/EditProductExport.cpp" line="416"/>
         <source>Copy Product</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="313"/>
+        <location filename="../src/EditProductExport.cpp" line="316"/>
         <source>Copy Product export ready.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="315"/>
+        <location filename="../src/EditProductExport.cpp" line="318"/>
         <source>Copy Product error.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="411"/>
+        <location filename="../src/EditProductExport.cpp" line="414"/>
         <source>Copy Product to Recipe ready.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="413"/>
+        <location filename="../src/EditProductExport.cpp" line="416"/>
         <source>Copy Product to Recipe error.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="560"/>
-        <location filename="../src/EditProductExport.cpp" line="1027"/>
+        <location filename="../src/EditProductExport.cpp" line="563"/>
+        <location filename="../src/EditProductExport.cpp" line="1030"/>
         <source>Export to forum</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="560"/>
+        <location filename="../src/EditProductExport.cpp" line="563"/>
         <source>The recipe and all data are copied to the clipboard.
 You can &quot;paste&quot; this data in the forum screen in your web browser.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="577"/>
+        <location filename="../src/EditProductExport.cpp" line="580"/>
         <source>Add a splitted batch</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="582"/>
+        <location filename="../src/EditProductExport.cpp" line="585"/>
         <source>Choose split moment in the brew process</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="589"/>
+        <location filename="../src/EditProductExport.cpp" line="592"/>
         <source>Delete the last splitted batch</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="598"/>
+        <location filename="../src/EditProductExport.cpp" line="601"/>
         <source>The read-only `product code` of the batch</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="602"/>
+        <location filename="../src/EditProductExport.cpp" line="605"/>
         <source>Batch name, click to change the name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="607"/>
+        <location filename="../src/EditProductExport.cpp" line="610"/>
         <source>Batch size, click to change the volume</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="712"/>
-        <location filename="../src/EditProductExport.cpp" line="726"/>
+        <location filename="../src/EditProductExport.cpp" line="715"/>
+        <location filename="../src/EditProductExport.cpp" line="729"/>
         <source>Split product</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="738"/>
+        <location filename="../src/EditProductExport.cpp" line="741"/>
         <source>Product name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="749"/>
+        <location filename="../src/EditProductExport.cpp" line="752"/>
         <source>Product code:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="760"/>
+        <location filename="../src/EditProductExport.cpp" line="763"/>
         <source>Available volume:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="766"/>
+        <location filename="../src/EditProductExport.cpp" line="769"/>
         <source>Current brew stage:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="777"/>
+        <location filename="../src/EditProductExport.cpp" line="780"/>
         <source>Split at moment:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="781"/>
-        <source>Not divided</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditProductExport.cpp" line="782"/>
-        <source>After mash</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../src/EditProductExport.cpp" line="784"/>
-        <source>After cooling</source>
+        <source>Not divided</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../src/EditProductExport.cpp" line="785"/>
-        <source>After primary</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditProductExport.cpp" line="786"/>
-        <source>After secondary</source>
+        <source>After mash</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../src/EditProductExport.cpp" line="787"/>
+        <source>After cooling</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditProductExport.cpp" line="788"/>
+        <source>After primary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditProductExport.cpp" line="789"/>
+        <source>After secondary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditProductExport.cpp" line="790"/>
         <source>After tertiary</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="808"/>
+        <location filename="../src/EditProductExport.cpp" line="811"/>
         <source>Volume remaining:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="826"/>
+        <location filename="../src/EditProductExport.cpp" line="829"/>
         <source>Split code</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="826"/>
+        <location filename="../src/EditProductExport.cpp" line="829"/>
         <source>Split name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="826"/>
+        <location filename="../src/EditProductExport.cpp" line="829"/>
         <source>Split volume</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1003"/>
+        <location filename="../src/EditProductExport.cpp" line="1006"/>
         <source>Export choices</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1015"/>
+        <location filename="../src/EditProductExport.cpp" line="1018"/>
         <source>Export to beerXML</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1019"/>
+        <location filename="../src/EditProductExport.cpp" line="1022"/>
         <source>Copy to product</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1023"/>
+        <location filename="../src/EditProductExport.cpp" line="1026"/>
         <source>Copy to recipe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1031"/>
+        <location filename="../src/EditProductExport.cpp" line="1034"/>
         <source>Split this batch</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1060"/>
+        <location filename="../src/EditProductExport.cpp" line="1063"/>
         <source>Printer report</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1072"/>
+        <location filename="../src/EditProductExport.cpp" line="1075"/>
         <source>Print recipe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1076"/>
+        <location filename="../src/EditProductExport.cpp" line="1079"/>
         <source>Print checklist</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4808,7 +4869,7 @@
     <message>
         <location filename="../ui/EditProfileFerment.ui" line="107"/>
         <location filename="../src/EditProfileFerment.cpp" line="172"/>
-        <location filename="../src/EditProfileFerment.cpp" line="409"/>
+        <location filename="../src/EditProfileFerment.cpp" line="444"/>
         <source>Delete</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4849,16 +4910,21 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/EditProfileFerment.ui" line="316"/>
+        <source>Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditProfileFerment.cpp" line="31"/>
         <location filename="../src/EditProfileFerment.cpp" line="135"/>
-        <location filename="../src/EditProfileFerment.cpp" line="399"/>
+        <location filename="../src/EditProfileFerment.cpp" line="434"/>
         <source>Beer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../src/EditProfileFerment.cpp" line="32"/>
         <location filename="../src/EditProfileFerment.cpp" line="136"/>
-        <location filename="../src/EditProfileFerment.cpp" line="400"/>
+        <location filename="../src/EditProfileFerment.cpp" line="435"/>
         <source>Fridge</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4898,46 +4964,58 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="204"/>
+        <location filename="../src/EditProfileFerment.cpp" line="203"/>
         <source>BMSapp - Add new fermentation profile</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="206"/>
+        <location filename="../src/EditProfileFerment.cpp" line="205"/>
         <source>BMSapp - Edit fermentation profile %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="222"/>
+        <location filename="../src/EditProfileFerment.cpp" line="221"/>
         <source>Edit Ferment</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="222"/>
+        <location filename="../src/EditProfileFerment.cpp" line="221"/>
         <source>Name empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/EditProfileFerment.cpp" line="250"/>
+        <location filename="../src/EditProfileFerment.cpp" line="286"/>
+        <location filename="../src/EditProfileFerment.cpp" line="311"/>
+        <source>Database error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditProfileFerment.cpp" line="251"/>
-        <location filename="../src/EditProfileFerment.cpp" line="276"/>
-        <source>Database error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditProfileFerment.cpp" line="252"/>
-        <location filename="../src/EditProfileFerment.cpp" line="277"/>
+        <location filename="../src/EditProfileFerment.cpp" line="287"/>
+        <location filename="../src/EditProfileFerment.cpp" line="312"/>
         <source>MySQL error: %1
 %2
 %3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="435"/>
+        <location filename="../src/EditProfileFerment.cpp" line="301"/>
+        <source>Delete fermentation profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileFerment.cpp" line="301"/>
+        <source>Delete %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileFerment.cpp" line="470"/>
         <source>Fermentation changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="435"/>
+        <location filename="../src/EditProfileFerment.cpp" line="470"/>
         <source>This fermentation profile has been modified. Save changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4982,7 +5060,7 @@
     <message>
         <location filename="../ui/EditProfileMash.ui" line="136"/>
         <location filename="../src/EditProfileMash.cpp" line="157"/>
-        <location filename="../src/EditProfileMash.cpp" line="356"/>
+        <location filename="../src/EditProfileMash.cpp" line="384"/>
         <source>Delete</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5002,6 +5080,11 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/EditProfileMash.ui" line="222"/>
+        <source>Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditProfileMash.cpp" line="81"/>
         <source>Step name</source>
         <translation type="unfinished"></translation>
@@ -5038,63 +5121,75 @@
     </message>
     <message>
         <location filename="../src/EditProfileMash.cpp" line="102"/>
-        <location filename="../src/EditProfileMash.cpp" line="344"/>
+        <location filename="../src/EditProfileMash.cpp" line="372"/>
         <source>Infusion</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../src/EditProfileMash.cpp" line="103"/>
-        <location filename="../src/EditProfileMash.cpp" line="345"/>
+        <location filename="../src/EditProfileMash.cpp" line="373"/>
         <source>Temperature</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../src/EditProfileMash.cpp" line="104"/>
-        <location filename="../src/EditProfileMash.cpp" line="346"/>
+        <location filename="../src/EditProfileMash.cpp" line="374"/>
         <source>Decoction</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="189"/>
+        <location filename="../src/EditProfileMash.cpp" line="188"/>
         <source>BMSapp - Add new mash profile</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="191"/>
+        <location filename="../src/EditProfileMash.cpp" line="190"/>
         <source>BMSapp - Edit mash profile %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="207"/>
+        <location filename="../src/EditProfileMash.cpp" line="206"/>
         <source>Edit Mash</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="207"/>
+        <location filename="../src/EditProfileMash.cpp" line="206"/>
         <source>Name empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/EditProfileMash.cpp" line="228"/>
+        <location filename="../src/EditProfileMash.cpp" line="257"/>
+        <location filename="../src/EditProfileMash.cpp" line="282"/>
+        <source>Database error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditProfileMash.cpp" line="229"/>
-        <location filename="../src/EditProfileMash.cpp" line="254"/>
-        <source>Database error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditProfileMash.cpp" line="230"/>
-        <location filename="../src/EditProfileMash.cpp" line="255"/>
+        <location filename="../src/EditProfileMash.cpp" line="258"/>
+        <location filename="../src/EditProfileMash.cpp" line="283"/>
         <source>MySQL error: %1
 %2
 %3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="382"/>
+        <location filename="../src/EditProfileMash.cpp" line="272"/>
+        <source>Delete mash profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileMash.cpp" line="272"/>
+        <source>Delete %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileMash.cpp" line="410"/>
         <source>Mash changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="382"/>
+        <location filename="../src/EditProfileMash.cpp" line="410"/>
         <source>This mash profile has been modified. Save changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5399,6 +5494,11 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/EditProfileWater.ui" line="721"/>
+        <source>Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../ui/EditProfileWater.ui" line="478"/>
         <source>Sulfate (SO4) mg/L:</source>
         <translation type="unfinished"></translation>
@@ -5419,46 +5519,58 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="96"/>
+        <location filename="../src/EditProfileWater.cpp" line="95"/>
         <source>BMSapp - Add new brewing water</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="98"/>
+        <location filename="../src/EditProfileWater.cpp" line="97"/>
         <source>BMSapp - Edit brewing water %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="114"/>
+        <location filename="../src/EditProfileWater.cpp" line="113"/>
         <source>Edit Water</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="114"/>
+        <location filename="../src/EditProfileWater.cpp" line="113"/>
         <source>Name empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/EditProfileWater.cpp" line="145"/>
+        <location filename="../src/EditProfileWater.cpp" line="184"/>
+        <location filename="../src/EditProfileWater.cpp" line="209"/>
+        <source>Database error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditProfileWater.cpp" line="146"/>
-        <location filename="../src/EditProfileWater.cpp" line="171"/>
-        <source>Database error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditProfileWater.cpp" line="147"/>
-        <location filename="../src/EditProfileWater.cpp" line="172"/>
+        <location filename="../src/EditProfileWater.cpp" line="185"/>
+        <location filename="../src/EditProfileWater.cpp" line="210"/>
         <source>MySQL error: %1
 %2
 %3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="281"/>
+        <location filename="../src/EditProfileWater.cpp" line="199"/>
+        <source>Delete water profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileWater.cpp" line="199"/>
+        <source>Delete %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileWater.cpp" line="319"/>
         <source>Water changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="281"/>
+        <location filename="../src/EditProfileWater.cpp" line="319"/>
         <source>This water profile has been modified. Save changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -6881,7 +6993,7 @@
     <message>
         <location filename="../src/EditRecipeExport.cpp" line="35"/>
         <location filename="../src/EditRecipeExport.cpp" line="37"/>
-        <location filename="../src/EditRecipeExport.cpp" line="251"/>
+        <location filename="../src/EditRecipeExport.cpp" line="254"/>
         <source>Save File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -6896,67 +7008,67 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="251"/>
+        <location filename="../src/EditRecipeExport.cpp" line="254"/>
         <source>XML export ready</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="267"/>
-        <location filename="../src/EditRecipeExport.cpp" line="269"/>
-        <location filename="../src/EditRecipeExport.cpp" line="428"/>
-        <location filename="../src/EditRecipeExport.cpp" line="430"/>
+        <location filename="../src/EditRecipeExport.cpp" line="270"/>
+        <location filename="../src/EditRecipeExport.cpp" line="272"/>
+        <location filename="../src/EditRecipeExport.cpp" line="431"/>
+        <location filename="../src/EditRecipeExport.cpp" line="433"/>
         <source>Copy Recipe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="267"/>
+        <location filename="../src/EditRecipeExport.cpp" line="270"/>
         <source>Copy Recipe export ready.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="269"/>
+        <location filename="../src/EditRecipeExport.cpp" line="272"/>
         <source>Copy Recipe error.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="428"/>
+        <location filename="../src/EditRecipeExport.cpp" line="431"/>
         <source>Copy Recipe to Product ready.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="430"/>
+        <location filename="../src/EditRecipeExport.cpp" line="433"/>
         <source>Copy Recipe to Product error.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="567"/>
-        <location filename="../src/EditRecipeExport.cpp" line="601"/>
+        <location filename="../src/EditRecipeExport.cpp" line="570"/>
+        <location filename="../src/EditRecipeExport.cpp" line="604"/>
         <source>Export to forum</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="567"/>
+        <location filename="../src/EditRecipeExport.cpp" line="570"/>
         <source>The recipe and all data are copied to the clipboard.
 You can &quot;paste&quot; this data in the forum screen in your web browser.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="574"/>
+        <location filename="../src/EditRecipeExport.cpp" line="577"/>
         <source>Export choices</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="586"/>
+        <location filename="../src/EditRecipeExport.cpp" line="589"/>
         <source>Export to beerXML</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="591"/>
+        <location filename="../src/EditRecipeExport.cpp" line="594"/>
         <source>Copy to recipe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="596"/>
+        <location filename="../src/EditRecipeExport.cpp" line="599"/>
         <source>Copy to product</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7216,6 +7328,11 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/EditWater.ui" line="885"/>
+        <source>Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../ui/EditWater.ui" line="311"/>
         <source>Unlimited stock:</source>
         <translation type="unfinished"></translation>
@@ -7251,46 +7368,58 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="105"/>
+        <location filename="../src/EditWater.cpp" line="104"/>
         <source>BMSapp - Add new brewing water</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="107"/>
+        <location filename="../src/EditWater.cpp" line="106"/>
         <source>BMSapp - Edit brewing water %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="123"/>
+        <location filename="../src/EditWater.cpp" line="122"/>
         <source>Edit Water</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="123"/>
+        <location filename="../src/EditWater.cpp" line="122"/>
         <source>Name empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/EditWater.cpp" line="158"/>
+        <location filename="../src/EditWater.cpp" line="201"/>
+        <location filename="../src/EditWater.cpp" line="226"/>
+        <source>Database error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditWater.cpp" line="159"/>
-        <location filename="../src/EditWater.cpp" line="184"/>
-        <source>Database error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditWater.cpp" line="160"/>
-        <location filename="../src/EditWater.cpp" line="185"/>
+        <location filename="../src/EditWater.cpp" line="202"/>
+        <location filename="../src/EditWater.cpp" line="227"/>
         <source>MySQL error: %1
 %2
 %3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="301"/>
+        <location filename="../src/EditWater.cpp" line="216"/>
+        <source>Delete water</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditWater.cpp" line="216"/>
+        <source>Delete %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditWater.cpp" line="343"/>
         <source>Water changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="301"/>
+        <location filename="../src/EditWater.cpp" line="343"/>
         <source>The brewing water has been modified. Save changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7469,7 +7598,7 @@
     </message>
     <message>
         <location filename="../ui/EditYeast.ui" line="738"/>
-        <location filename="../src/EditYeast.cpp" line="182"/>
+        <location filename="../src/EditYeast.cpp" line="181"/>
         <source>Billion cells/gram:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7555,6 +7684,11 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/EditYeast.ui" line="1232"/>
+        <source>Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditYeast.cpp" line="32"/>
         <source>Lager</source>
         <translation type="unfinished"></translation>
@@ -7650,92 +7784,104 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/EditYeast.cpp" line="169"/>
+        <source>Price per pack:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditYeast.cpp" line="170"/>
-        <source>Price per pack:</source>
+        <source>Inventory Packs:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../src/EditYeast.cpp" line="171"/>
-        <source>Inventory Packs:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditYeast.cpp" line="172"/>
         <source>Billion cells/pack:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/EditYeast.cpp" line="179"/>
+        <source>Price per Kg:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditYeast.cpp" line="180"/>
-        <source>Price per Kg:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditYeast.cpp" line="181"/>
         <source>Inventory gram:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/EditYeast.cpp" line="189"/>
+        <source>Price per litre:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditYeast.cpp" line="190"/>
-        <source>Price per litre:</source>
+        <source>Inventory ml:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../src/EditYeast.cpp" line="191"/>
-        <source>Inventory ml:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditYeast.cpp" line="192"/>
         <source>Billion cells/ml:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="229"/>
+        <location filename="../src/EditYeast.cpp" line="228"/>
         <source>BMSapp - Add new yeast</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="231"/>
+        <location filename="../src/EditYeast.cpp" line="230"/>
         <source>BMSapp - Edit yeast %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="247"/>
-        <location filename="../src/EditYeast.cpp" line="251"/>
+        <location filename="../src/EditYeast.cpp" line="246"/>
+        <location filename="../src/EditYeast.cpp" line="250"/>
         <source>Edit Yeast</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="247"/>
+        <location filename="../src/EditYeast.cpp" line="246"/>
         <source>Name empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="251"/>
+        <location filename="../src/EditYeast.cpp" line="250"/>
         <source>Laboratory empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/EditYeast.cpp" line="313"/>
+        <location filename="../src/EditYeast.cpp" line="375"/>
+        <location filename="../src/EditYeast.cpp" line="400"/>
+        <source>Database error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../src/EditYeast.cpp" line="314"/>
-        <location filename="../src/EditYeast.cpp" line="339"/>
-        <source>Database error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/EditYeast.cpp" line="315"/>
-        <location filename="../src/EditYeast.cpp" line="340"/>
+        <location filename="../src/EditYeast.cpp" line="376"/>
+        <location filename="../src/EditYeast.cpp" line="401"/>
         <source>MySQL error: %1
 %2
 %3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="414"/>
+        <location filename="../src/EditYeast.cpp" line="390"/>
+        <source>Delete yeast</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditYeast.cpp" line="390"/>
+        <source>Delete %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditYeast.cpp" line="475"/>
         <source>Yeast changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="414"/>
+        <location filename="../src/EditYeast.cpp" line="475"/>
         <source>The yeast has been modified. Save changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -8225,7 +8371,7 @@
     <message>
         <location filename="../src/InventoryHops.cpp" line="211"/>
         <location filename="../src/InventoryHops.cpp" line="213"/>
-        <location filename="../src/InventoryHops.cpp" line="255"/>
+        <location filename="../src/InventoryHops.cpp" line="258"/>
         <source>Save File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -8240,7 +8386,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/InventoryHops.cpp" line="255"/>
+        <location filename="../src/InventoryHops.cpp" line="258"/>
         <source>XML export ready</source>
         <translation type="unfinished"></translation>
     </message>
@@ -8601,172 +8747,192 @@
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="103"/>
-        <location filename="../ui/MainWindow.ui" line="349"/>
+        <location filename="../ui/MainWindow.ui" line="362"/>
         <source>Archive</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="119"/>
-        <location filename="../ui/MainWindow.ui" line="322"/>
+        <location filename="../ui/MainWindow.ui" line="132"/>
+        <location filename="../ui/MainWindow.ui" line="335"/>
         <source>Recipes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="142"/>
+        <location filename="../ui/MainWindow.ui" line="155"/>
         <source>Exit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="151"/>
+        <location filename="../ui/MainWindow.ui" line="164"/>
         <source>About</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="437"/>
+        <location filename="../ui/MainWindow.ui" line="450"/>
         <source>Fermenters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="455"/>
+        <location filename="../ui/MainWindow.ui" line="468"/>
         <source>iSpindels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="160"/>
+        <location filename="../ui/MainWindow.ui" line="173"/>
         <source>Suppliers</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="172"/>
+        <location filename="../ui/MainWindow.ui" line="116"/>
+        <source>Reports</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/MainWindow.ui" line="185"/>
         <source>Fermentables</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="184"/>
+        <location filename="../ui/MainWindow.ui" line="197"/>
         <source>Hops</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="196"/>
+        <location filename="../ui/MainWindow.ui" line="209"/>
         <source>Yeasts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="208"/>
+        <location filename="../ui/MainWindow.ui" line="221"/>
         <source>Miscs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="220"/>
+        <location filename="../ui/MainWindow.ui" line="233"/>
         <source>Waters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="232"/>
+        <location filename="../ui/MainWindow.ui" line="245"/>
         <source>Equipments</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="244"/>
+        <location filename="../ui/MainWindow.ui" line="257"/>
         <source>Supplies list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="256"/>
+        <location filename="../ui/MainWindow.ui" line="269"/>
         <source>Yeast bank</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="268"/>
+        <location filename="../ui/MainWindow.ui" line="281"/>
         <source>Water profiles</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="280"/>
+        <location filename="../ui/MainWindow.ui" line="293"/>
         <source>Mash schedules</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="292"/>
+        <location filename="../ui/MainWindow.ui" line="305"/>
         <source>Beer styles</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="304"/>
+        <location filename="../ui/MainWindow.ui" line="317"/>
         <source>Fermentation schedules</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="313"/>
+        <location filename="../ui/MainWindow.ui" line="326"/>
         <source>Global settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="331"/>
+        <location filename="../ui/MainWindow.ui" line="344"/>
         <source>Import beerxml</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="340"/>
+        <location filename="../ui/MainWindow.ui" line="353"/>
         <source>In Production</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="358"/>
+        <location filename="../ui/MainWindow.ui" line="371"/>
         <source>On Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="367"/>
+        <location filename="../ui/MainWindow.ui" line="380"/>
         <source>On Code</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="376"/>
+        <location filename="../ui/MainWindow.ui" line="389"/>
         <source>On Date</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="385"/>
+        <location filename="../ui/MainWindow.ui" line="398"/>
         <source>On Beerstyle</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="394"/>
+        <location filename="../ui/MainWindow.ui" line="407"/>
         <source>Import beerXML</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="399"/>
+        <location filename="../ui/MainWindow.ui" line="412"/>
         <source>dummy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="404"/>
+        <location filename="../ui/MainWindow.ui" line="417"/>
         <source>hh</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="409"/>
+        <location filename="../ui/MainWindow.ui" line="422"/>
         <source>hj</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="414"/>
+        <location filename="../ui/MainWindow.ui" line="427"/>
         <source>ll</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="419"/>
-        <location filename="../ui/MainWindow.ui" line="428"/>
+        <location filename="../ui/MainWindow.ui" line="432"/>
+        <location filename="../ui/MainWindow.ui" line="441"/>
         <source>Nodes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="446"/>
+        <location filename="../ui/MainWindow.ui" line="459"/>
         <source>Carbonation</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../ui/MainWindow.ui" line="477"/>
+        <source>Total Production</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/MainWindow.ui" line="486"/>
+        <source>Efficiency</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/MainWindow.ui" line="495"/>
+        <source>Fermentation</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ManoMeter</name>
@@ -9161,6 +9327,7 @@
         <location filename="../src/PrinterDialog.cpp" line="285"/>
         <location filename="../src/PrinterDialog.cpp" line="472"/>
         <location filename="../src/PrinterDialog.cpp" line="884"/>
+        <location filename="../src/PrinterDialog.cpp" line="2331"/>
         <source>Yeast</source>
         <translation type="unfinished"></translation>
     </message>
@@ -10328,34 +10495,142 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/PrinterDialog.cpp" line="2177"/>
+        <location filename="../src/PrinterDialog.cpp" line="2154"/>
+        <source>Number</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2155"/>
+        <source>Year</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2156"/>
+        <source>Brew sessions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2157"/>
+        <source>Brew volume</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2158"/>
+        <source>Average volume</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2220"/>
+        <location filename="../src/PrinterDialog.cpp" line="2329"/>
+        <source>Code</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2221"/>
+        <location filename="../src/PrinterDialog.cpp" line="2330"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2223"/>
+        <source>Max extract</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2224"/>
+        <source>Mash eff.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2225"/>
+        <source>Sparge eff</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2226"/>
+        <source>Boil eff</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2332"/>
+        <source>Primary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2333"/>
+        <source>Secondary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2334"/>
+        <source>Tertiary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2335"/>
+        <source>Days</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2336"/>
+        <source>OG</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2337"/>
+        <source>FG</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2338"/>
+        <source>AA</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2402"/>
         <source>Measured:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/PrinterDialog.cpp" line="2189"/>
+        <location filename="../src/PrinterDialog.cpp" line="2414"/>
         <source>%1 split the batch here!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/PrinterDialog.cpp" line="2228"/>
+        <location filename="../src/PrinterDialog.cpp" line="2453"/>
         <source>Inventory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/PrinterDialog.cpp" line="2230"/>
+        <location filename="../src/PrinterDialog.cpp" line="2455"/>
         <source>Yeastbank</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/PrinterDialog.cpp" line="2240"/>
+        <location filename="../src/PrinterDialog.cpp" line="2461"/>
+        <source>Year production</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2463"/>
+        <source>Brew efficiency</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2465"/>
+        <source>Fermentations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2471"/>
         <source>Date and time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../src/PrinterDialog.cpp" line="766"/>
-        <location filename="../src/PrinterDialog.cpp" line="2243"/>
-        <location filename="../src/PrinterDialog.cpp" line="2247"/>
+        <location filename="../src/PrinterDialog.cpp" line="2222"/>
+        <location filename="../src/PrinterDialog.cpp" line="2474"/>
+        <location filename="../src/PrinterDialog.cpp" line="2478"/>
         <source>Beer style</source>
         <translation type="unfinished"></translation>
     </message>
@@ -11130,11 +11405,11 @@
     </message>
     <message>
         <location filename="../src/database/db_recipe.cpp" line="31"/>
-        <location filename="../src/database/db_recipe.cpp" line="651"/>
-        <location filename="../src/database/db_recipe.cpp" line="684"/>
+        <location filename="../src/database/db_recipe.cpp" line="654"/>
+        <location filename="../src/database/db_recipe.cpp" line="687"/>
         <location filename="../src/database/db_product.cpp" line="31"/>
-        <location filename="../src/database/db_product.cpp" line="1005"/>
-        <location filename="../src/database/db_product.cpp" line="1038"/>
+        <location filename="../src/database/db_product.cpp" line="1008"/>
+        <location filename="../src/database/db_product.cpp" line="1041"/>
         <source>Database error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -11145,10 +11420,10 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/db_recipe.cpp" line="652"/>
-        <location filename="../src/database/db_recipe.cpp" line="685"/>
-        <location filename="../src/database/db_product.cpp" line="1006"/>
-        <location filename="../src/database/db_product.cpp" line="1039"/>
+        <location filename="../src/database/db_recipe.cpp" line="655"/>
+        <location filename="../src/database/db_recipe.cpp" line="688"/>
+        <location filename="../src/database/db_product.cpp" line="1009"/>
+        <location filename="../src/database/db_product.cpp" line="1042"/>
         <source>MySQL error: %1
 %2
 %3</source>
--- a/translations/bmsapp_nl.ts	Mon Aug 01 13:05:23 2022 +0200
+++ b/translations/bmsapp_nl.ts	Mon Aug 01 21:49:57 2022 +0200
@@ -1158,6 +1158,11 @@
         <translation>Volume naar het gistvat L:</translation>
     </message>
     <message>
+        <location filename="../ui/EditEquipment.ui" line="1220"/>
+        <source>Clone</source>
+        <translation>Kloon</translation>
+    </message>
+    <message>
         <location filename="../src/EditEquipment.cpp" line="32"/>
         <source>Stainless Steel</source>
         <translation>RVS</translation>
@@ -1178,34 +1183,36 @@
         <translation>Koper</translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="149"/>
+        <location filename="../src/EditEquipment.cpp" line="147"/>
         <source>BMSapp - Add new equipment</source>
         <translation>BMSapp - Nieuwe apparatuur</translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="151"/>
+        <location filename="../src/EditEquipment.cpp" line="149"/>
         <source>BMSapp - Edit equipment %1</source>
         <translation>BMSapp - Wijzig apparatuur %1</translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="167"/>
+        <location filename="../src/EditEquipment.cpp" line="165"/>
         <source>Edit Equipment</source>
         <translation>Wijzig apparatuur</translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="167"/>
+        <location filename="../src/EditEquipment.cpp" line="165"/>
         <source>Name empty or too short.</source>
         <translation>De naam is leeg of te kort.</translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="225"/>
-        <location filename="../src/EditEquipment.cpp" line="250"/>
+        <location filename="../src/EditEquipment.cpp" line="223"/>
+        <location filename="../src/EditEquipment.cpp" line="281"/>
+        <location filename="../src/EditEquipment.cpp" line="306"/>
         <source>Database error</source>
         <translation>Database fout</translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="226"/>
-        <location filename="../src/EditEquipment.cpp" line="251"/>
+        <location filename="../src/EditEquipment.cpp" line="224"/>
+        <location filename="../src/EditEquipment.cpp" line="282"/>
+        <location filename="../src/EditEquipment.cpp" line="307"/>
         <source>MySQL error: %1
 %2
 %3</source>
@@ -1214,12 +1221,22 @@
 %3</translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="299"/>
+        <location filename="../src/EditEquipment.cpp" line="296"/>
+        <source>Delete equipment</source>
+        <translation>Verwijder apparatuur</translation>
+    </message>
+    <message>
+        <location filename="../src/EditEquipment.cpp" line="296"/>
+        <source>Delete %1</source>
+        <translation>Verwijder %1</translation>
+    </message>
+    <message>
+        <location filename="../src/EditEquipment.cpp" line="355"/>
         <source>Equipment changed</source>
         <translation>Apparatuur gewijzigd</translation>
     </message>
     <message>
-        <location filename="../src/EditEquipment.cpp" line="299"/>
+        <location filename="../src/EditEquipment.cpp" line="355"/>
         <source>This equipment has been modified. Save changes?</source>
         <translation>Deze installatie is gewijzigd. Wijzigingen opslaan?</translation>
     </message>
@@ -1487,6 +1504,11 @@
         <translation>Verwijder de productie datum</translation>
     </message>
     <message>
+        <location filename="../ui/EditFermentable.ui" line="1152"/>
+        <source>Clone</source>
+        <translation>Kloon</translation>
+    </message>
+    <message>
         <location filename="../src/EditFermentable.cpp" line="33"/>
         <source>Grain</source>
         <translation>Mout</translation>
@@ -1577,46 +1599,48 @@
         <translation>Fusten</translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="163"/>
+        <location filename="../src/EditFermentable.cpp" line="157"/>
         <source>BMSapp - Add new fermentable</source>
         <translation>BMSapp - Nieuw vergistbaar ingredient</translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="165"/>
+        <location filename="../src/EditFermentable.cpp" line="159"/>
         <source>BMSapp - Edit fermentable %1</source>
         <translation>BMSapp - Wijzig vergistbaar ingredient %1</translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="181"/>
-        <location filename="../src/EditFermentable.cpp" line="185"/>
-        <location filename="../src/EditFermentable.cpp" line="189"/>
+        <location filename="../src/EditFermentable.cpp" line="175"/>
+        <location filename="../src/EditFermentable.cpp" line="179"/>
+        <location filename="../src/EditFermentable.cpp" line="183"/>
         <source>Edit Fermentable</source>
         <translation>Wijzig vergistbaar ingredient</translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="181"/>
+        <location filename="../src/EditFermentable.cpp" line="175"/>
         <source>Name empty or too short.</source>
         <translation>De naam is leeg of te kort.</translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="185"/>
+        <location filename="../src/EditFermentable.cpp" line="179"/>
         <source>Origin empty or too short.</source>
         <translation>Herkomst leeg of te kort.</translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="189"/>
+        <location filename="../src/EditFermentable.cpp" line="183"/>
         <source>Supplier empty or too short.</source>
         <translation>Leverancier leeg of te kort.</translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="242"/>
-        <location filename="../src/EditFermentable.cpp" line="267"/>
+        <location filename="../src/EditFermentable.cpp" line="236"/>
+        <location filename="../src/EditFermentable.cpp" line="290"/>
+        <location filename="../src/EditFermentable.cpp" line="315"/>
         <source>Database error</source>
         <translation>Database fout</translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="243"/>
-        <location filename="../src/EditFermentable.cpp" line="268"/>
+        <location filename="../src/EditFermentable.cpp" line="237"/>
+        <location filename="../src/EditFermentable.cpp" line="291"/>
+        <location filename="../src/EditFermentable.cpp" line="316"/>
         <source>MySQL error: %1
 %2
 %3</source>
@@ -1625,12 +1649,22 @@
 %3</translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="313"/>
+        <location filename="../src/EditFermentable.cpp" line="305"/>
+        <source>Delete fermentable</source>
+        <translation>Verwijder vergistbaar ingredient</translation>
+    </message>
+    <message>
+        <location filename="../src/EditFermentable.cpp" line="305"/>
+        <source>Delete %1</source>
+        <translation>Verwijder %1</translation>
+    </message>
+    <message>
+        <location filename="../src/EditFermentable.cpp" line="361"/>
         <source>Fermentable changed</source>
         <translation>Vergistbaar ingredient gewijzigd</translation>
     </message>
     <message>
-        <location filename="../src/EditFermentable.cpp" line="313"/>
+        <location filename="../src/EditFermentable.cpp" line="361"/>
         <source>This fermentable has been modified. Save changes?</source>
         <translation>Dit vergistbaar ingredient is gewijzigd. Wijzigingen opslaan?</translation>
     </message>
@@ -1907,12 +1941,12 @@
         <translation type="vanished">Extract</translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="130"/>
+        <location filename="../src/EditHop.cpp" line="129"/>
         <source>BMSapp - Add new hop</source>
         <translation>BMSapp - Nieuwe hop</translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="132"/>
+        <location filename="../src/EditHop.cpp" line="131"/>
         <source>BMSapp - Edit hop %1</source>
         <translation>BMSapp - Wijzig hop %1</translation>
     </message>
@@ -1921,32 +1955,32 @@
         <translation type="vanished"> L</translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="149"/>
-        <location filename="../src/EditHop.cpp" line="153"/>
+        <location filename="../src/EditHop.cpp" line="148"/>
+        <location filename="../src/EditHop.cpp" line="152"/>
         <source>Edit Hop</source>
         <translation>Wijzig hop</translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="149"/>
+        <location filename="../src/EditHop.cpp" line="148"/>
         <source>Name empty or too short.</source>
         <translation>De naam is leeg of te kort.</translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="153"/>
+        <location filename="../src/EditHop.cpp" line="152"/>
         <source>Origin empty or too short.</source>
         <translation>Herkomst leeg of te kort.</translation>
     </message>
     <message>
+        <location filename="../src/EditHop.cpp" line="204"/>
+        <location filename="../src/EditHop.cpp" line="256"/>
+        <location filename="../src/EditHop.cpp" line="282"/>
+        <source>Database error</source>
+        <translation>Database fout</translation>
+    </message>
+    <message>
         <location filename="../src/EditHop.cpp" line="205"/>
-        <location filename="../src/EditHop.cpp" line="258"/>
-        <location filename="../src/EditHop.cpp" line="279"/>
-        <source>Database error</source>
-        <translation>Database fout</translation>
-    </message>
-    <message>
-        <location filename="../src/EditHop.cpp" line="206"/>
-        <location filename="../src/EditHop.cpp" line="259"/>
-        <location filename="../src/EditHop.cpp" line="280"/>
+        <location filename="../src/EditHop.cpp" line="257"/>
+        <location filename="../src/EditHop.cpp" line="283"/>
         <source>MySQL error: %1
 %2
 %3</source>
@@ -1955,12 +1989,22 @@
 %3</translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="320"/>
+        <location filename="../src/EditHop.cpp" line="272"/>
+        <source>Delete hop</source>
+        <translation>Verwijder hop</translation>
+    </message>
+    <message>
+        <location filename="../src/EditHop.cpp" line="272"/>
+        <source>Delete %1</source>
+        <translation>Verwijder %1</translation>
+    </message>
+    <message>
+        <location filename="../src/EditHop.cpp" line="323"/>
         <source>Hop changed</source>
         <translation>Hop gewijzigd</translation>
     </message>
     <message>
-        <location filename="../src/EditHop.cpp" line="320"/>
+        <location filename="../src/EditHop.cpp" line="323"/>
         <source>This hop has been modified. Save changes?</source>
         <translation>Deze hop is gewijzigd. Wijzigingen opslaan?</translation>
     </message>
@@ -2025,7 +2069,7 @@
     </message>
     <message>
         <location filename="../ui/EditMisc.ui" line="182"/>
-        <location filename="../src/EditMisc.cpp" line="219"/>
+        <location filename="../src/EditMisc.cpp" line="260"/>
         <source> gr</source>
         <translation> gr</translation>
     </message>
@@ -2121,6 +2165,11 @@
         <translation>Zet de tht datum op vandaag.</translation>
     </message>
     <message>
+        <location filename="../ui/EditMisc.ui" line="674"/>
+        <source>Clone</source>
+        <translation>Kloon</translation>
+    </message>
+    <message>
         <location filename="../src/EditMisc.cpp" line="32"/>
         <source>Spice</source>
         <translation>Specerij</translation>
@@ -2186,34 +2235,36 @@
         <translation>Bottelen</translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="122"/>
+        <location filename="../src/EditMisc.cpp" line="121"/>
         <source>BMSapp - Add new misc ingredient</source>
         <translation>BMSapp - Nieuw overig ingredient</translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="124"/>
+        <location filename="../src/EditMisc.cpp" line="123"/>
         <source>BMSapp - Edit misc ingredient %1</source>
         <translation>BMSapp - Wijzig overig ingredient %1</translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="140"/>
+        <location filename="../src/EditMisc.cpp" line="139"/>
         <source>Edit Misc</source>
         <translation>Wijzig ingredient</translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="140"/>
+        <location filename="../src/EditMisc.cpp" line="139"/>
         <source>Name empty or too short.</source>
         <translation>De naam is leeg of te kort.</translation>
     </message>
     <message>
+        <location filename="../src/EditMisc.cpp" line="176"/>
+        <location filename="../src/EditMisc.cpp" line="218"/>
+        <location filename="../src/EditMisc.cpp" line="243"/>
+        <source>Database error</source>
+        <translation>Database fout</translation>
+    </message>
+    <message>
         <location filename="../src/EditMisc.cpp" line="177"/>
-        <location filename="../src/EditMisc.cpp" line="202"/>
-        <source>Database error</source>
-        <translation>Database fout</translation>
-    </message>
-    <message>
-        <location filename="../src/EditMisc.cpp" line="178"/>
-        <location filename="../src/EditMisc.cpp" line="203"/>
+        <location filename="../src/EditMisc.cpp" line="219"/>
+        <location filename="../src/EditMisc.cpp" line="244"/>
         <source>MySQL error: %1
 %2
 %3</source>
@@ -2222,17 +2273,27 @@
 %3</translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="221"/>
+        <location filename="../src/EditMisc.cpp" line="233"/>
+        <source>Delete misc</source>
+        <translation>Verwijder divers ingredient</translation>
+    </message>
+    <message>
+        <location filename="../src/EditMisc.cpp" line="233"/>
+        <source>Delete %1</source>
+        <translation>Verwijder %1</translation>
+    </message>
+    <message>
+        <location filename="../src/EditMisc.cpp" line="262"/>
         <source> ml</source>
         <translation> ml</translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="297"/>
+        <location filename="../src/EditMisc.cpp" line="338"/>
         <source>Misc changed</source>
         <translation>Ingredient gewijzigd</translation>
     </message>
     <message>
-        <location filename="../src/EditMisc.cpp" line="297"/>
+        <location filename="../src/EditMisc.cpp" line="338"/>
         <source>The ingredient has been modified. Save changes?</source>
         <translation>Dit ingredient is gewijzigd. Wijzigingen opslaan?</translation>
     </message>
@@ -2271,7 +2332,7 @@
         <location filename="../src/EditProductTab5.cpp" line="166"/>
         <location filename="../src/EditProductTab6.cpp" line="56"/>
         <location filename="../src/EditProductTab6.cpp" line="143"/>
-        <location filename="../src/EditProductExport.cpp" line="852"/>
+        <location filename="../src/EditProductExport.cpp" line="855"/>
         <source>Delete</source>
         <translation>Verwijder</translation>
     </message>
@@ -2405,8 +2466,8 @@
         <location filename="../ui/EditProduct.ui" line="10407"/>
         <location filename="../ui/EditProduct.ui" line="10767"/>
         <location filename="../ui/EditProduct.ui" line="10848"/>
-        <location filename="../src/EditProductExport.cpp" line="816"/>
-        <location filename="../src/EditProductExport.cpp" line="824"/>
+        <location filename="../src/EditProductExport.cpp" line="819"/>
+        <location filename="../src/EditProductExport.cpp" line="827"/>
         <source> L</source>
         <translation> L</translation>
     </message>
@@ -2683,7 +2744,7 @@
         <location filename="../ui/EditProduct.ui" line="2713"/>
         <location filename="../ui/EditProduct.ui" line="3495"/>
         <location filename="../ui/EditProduct.ui" line="3650"/>
-        <location filename="../src/EditProductExport.cpp" line="844"/>
+        <location filename="../src/EditProductExport.cpp" line="847"/>
         <source>Add</source>
         <translation>Nieuw</translation>
     </message>
@@ -3588,7 +3649,7 @@
     </message>
     <message>
         <location filename="../ui/EditProduct.ui" line="8320"/>
-        <location filename="../src/EditProductExport.cpp" line="783"/>
+        <location filename="../src/EditProductExport.cpp" line="786"/>
         <source>After boil</source>
         <translation>Einde koken</translation>
     </message>
@@ -4785,7 +4846,7 @@
         <location filename="../src/EditProductTab9.cpp" line="560"/>
         <location filename="../src/EditProductExport.cpp" line="37"/>
         <location filename="../src/EditProductExport.cpp" line="40"/>
-        <location filename="../src/EditProductExport.cpp" line="261"/>
+        <location filename="../src/EditProductExport.cpp" line="264"/>
         <source>Save File</source>
         <translation>Bestand opslaan</translation>
     </message>
@@ -4800,20 +4861,20 @@
         <translation>Geen XML bestand gekozen.</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="261"/>
+        <location filename="../src/EditProductExport.cpp" line="264"/>
         <source>XML export ready</source>
         <translation>XML uitvoer gereed</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="313"/>
-        <location filename="../src/EditProductExport.cpp" line="315"/>
-        <location filename="../src/EditProductExport.cpp" line="411"/>
-        <location filename="../src/EditProductExport.cpp" line="413"/>
+        <location filename="../src/EditProductExport.cpp" line="316"/>
+        <location filename="../src/EditProductExport.cpp" line="318"/>
+        <location filename="../src/EditProductExport.cpp" line="414"/>
+        <location filename="../src/EditProductExport.cpp" line="416"/>
         <source>Copy Product</source>
         <translation>Kopieer Product</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="313"/>
+        <location filename="../src/EditProductExport.cpp" line="316"/>
         <source>Copy Product export ready.</source>
         <translation>Kopie Product export gereed.</translation>
     </message>
@@ -4822,7 +4883,7 @@
         <translation type="vanished">Kopieer Product</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="315"/>
+        <location filename="../src/EditProductExport.cpp" line="318"/>
         <source>Copy Product error.</source>
         <translation>Kopieer Product fout.</translation>
     </message>
@@ -4831,176 +4892,176 @@
         <translation type="vanished">Kopieer Product naar Recept gereed.</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="411"/>
+        <location filename="../src/EditProductExport.cpp" line="414"/>
         <source>Copy Product to Recipe ready.</source>
         <translation>Kopieer Product naar Recept gereed.</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="413"/>
+        <location filename="../src/EditProductExport.cpp" line="416"/>
         <source>Copy Product to Recipe error.</source>
         <translation>Kopieer Product naar Recept fout.</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="560"/>
-        <location filename="../src/EditProductExport.cpp" line="1027"/>
+        <location filename="../src/EditProductExport.cpp" line="563"/>
+        <location filename="../src/EditProductExport.cpp" line="1030"/>
         <source>Export to forum</source>
         <translation>Exporteer naar Forum</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="560"/>
+        <location filename="../src/EditProductExport.cpp" line="563"/>
         <source>The recipe and all data are copied to the clipboard.
 You can &quot;paste&quot; this data in the forum screen in your web browser.</source>
         <translation>Het recept en alle gegevens zijn gekopieerd naar het klemboard.
 Je kunt deze gegevens &quot;plakken&quot; in het forum scherm in je web browser.</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="577"/>
+        <location filename="../src/EditProductExport.cpp" line="580"/>
         <source>Add a splitted batch</source>
         <translation>Voeg een split batch toe</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="582"/>
+        <location filename="../src/EditProductExport.cpp" line="585"/>
         <source>Choose split moment in the brew process</source>
         <translation>Kies een splits moment in het brouw proces</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="589"/>
+        <location filename="../src/EditProductExport.cpp" line="592"/>
         <source>Delete the last splitted batch</source>
         <translation>Verwijder de laatste gesplitste batch</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="598"/>
+        <location filename="../src/EditProductExport.cpp" line="601"/>
         <source>The read-only `product code` of the batch</source>
         <translation>De alleen lezen `product code` van de batch</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="602"/>
+        <location filename="../src/EditProductExport.cpp" line="605"/>
         <source>Batch name, click to change the name</source>
         <translation>Batch naam, klik om de naam te wijzigen</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="607"/>
+        <location filename="../src/EditProductExport.cpp" line="610"/>
         <source>Batch size, click to change the volume</source>
         <translation>Batch volume, klik om het volume te wijzigen</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="712"/>
-        <location filename="../src/EditProductExport.cpp" line="726"/>
+        <location filename="../src/EditProductExport.cpp" line="715"/>
+        <location filename="../src/EditProductExport.cpp" line="729"/>
         <source>Split product</source>
         <translation>Splits product</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="738"/>
+        <location filename="../src/EditProductExport.cpp" line="741"/>
         <source>Product name:</source>
         <translation>Product naam:</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="749"/>
+        <location filename="../src/EditProductExport.cpp" line="752"/>
         <source>Product code:</source>
         <translation>Product code:</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="760"/>
+        <location filename="../src/EditProductExport.cpp" line="763"/>
         <source>Available volume:</source>
         <translation>Beschikbaar volume:</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="766"/>
+        <location filename="../src/EditProductExport.cpp" line="769"/>
         <source>Current brew stage:</source>
         <translation>Huidige brouw fase:</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="777"/>
+        <location filename="../src/EditProductExport.cpp" line="780"/>
         <source>Split at moment:</source>
         <translation>Splits op moment:</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="781"/>
-        <source>Not divided</source>
-        <translation>Niet gesplitst</translation>
-    </message>
-    <message>
-        <location filename="../src/EditProductExport.cpp" line="782"/>
-        <source>After mash</source>
-        <translation>Na maischen</translation>
-    </message>
-    <message>
         <location filename="../src/EditProductExport.cpp" line="784"/>
-        <source>After cooling</source>
-        <translation>Na koelen</translation>
+        <source>Not divided</source>
+        <translation>Niet gesplitst</translation>
     </message>
     <message>
         <location filename="../src/EditProductExport.cpp" line="785"/>
-        <source>After primary</source>
-        <translation>Na hoofdgisting</translation>
-    </message>
-    <message>
-        <location filename="../src/EditProductExport.cpp" line="786"/>
-        <source>After secondary</source>
-        <translation>Na nagisting</translation>
+        <source>After mash</source>
+        <translation>Na maischen</translation>
     </message>
     <message>
         <location filename="../src/EditProductExport.cpp" line="787"/>
+        <source>After cooling</source>
+        <translation>Na koelen</translation>
+    </message>
+    <message>
+        <location filename="../src/EditProductExport.cpp" line="788"/>
+        <source>After primary</source>
+        <translation>Na hoofdgisting</translation>
+    </message>
+    <message>
+        <location filename="../src/EditProductExport.cpp" line="789"/>
+        <source>After secondary</source>
+        <translation>Na nagisting</translation>
+    </message>
+    <message>
+        <location filename="../src/EditProductExport.cpp" line="790"/>
         <source>After tertiary</source>
         <translation>Na lageren</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="808"/>
+        <location filename="../src/EditProductExport.cpp" line="811"/>
         <source>Volume remaining:</source>
         <translation>Resterend volume:</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="826"/>
+        <location filename="../src/EditProductExport.cpp" line="829"/>
         <source>Split code</source>
         <translation>Splits code</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="826"/>
+        <location filename="../src/EditProductExport.cpp" line="829"/>
         <source>Split name</source>
         <translation>Splits naam</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="826"/>
+        <location filename="../src/EditProductExport.cpp" line="829"/>
         <source>Split volume</source>
         <translation>Splits volume</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1003"/>
+        <location filename="../src/EditProductExport.cpp" line="1006"/>
         <source>Export choices</source>
         <translation>Export keuzes</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1015"/>
+        <location filename="../src/EditProductExport.cpp" line="1018"/>
         <source>Export to beerXML</source>
         <translation>Exporteer naar beerXML</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1019"/>
+        <location filename="../src/EditProductExport.cpp" line="1022"/>
         <source>Copy to product</source>
         <translation>Kopieer naar Product</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1023"/>
+        <location filename="../src/EditProductExport.cpp" line="1026"/>
         <source>Copy to recipe</source>
         <translation>Kopieer naar Recept</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1031"/>
+        <location filename="../src/EditProductExport.cpp" line="1034"/>
         <source>Split this batch</source>
         <translation>Splits deze batch</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1060"/>
+        <location filename="../src/EditProductExport.cpp" line="1063"/>
         <source>Printer report</source>
         <translation>Print rapporten</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1072"/>
+        <location filename="../src/EditProductExport.cpp" line="1075"/>
         <source>Print recipe</source>
         <translation>Print recept</translation>
     </message>
     <message>
-        <location filename="../src/EditProductExport.cpp" line="1076"/>
+        <location filename="../src/EditProductExport.cpp" line="1079"/>
         <source>Print checklist</source>
         <translation>Print werklijst</translation>
     </message>
@@ -5172,7 +5233,7 @@
     <message>
         <location filename="../ui/EditProfileFerment.ui" line="107"/>
         <location filename="../src/EditProfileFerment.cpp" line="172"/>
-        <location filename="../src/EditProfileFerment.cpp" line="409"/>
+        <location filename="../src/EditProfileFerment.cpp" line="444"/>
         <source>Delete</source>
         <translation>Verwijder</translation>
     </message>
@@ -5213,16 +5274,21 @@
         <translation>Sensor:</translation>
     </message>
     <message>
+        <location filename="../ui/EditProfileFerment.ui" line="316"/>
+        <source>Clone</source>
+        <translation>Kloon</translation>
+    </message>
+    <message>
         <location filename="../src/EditProfileFerment.cpp" line="31"/>
         <location filename="../src/EditProfileFerment.cpp" line="135"/>
-        <location filename="../src/EditProfileFerment.cpp" line="399"/>
+        <location filename="../src/EditProfileFerment.cpp" line="434"/>
         <source>Beer</source>
         <translation>Bier</translation>
     </message>
     <message>
         <location filename="../src/EditProfileFerment.cpp" line="32"/>
         <location filename="../src/EditProfileFerment.cpp" line="136"/>
-        <location filename="../src/EditProfileFerment.cpp" line="400"/>
+        <location filename="../src/EditProfileFerment.cpp" line="435"/>
         <source>Fridge</source>
         <translation>Koelkast</translation>
     </message>
@@ -5262,34 +5328,36 @@
         <translation>Toets</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="204"/>
+        <location filename="../src/EditProfileFerment.cpp" line="203"/>
         <source>BMSapp - Add new fermentation profile</source>
         <translation>BMSapp - Nieuw vergisting profiel</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="206"/>
+        <location filename="../src/EditProfileFerment.cpp" line="205"/>
         <source>BMSapp - Edit fermentation profile %1</source>
         <translation>BMSadd - Wijzig vergisting profiel %1</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="222"/>
+        <location filename="../src/EditProfileFerment.cpp" line="221"/>
         <source>Edit Ferment</source>
         <translation>Wijzig vergisting</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="222"/>
+        <location filename="../src/EditProfileFerment.cpp" line="221"/>
         <source>Name empty or too short.</source>
         <translation>De naam is leeg of te kort.</translation>
     </message>
     <message>
+        <location filename="../src/EditProfileFerment.cpp" line="250"/>
+        <location filename="../src/EditProfileFerment.cpp" line="286"/>
+        <location filename="../src/EditProfileFerment.cpp" line="311"/>
+        <source>Database error</source>
+        <translation>Database fout</translation>
+    </message>
+    <message>
         <location filename="../src/EditProfileFerment.cpp" line="251"/>
-        <location filename="../src/EditProfileFerment.cpp" line="276"/>
-        <source>Database error</source>
-        <translation>Database fout</translation>
-    </message>
-    <message>
-        <location filename="../src/EditProfileFerment.cpp" line="252"/>
-        <location filename="../src/EditProfileFerment.cpp" line="277"/>
+        <location filename="../src/EditProfileFerment.cpp" line="287"/>
+        <location filename="../src/EditProfileFerment.cpp" line="312"/>
         <source>MySQL error: %1
 %2
 %3</source>
@@ -5298,12 +5366,22 @@
 %3</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="435"/>
+        <location filename="../src/EditProfileFerment.cpp" line="301"/>
+        <source>Delete fermentation profile</source>
+        <translation>Verwijder vergisting profiel</translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileFerment.cpp" line="301"/>
+        <source>Delete %1</source>
+        <translation>Verwijder %1</translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileFerment.cpp" line="470"/>
         <source>Fermentation changed</source>
         <translation>Vergisting gewijzigd</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileFerment.cpp" line="435"/>
+        <location filename="../src/EditProfileFerment.cpp" line="470"/>
         <source>This fermentation profile has been modified. Save changes?</source>
         <translation>Dit vergisting profiel is gewijzigd. Wijzigingen opslaan?</translation>
     </message>
@@ -5348,7 +5426,7 @@
     <message>
         <location filename="../ui/EditProfileMash.ui" line="136"/>
         <location filename="../src/EditProfileMash.cpp" line="157"/>
-        <location filename="../src/EditProfileMash.cpp" line="356"/>
+        <location filename="../src/EditProfileMash.cpp" line="384"/>
         <source>Delete</source>
         <translation>Verwijder</translation>
     </message>
@@ -5368,6 +5446,11 @@
         <translation>Nieuwe stap</translation>
     </message>
     <message>
+        <location filename="../ui/EditProfileMash.ui" line="222"/>
+        <source>Clone</source>
+        <translation>Kloon</translation>
+    </message>
+    <message>
         <location filename="../src/EditProfileMash.cpp" line="81"/>
         <source>Step name</source>
         <translation>Stap naam</translation>
@@ -5404,51 +5487,53 @@
     </message>
     <message>
         <location filename="../src/EditProfileMash.cpp" line="102"/>
-        <location filename="../src/EditProfileMash.cpp" line="344"/>
+        <location filename="../src/EditProfileMash.cpp" line="372"/>
         <source>Infusion</source>
         <translation>Infusie</translation>
     </message>
     <message>
         <location filename="../src/EditProfileMash.cpp" line="103"/>
-        <location filename="../src/EditProfileMash.cpp" line="345"/>
+        <location filename="../src/EditProfileMash.cpp" line="373"/>
         <source>Temperature</source>
         <translation>Verwarmen</translation>
     </message>
     <message>
         <location filename="../src/EditProfileMash.cpp" line="104"/>
-        <location filename="../src/EditProfileMash.cpp" line="346"/>
+        <location filename="../src/EditProfileMash.cpp" line="374"/>
         <source>Decoction</source>
         <translation>Decoctie</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="189"/>
+        <location filename="../src/EditProfileMash.cpp" line="188"/>
         <source>BMSapp - Add new mash profile</source>
         <translation>BMSapp - Nieuw maisch profiel</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="191"/>
+        <location filename="../src/EditProfileMash.cpp" line="190"/>
         <source>BMSapp - Edit mash profile %1</source>
         <translation>BMSapp - Wijzig maisch profiel %1</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="207"/>
+        <location filename="../src/EditProfileMash.cpp" line="206"/>
         <source>Edit Mash</source>
         <translation>Wijzig maisch</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="207"/>
+        <location filename="../src/EditProfileMash.cpp" line="206"/>
         <source>Name empty or too short.</source>
         <translation>De naam is leeg of te kort.</translation>
     </message>
     <message>
+        <location filename="../src/EditProfileMash.cpp" line="228"/>
+        <location filename="../src/EditProfileMash.cpp" line="257"/>
+        <location filename="../src/EditProfileMash.cpp" line="282"/>
+        <source>Database error</source>
+        <translation>Database fout</translation>
+    </message>
+    <message>
         <location filename="../src/EditProfileMash.cpp" line="229"/>
-        <location filename="../src/EditProfileMash.cpp" line="254"/>
-        <source>Database error</source>
-        <translation>Database fout</translation>
-    </message>
-    <message>
-        <location filename="../src/EditProfileMash.cpp" line="230"/>
-        <location filename="../src/EditProfileMash.cpp" line="255"/>
+        <location filename="../src/EditProfileMash.cpp" line="258"/>
+        <location filename="../src/EditProfileMash.cpp" line="283"/>
         <source>MySQL error: %1
 %2
 %3</source>
@@ -5457,12 +5542,22 @@
 %3</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="382"/>
+        <location filename="../src/EditProfileMash.cpp" line="272"/>
+        <source>Delete mash profile</source>
+        <translation>Verwijder maisch profiel</translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileMash.cpp" line="272"/>
+        <source>Delete %1</source>
+        <translation>Verwijder %1</translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileMash.cpp" line="410"/>
         <source>Mash changed</source>
         <translation>Maisch gewijzigd</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileMash.cpp" line="382"/>
+        <location filename="../src/EditProfileMash.cpp" line="410"/>
         <source>This mash profile has been modified. Save changes?</source>
         <translation>Dit maisch schema is gewijzigd, Wijzigingen opslaan?</translation>
     </message>
@@ -5789,6 +5884,11 @@
         <translation>Carbonaat (CO3) mg/L:</translation>
     </message>
     <message>
+        <location filename="../ui/EditProfileWater.ui" line="721"/>
+        <source>Clone</source>
+        <translation>Kloon</translation>
+    </message>
+    <message>
         <source>Acid pH:</source>
         <translation type="vanished">Zuurgraad pH:</translation>
     </message>
@@ -5817,34 +5917,36 @@
         <translation>Ionen balans meq/L:</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="96"/>
+        <location filename="../src/EditProfileWater.cpp" line="95"/>
         <source>BMSapp - Add new brewing water</source>
         <translation>BMSapp - Nieuw brouwwater</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="98"/>
+        <location filename="../src/EditProfileWater.cpp" line="97"/>
         <source>BMSapp - Edit brewing water %1</source>
         <translation>BMSapp - Wijzig brouwwater %1</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="114"/>
+        <location filename="../src/EditProfileWater.cpp" line="113"/>
         <source>Edit Water</source>
         <translation>Wijzig water</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="114"/>
+        <location filename="../src/EditProfileWater.cpp" line="113"/>
         <source>Name empty or too short.</source>
         <translation>De naam is leeg of te kort.</translation>
     </message>
     <message>
+        <location filename="../src/EditProfileWater.cpp" line="145"/>
+        <location filename="../src/EditProfileWater.cpp" line="184"/>
+        <location filename="../src/EditProfileWater.cpp" line="209"/>
+        <source>Database error</source>
+        <translation>Database fout</translation>
+    </message>
+    <message>
         <location filename="../src/EditProfileWater.cpp" line="146"/>
-        <location filename="../src/EditProfileWater.cpp" line="171"/>
-        <source>Database error</source>
-        <translation>Database fout</translation>
-    </message>
-    <message>
-        <location filename="../src/EditProfileWater.cpp" line="147"/>
-        <location filename="../src/EditProfileWater.cpp" line="172"/>
+        <location filename="../src/EditProfileWater.cpp" line="185"/>
+        <location filename="../src/EditProfileWater.cpp" line="210"/>
         <source>MySQL error: %1
 %2
 %3</source>
@@ -5853,12 +5955,22 @@
 %3</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="281"/>
+        <location filename="../src/EditProfileWater.cpp" line="199"/>
+        <source>Delete water profile</source>
+        <translation>Verwijder water profiel</translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileWater.cpp" line="199"/>
+        <source>Delete %1</source>
+        <translation>Verwijder %1</translation>
+    </message>
+    <message>
+        <location filename="../src/EditProfileWater.cpp" line="319"/>
         <source>Water changed</source>
         <translation>Water gewijzigd</translation>
     </message>
     <message>
-        <location filename="../src/EditProfileWater.cpp" line="281"/>
+        <location filename="../src/EditProfileWater.cpp" line="319"/>
         <source>This water profile has been modified. Save changes?</source>
         <translation>Dit water profiel is gewijzigd. Wijzigingen opslaan?</translation>
     </message>
@@ -7368,7 +7480,7 @@
     <message>
         <location filename="../src/EditRecipeExport.cpp" line="35"/>
         <location filename="../src/EditRecipeExport.cpp" line="37"/>
-        <location filename="../src/EditRecipeExport.cpp" line="251"/>
+        <location filename="../src/EditRecipeExport.cpp" line="254"/>
         <source>Save File</source>
         <translation>Bestand opslaan</translation>
     </message>
@@ -7383,68 +7495,68 @@
         <translation>Geen XML bestand gekozen.</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="251"/>
+        <location filename="../src/EditRecipeExport.cpp" line="254"/>
         <source>XML export ready</source>
         <translation>XML uitvoer gereed</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="267"/>
-        <location filename="../src/EditRecipeExport.cpp" line="269"/>
-        <location filename="../src/EditRecipeExport.cpp" line="428"/>
-        <location filename="../src/EditRecipeExport.cpp" line="430"/>
+        <location filename="../src/EditRecipeExport.cpp" line="270"/>
+        <location filename="../src/EditRecipeExport.cpp" line="272"/>
+        <location filename="../src/EditRecipeExport.cpp" line="431"/>
+        <location filename="../src/EditRecipeExport.cpp" line="433"/>
         <source>Copy Recipe</source>
         <translation>Kopieer Recept</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="267"/>
+        <location filename="../src/EditRecipeExport.cpp" line="270"/>
         <source>Copy Recipe export ready.</source>
         <translation>Kopie Recept export gereed.</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="269"/>
+        <location filename="../src/EditRecipeExport.cpp" line="272"/>
         <source>Copy Recipe error.</source>
         <translation>Kopieer Recept fout.</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="428"/>
+        <location filename="../src/EditRecipeExport.cpp" line="431"/>
         <source>Copy Recipe to Product ready.</source>
         <translation>Kopieer Recept naar Product gereed.</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="430"/>
+        <location filename="../src/EditRecipeExport.cpp" line="433"/>
         <source>Copy Recipe to Product error.</source>
         <translation>Kopieer Recept naar Product fout.</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="567"/>
-        <location filename="../src/EditRecipeExport.cpp" line="601"/>
+        <location filename="../src/EditRecipeExport.cpp" line="570"/>
+        <location filename="../src/EditRecipeExport.cpp" line="604"/>
         <source>Export to forum</source>
         <translation>Exporteer naar Forum</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="567"/>
+        <location filename="../src/EditRecipeExport.cpp" line="570"/>
         <source>The recipe and all data are copied to the clipboard.
 You can &quot;paste&quot; this data in the forum screen in your web browser.</source>
         <translation>Het recept en alle gegevens zijn gekopieerd naar het klemboard.
 Je kunt deze gegevens &quot;plakken&quot; in het forum scherm in je web browser.</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="574"/>
+        <location filename="../src/EditRecipeExport.cpp" line="577"/>
         <source>Export choices</source>
         <translation>Export keuzes</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="586"/>
+        <location filename="../src/EditRecipeExport.cpp" line="589"/>
         <source>Export to beerXML</source>
         <translation>Exporteer naar beerXML</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="591"/>
+        <location filename="../src/EditRecipeExport.cpp" line="594"/>
         <source>Copy to recipe</source>
         <translation>Kopieer naar Recept</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeExport.cpp" line="596"/>
+        <location filename="../src/EditRecipeExport.cpp" line="599"/>
         <source>Copy to product</source>
         <translation>Kopieer naar Product</translation>
     </message>
@@ -7712,6 +7824,11 @@
         <translation>Rest alkaliteit als CaCO3:</translation>
     </message>
     <message>
+        <location filename="../ui/EditWater.ui" line="885"/>
+        <source>Clone</source>
+        <translation>Kloon</translation>
+    </message>
+    <message>
         <source>Acid pH:</source>
         <translation type="vanished">Zuurgraad pH:</translation>
     </message>
@@ -7763,34 +7880,36 @@
         <translation type="vanished">Ionen balans meq/L:</translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="105"/>
+        <location filename="../src/EditWater.cpp" line="104"/>
         <source>BMSapp - Add new brewing water</source>
         <translation>BMSapp - Nieuw brouwwater</translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="107"/>
+        <location filename="../src/EditWater.cpp" line="106"/>
         <source>BMSapp - Edit brewing water %1</source>
         <translation>BMSapp - Wijzig brouwwater %1</translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="123"/>
+        <location filename="../src/EditWater.cpp" line="122"/>
         <source>Edit Water</source>
         <translation>Wijzig water</translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="123"/>
+        <location filename="../src/EditWater.cpp" line="122"/>
         <source>Name empty or too short.</source>
         <translation>De naam is leeg of te kort.</translation>
     </message>
     <message>
+        <location filename="../src/EditWater.cpp" line="158"/>
+        <location filename="../src/EditWater.cpp" line="201"/>
+        <location filename="../src/EditWater.cpp" line="226"/>
+        <source>Database error</source>
+        <translation>Database fout</translation>
+    </message>
+    <message>
         <location filename="../src/EditWater.cpp" line="159"/>
-        <location filename="../src/EditWater.cpp" line="184"/>
-        <source>Database error</source>
-        <translation>Database fout</translation>
-    </message>
-    <message>
-        <location filename="../src/EditWater.cpp" line="160"/>
-        <location filename="../src/EditWater.cpp" line="185"/>
+        <location filename="../src/EditWater.cpp" line="202"/>
+        <location filename="../src/EditWater.cpp" line="227"/>
         <source>MySQL error: %1
 %2
 %3</source>
@@ -7799,12 +7918,22 @@
 %3</translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="301"/>
+        <location filename="../src/EditWater.cpp" line="216"/>
+        <source>Delete water</source>
+        <translation>Verwijder water</translation>
+    </message>
+    <message>
+        <location filename="../src/EditWater.cpp" line="216"/>
+        <source>Delete %1</source>
+        <translation>Verwijder %1</translation>
+    </message>
+    <message>
+        <location filename="../src/EditWater.cpp" line="343"/>
         <source>Water changed</source>
         <translation>Water gewijzigd</translation>
     </message>
     <message>
-        <location filename="../src/EditWater.cpp" line="301"/>
+        <location filename="../src/EditWater.cpp" line="343"/>
         <source>The brewing water has been modified. Save changes?</source>
         <translation>Dit brouwwater is gewijzigd. Wijzigingen opslaan?</translation>
     </message>
@@ -7989,7 +8118,7 @@
     </message>
     <message>
         <location filename="../ui/EditYeast.ui" line="738"/>
-        <location filename="../src/EditYeast.cpp" line="182"/>
+        <location filename="../src/EditYeast.cpp" line="181"/>
         <source>Billion cells/gram:</source>
         <translation>Miljard cellen/gram:</translation>
     </message>
@@ -8075,6 +8204,11 @@
         <translation>Zet de tht datum op vandaag.</translation>
     </message>
     <message>
+        <location filename="../ui/EditYeast.ui" line="1232"/>
+        <source>Clone</source>
+        <translation>Kloon</translation>
+    </message>
+    <message>
         <location filename="../src/EditYeast.cpp" line="32"/>
         <source>Lager</source>
         <translation>Ondergist</translation>
@@ -8170,80 +8304,82 @@
         <translation>Zeer hoog</translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="170"/>
+        <location filename="../src/EditYeast.cpp" line="169"/>
         <source>Price per pack:</source>
         <translation>Prijs per pak:</translation>
     </message>
     <message>
+        <location filename="../src/EditYeast.cpp" line="170"/>
+        <source>Inventory Packs:</source>
+        <translation>Voorraad pakken:</translation>
+    </message>
+    <message>
         <location filename="../src/EditYeast.cpp" line="171"/>
-        <source>Inventory Packs:</source>
-        <translation>Voorraad pakken:</translation>
-    </message>
-    <message>
-        <location filename="../src/EditYeast.cpp" line="172"/>
         <source>Billion cells/pack:</source>
         <translation>Miljard cellen/pak:</translation>
     </message>
     <message>
+        <location filename="../src/EditYeast.cpp" line="179"/>
+        <source>Price per Kg:</source>
+        <translation>Prijs per kg:</translation>
+    </message>
+    <message>
         <location filename="../src/EditYeast.cpp" line="180"/>
-        <source>Price per Kg:</source>
-        <translation>Prijs per kg:</translation>
-    </message>
-    <message>
-        <location filename="../src/EditYeast.cpp" line="181"/>
         <source>Inventory gram:</source>
         <translation>Voorraad gram:</translation>
     </message>
     <message>
+        <location filename="../src/EditYeast.cpp" line="189"/>
+        <source>Price per litre:</source>
+        <translation>Prijs per liter:</translation>
+    </message>
+    <message>
         <location filename="../src/EditYeast.cpp" line="190"/>
-        <source>Price per litre:</source>
-        <translation>Prijs per liter:</translation>
+        <source>Inventory ml:</source>
+        <translation>Voorraad ml:</translation>
     </message>
     <message>
         <location filename="../src/EditYeast.cpp" line="191"/>
-        <source>Inventory ml:</source>
-        <translation>Voorraad ml:</translation>
-    </message>
-    <message>
-        <location filename="../src/EditYeast.cpp" line="192"/>
         <source>Billion cells/ml:</source>
         <translation>Miljard cellen/ml:</translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="229"/>
+        <location filename="../src/EditYeast.cpp" line="228"/>
         <source>BMSapp - Add new yeast</source>
         <translation>BMSapp - Nieuwe gist</translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="231"/>
+        <location filename="../src/EditYeast.cpp" line="230"/>
         <source>BMSapp - Edit yeast %1</source>
         <translation>BMSapp - Wijzig gist %1</translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="247"/>
-        <location filename="../src/EditYeast.cpp" line="251"/>
+        <location filename="../src/EditYeast.cpp" line="246"/>
+        <location filename="../src/EditYeast.cpp" line="250"/>
         <source>Edit Yeast</source>
         <translation>Wijzig gist</translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="247"/>
+        <location filename="../src/EditYeast.cpp" line="246"/>
         <source>Name empty or too short.</source>
         <translation>De naam is leeg of te kort.</translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="251"/>
+        <location filename="../src/EditYeast.cpp" line="250"/>
         <source>Laboratory empty or too short.</source>
         <translation>Laboratorium leeg of te kort.</translation>
     </message>
     <message>
+        <location filename="../src/EditYeast.cpp" line="313"/>
+        <location filename="../src/EditYeast.cpp" line="375"/>
+        <location filename="../src/EditYeast.cpp" line="400"/>
+        <source>Database error</source>
+        <translation>Database fout</translation>
+    </message>
+    <message>
         <location filename="../src/EditYeast.cpp" line="314"/>
-        <location filename="../src/EditYeast.cpp" line="339"/>
-        <source>Database error</source>
-        <translation>Database fout</translation>
-    </message>
-    <message>
-        <location filename="../src/EditYeast.cpp" line="315"/>
-        <location filename="../src/EditYeast.cpp" line="340"/>
+        <location filename="../src/EditYeast.cpp" line="376"/>
+        <location filename="../src/EditYeast.cpp" line="401"/>
         <source>MySQL error: %1
 %2
 %3</source>
@@ -8252,12 +8388,22 @@
 %3</translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="414"/>
+        <location filename="../src/EditYeast.cpp" line="390"/>
+        <source>Delete yeast</source>
+        <translation>Verwijder gist</translation>
+    </message>
+    <message>
+        <location filename="../src/EditYeast.cpp" line="390"/>
+        <source>Delete %1</source>
+        <translation>Verwijder %1</translation>
+    </message>
+    <message>
+        <location filename="../src/EditYeast.cpp" line="475"/>
         <source>Yeast changed</source>
         <translation>Gist gewijzigd</translation>
     </message>
     <message>
-        <location filename="../src/EditYeast.cpp" line="414"/>
+        <location filename="../src/EditYeast.cpp" line="475"/>
         <source>The yeast has been modified. Save changes?</source>
         <translation>Deze gist is gewijzigd. Wijzigingen opslaan?</translation>
     </message>
@@ -8868,7 +9014,7 @@
     <message>
         <location filename="../src/InventoryHops.cpp" line="211"/>
         <location filename="../src/InventoryHops.cpp" line="213"/>
-        <location filename="../src/InventoryHops.cpp" line="255"/>
+        <location filename="../src/InventoryHops.cpp" line="258"/>
         <source>Save File</source>
         <translation>Bestand opslaan</translation>
     </message>
@@ -8883,7 +9029,7 @@
         <translation>Geen XML bestand gekozen.</translation>
     </message>
     <message>
-        <location filename="../src/InventoryHops.cpp" line="255"/>
+        <location filename="../src/InventoryHops.cpp" line="258"/>
         <source>XML export ready</source>
         <translation>XML uitvoer gereed</translation>
     </message>
@@ -9368,23 +9514,23 @@
     </message>
     <message>
         <location filename="../ui/MainWindow.ui" line="103"/>
-        <location filename="../ui/MainWindow.ui" line="349"/>
+        <location filename="../ui/MainWindow.ui" line="362"/>
         <source>Archive</source>
         <translation>Archief</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="119"/>
-        <location filename="../ui/MainWindow.ui" line="322"/>
+        <location filename="../ui/MainWindow.ui" line="132"/>
+        <location filename="../ui/MainWindow.ui" line="335"/>
         <source>Recipes</source>
         <translation>Recepten</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="142"/>
+        <location filename="../ui/MainWindow.ui" line="155"/>
         <source>Exit</source>
         <translation>Afsluiten</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="151"/>
+        <location filename="../ui/MainWindow.ui" line="164"/>
         <source>About</source>
         <translation>Over</translation>
     </message>
@@ -9393,7 +9539,7 @@
         <translation type="vanished">Systemen</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="437"/>
+        <location filename="../ui/MainWindow.ui" line="450"/>
         <source>Fermenters</source>
         <translation>Vergisting</translation>
     </message>
@@ -9402,146 +9548,166 @@
         <translation type="vanished">CO2 meters</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="455"/>
+        <location filename="../ui/MainWindow.ui" line="468"/>
         <source>iSpindels</source>
         <translation>iSpindels</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="160"/>
+        <location filename="../ui/MainWindow.ui" line="173"/>
         <source>Suppliers</source>
         <translation>Leveranciers</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="172"/>
+        <location filename="../ui/MainWindow.ui" line="116"/>
+        <source>Reports</source>
+        <translation>Rapporten</translation>
+    </message>
+    <message>
+        <location filename="../ui/MainWindow.ui" line="185"/>
         <source>Fermentables</source>
         <translation>Vergistbare ingredienten</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="184"/>
+        <location filename="../ui/MainWindow.ui" line="197"/>
         <source>Hops</source>
         <translation>Hoppen</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="196"/>
+        <location filename="../ui/MainWindow.ui" line="209"/>
         <source>Yeasts</source>
         <translation>Gisten</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="208"/>
+        <location filename="../ui/MainWindow.ui" line="221"/>
         <source>Miscs</source>
         <translation>Overige ingredienten</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="220"/>
+        <location filename="../ui/MainWindow.ui" line="233"/>
         <source>Waters</source>
         <translation>Water</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="232"/>
+        <location filename="../ui/MainWindow.ui" line="245"/>
         <source>Equipments</source>
         <translation>Brouw apparatuur</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="244"/>
+        <location filename="../ui/MainWindow.ui" line="257"/>
         <source>Supplies list</source>
         <translation>Voorraad lijst</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="256"/>
+        <location filename="../ui/MainWindow.ui" line="269"/>
         <source>Yeast bank</source>
         <translation>Gistbank lijst</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="268"/>
+        <location filename="../ui/MainWindow.ui" line="281"/>
         <source>Water profiles</source>
         <translation>Water profielen</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="280"/>
+        <location filename="../ui/MainWindow.ui" line="293"/>
         <source>Mash schedules</source>
         <translation>Maisch schemas</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="292"/>
+        <location filename="../ui/MainWindow.ui" line="305"/>
         <source>Beer styles</source>
         <translation>Bierstijlen</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="304"/>
+        <location filename="../ui/MainWindow.ui" line="317"/>
         <source>Fermentation schedules</source>
         <translation>Vergisting profielen</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="313"/>
+        <location filename="../ui/MainWindow.ui" line="326"/>
         <source>Global settings</source>
         <translation>Instellingen</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="331"/>
+        <location filename="../ui/MainWindow.ui" line="344"/>
         <source>Import beerxml</source>
         <translation>Importeer beerxml</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="340"/>
+        <location filename="../ui/MainWindow.ui" line="353"/>
         <source>In Production</source>
         <translation>In Productie</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="358"/>
+        <location filename="../ui/MainWindow.ui" line="371"/>
         <source>On Name</source>
         <translation>Op naam</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="367"/>
+        <location filename="../ui/MainWindow.ui" line="380"/>
         <source>On Code</source>
         <translation>Op code</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="376"/>
+        <location filename="../ui/MainWindow.ui" line="389"/>
         <source>On Date</source>
         <translation>Op datum</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="385"/>
+        <location filename="../ui/MainWindow.ui" line="398"/>
         <source>On Beerstyle</source>
         <translation>Op bierstijl</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="394"/>
+        <location filename="../ui/MainWindow.ui" line="407"/>
         <source>Import beerXML</source>
         <translation>Importeer beerXML</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="399"/>
+        <location filename="../ui/MainWindow.ui" line="412"/>
         <source>dummy</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="404"/>
+        <location filename="../ui/MainWindow.ui" line="417"/>
         <source>hh</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="409"/>
+        <location filename="../ui/MainWindow.ui" line="422"/>
         <source>hj</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="414"/>
+        <location filename="../ui/MainWindow.ui" line="427"/>
         <source>ll</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="419"/>
-        <location filename="../ui/MainWindow.ui" line="428"/>
+        <location filename="../ui/MainWindow.ui" line="432"/>
+        <location filename="../ui/MainWindow.ui" line="441"/>
         <source>Nodes</source>
         <translation>Systemen</translation>
     </message>
     <message>
-        <location filename="../ui/MainWindow.ui" line="446"/>
+        <location filename="../ui/MainWindow.ui" line="459"/>
         <source>Carbonation</source>
         <translation>Carbonatie</translation>
     </message>
+    <message>
+        <location filename="../ui/MainWindow.ui" line="477"/>
+        <source>Total Production</source>
+        <translation>Totaal productie</translation>
+    </message>
+    <message>
+        <location filename="../ui/MainWindow.ui" line="486"/>
+        <source>Efficiency</source>
+        <translation>Rendement</translation>
+    </message>
+    <message>
+        <location filename="../ui/MainWindow.ui" line="495"/>
+        <source>Fermentation</source>
+        <translation>Vergisting</translation>
+    </message>
 </context>
 <context>
     <name>ManoMeter</name>
@@ -10082,6 +10248,7 @@
         <location filename="../src/PrinterDialog.cpp" line="285"/>
         <location filename="../src/PrinterDialog.cpp" line="472"/>
         <location filename="../src/PrinterDialog.cpp" line="884"/>
+        <location filename="../src/PrinterDialog.cpp" line="2331"/>
         <source>Yeast</source>
         <translation>Gist</translation>
     </message>
@@ -11255,34 +11422,142 @@
         <translation>Toevoegen %1 gr `%2`</translation>
     </message>
     <message>
-        <location filename="../src/PrinterDialog.cpp" line="2177"/>
+        <location filename="../src/PrinterDialog.cpp" line="2154"/>
+        <source>Number</source>
+        <translation>Nummer</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2155"/>
+        <source>Year</source>
+        <translation>Jaar</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2156"/>
+        <source>Brew sessions</source>
+        <translation>Brouw sessies</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2157"/>
+        <source>Brew volume</source>
+        <translation>Brouw volume</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2158"/>
+        <source>Average volume</source>
+        <translation>Gemiddeld volume</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2220"/>
+        <location filename="../src/PrinterDialog.cpp" line="2329"/>
+        <source>Code</source>
+        <translation>Code</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2221"/>
+        <location filename="../src/PrinterDialog.cpp" line="2330"/>
+        <source>Name</source>
+        <translation>Naam</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2223"/>
+        <source>Max extract</source>
+        <translation>Max extract</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2224"/>
+        <source>Mash eff.</source>
+        <translation>Maisch %</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2225"/>
+        <source>Sparge eff</source>
+        <translation>Spoelen %</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2226"/>
+        <source>Boil eff</source>
+        <translation>Koken %</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2332"/>
+        <source>Primary</source>
+        <translation>Hoofdgisting</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2333"/>
+        <source>Secondary</source>
+        <translation>Nagisten</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2334"/>
+        <source>Tertiary</source>
+        <translation>Lageren</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2335"/>
+        <source>Days</source>
+        <translation>Dagen</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2336"/>
+        <source>OG</source>
+        <translation>OG</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2337"/>
+        <source>FG</source>
+        <translation>FG</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2338"/>
+        <source>AA</source>
+        <translation>SVG</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2402"/>
         <source>Measured:</source>
         <translation>Gemeten:</translation>
     </message>
     <message>
-        <location filename="../src/PrinterDialog.cpp" line="2189"/>
+        <location filename="../src/PrinterDialog.cpp" line="2414"/>
         <source>%1 split the batch here!</source>
         <translation>%1 splits de batch hier!</translation>
     </message>
     <message>
-        <location filename="../src/PrinterDialog.cpp" line="2228"/>
+        <location filename="../src/PrinterDialog.cpp" line="2453"/>
         <source>Inventory</source>
         <translation>Inventaris</translation>
     </message>
     <message>
-        <location filename="../src/PrinterDialog.cpp" line="2230"/>
+        <location filename="../src/PrinterDialog.cpp" line="2455"/>
         <source>Yeastbank</source>
         <translation>Gistbank</translation>
     </message>
     <message>
-        <location filename="../src/PrinterDialog.cpp" line="2240"/>
+        <location filename="../src/PrinterDialog.cpp" line="2461"/>
+        <source>Year production</source>
+        <translation>Jaar productie</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2463"/>
+        <source>Brew efficiency</source>
+        <translation>Brouw rendement</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2465"/>
+        <source>Fermentations</source>
+        <translation>Vergistingen</translation>
+    </message>
+    <message>
+        <location filename="../src/PrinterDialog.cpp" line="2471"/>
         <source>Date and time</source>
         <translation>Datum en tijd</translation>
     </message>
     <message>
         <location filename="../src/PrinterDialog.cpp" line="766"/>
-        <location filename="../src/PrinterDialog.cpp" line="2243"/>
-        <location filename="../src/PrinterDialog.cpp" line="2247"/>
+        <location filename="../src/PrinterDialog.cpp" line="2222"/>
+        <location filename="../src/PrinterDialog.cpp" line="2474"/>
+        <location filename="../src/PrinterDialog.cpp" line="2478"/>
         <source>Beer style</source>
         <translation>Bierstijl</translation>
     </message>
@@ -12403,11 +12678,11 @@
     </message>
     <message>
         <location filename="../src/database/db_recipe.cpp" line="31"/>
-        <location filename="../src/database/db_recipe.cpp" line="651"/>
-        <location filename="../src/database/db_recipe.cpp" line="684"/>
+        <location filename="../src/database/db_recipe.cpp" line="654"/>
+        <location filename="../src/database/db_recipe.cpp" line="687"/>
         <location filename="../src/database/db_product.cpp" line="31"/>
-        <location filename="../src/database/db_product.cpp" line="1005"/>
-        <location filename="../src/database/db_product.cpp" line="1038"/>
+        <location filename="../src/database/db_product.cpp" line="1008"/>
+        <location filename="../src/database/db_product.cpp" line="1041"/>
         <source>Database error</source>
         <translation>Database fout</translation>
     </message>
@@ -12418,10 +12693,10 @@
         <translation>MySQL fout: record %1 niet gevonden</translation>
     </message>
     <message>
-        <location filename="../src/database/db_recipe.cpp" line="652"/>
-        <location filename="../src/database/db_recipe.cpp" line="685"/>
-        <location filename="../src/database/db_product.cpp" line="1006"/>
-        <location filename="../src/database/db_product.cpp" line="1039"/>
+        <location filename="../src/database/db_recipe.cpp" line="655"/>
+        <location filename="../src/database/db_recipe.cpp" line="688"/>
+        <location filename="../src/database/db_product.cpp" line="1009"/>
+        <location filename="../src/database/db_product.cpp" line="1042"/>
         <source>MySQL error: %1
 %2
 %3</source>
--- a/ui/MainWindow.ui	Mon Aug 01 13:05:23 2022 +0200
+++ b/ui/MainWindow.ui	Mon Aug 01 21:49:57 2022 +0200
@@ -111,8 +111,21 @@
      <addaction name="actionOn_Date"/>
      <addaction name="actionOn_Tree"/>
     </widget>
+    <widget class="QMenu" name="menuReports">
+     <property name="title">
+      <string>Reports</string>
+     </property>
+     <property name="icon">
+      <iconset resource="../resources/icons.qrc">
+       <normaloff>:/icons/silk/printer.png</normaloff>:/icons/silk/printer.png</iconset>
+     </property>
+     <addaction name="actionRep_Production"/>
+     <addaction name="actionRep_Efficiency"/>
+     <addaction name="actionRep_Fermentation"/>
+    </widget>
     <addaction name="actionProd_inprod"/>
     <addaction name="menuArchive"/>
+    <addaction name="menuReports"/>
    </widget>
    <widget class="QMenu" name="menuRecipes">
     <property name="title">
@@ -455,6 +468,33 @@
     <string>iSpindels</string>
    </property>
   </action>
+  <action name="actionRep_Production">
+   <property name="icon">
+    <iconset resource="../resources/icons.qrc">
+     <normaloff>:/icons/bms/beerstyles.png</normaloff>:/icons/bms/beerstyles.png</iconset>
+   </property>
+   <property name="text">
+    <string>Total Production</string>
+   </property>
+  </action>
+  <action name="actionRep_Efficiency">
+   <property name="icon">
+    <iconset resource="../resources/icons.qrc">
+     <normaloff>:/icons/silk/report.png</normaloff>:/icons/silk/report.png</iconset>
+   </property>
+   <property name="text">
+    <string>Efficiency</string>
+   </property>
+  </action>
+  <action name="actionRep_Fermentation">
+   <property name="icon">
+    <iconset resource="../resources/icons.qrc">
+     <normaloff>:/icons/bms/fermenter.png</normaloff>:/icons/bms/fermenter.png</iconset>
+   </property>
+   <property name="text">
+    <string>Fermentation</string>
+   </property>
+  </action>
  </widget>
  <layoutdefault spacing="6" margin="11"/>
  <resources>

mercurial