478 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, tr("Cost")); |
478 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, tr("Cost")); |
479 y += 20; |
479 y += 20; |
480 painter.setFont(QFont("Helvetica", 9, QFont::Normal)); |
480 painter.setFont(QFont("Helvetica", 9, QFont::Normal)); |
481 double cost_yeasts = 0; |
481 double cost_yeasts = 0; |
482 for (int i = 0; i < recipe->yeasts.size(); i++) { |
482 for (int i = 0; i < recipe->yeasts.size(); i++) { |
483 double cost = recipe->yeasts.at(i).y_amount * recipe->yeasts.at(i).y_cost; |
483 double cost = recipe->yeasts.at(i).amount * recipe->yeasts.at(i).cost; |
484 cost_yeasts += cost; |
484 cost_yeasts += cost; |
485 |
485 |
486 if (recipe->yeasts.at(i).y_form == 0) |
486 if (recipe->yeasts.at(i).form == 0) |
487 amount = QString("%1 pack").arg(recipe->yeasts.at(i).y_amount, 1, 'f', 0); |
487 amount = QString("%1 pack").arg(recipe->yeasts.at(i).amount, 1, 'f', 0); |
488 else if (recipe->yeasts.at(i).y_form == 1 || recipe->yeasts.at(i).y_form == 6) |
488 else if (recipe->yeasts.at(i).form == 1 || recipe->yeasts.at(i).form == 6) |
489 amount = QString("%1 gr").arg(recipe->yeasts.at(i).y_amount * 1000.0, 1, 'f', 1); |
489 amount = QString("%1 gr").arg(recipe->yeasts.at(i).amount * 1000.0, 1, 'f', 1); |
490 else |
490 else |
491 amount = QString("%1 ml").arg(recipe->yeasts.at(i).y_amount * 1000.0, 1, 'f', 1); |
491 amount = QString("%1 ml").arg(recipe->yeasts.at(i).amount * 1000.0, 1, 'f', 1); |
492 |
492 |
493 painter.fillRect( 20, y, 715, 20, y_line); |
493 painter.fillRect( 20, y, 715, 20, y_line); |
494 painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft, recipe->yeasts.at(i).y_laboratory + " " + |
494 painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft, recipe->yeasts.at(i).laboratory + " " + |
495 recipe->yeasts.at(i).y_product_id + " (" + |
495 recipe->yeasts.at(i).product_id + " (" + |
496 recipe->yeasts.at(i).y_name + ")"); |
496 recipe->yeasts.at(i).name + ")"); |
497 painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1%").arg(recipe->yeasts.at(i).y_attenuation, 1, 'f', 1)); |
497 painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1%").arg(recipe->yeasts.at(i).attenuation, 1, 'f', 1)); |
498 painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, yeast_forms[recipe->yeasts.at(i).y_form]); |
498 painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, yeast_forms[recipe->yeasts.at(i).form]); |
499 painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, yeast_use[recipe->yeasts.at(i).y_use]); |
499 painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, yeast_use[recipe->yeasts.at(i).use]); |
500 painter.drawText(605, y+4, 60, 20, Qt::AlignRight, amount); |
500 painter.drawText(605, y+4, 60, 20, Qt::AlignRight, amount); |
501 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); |
501 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); |
502 y += 20; |
502 y += 20; |
503 } |
503 } |
504 painter.fillRect(670, y, 60, 20, c_line1); |
504 painter.fillRect(670, y, 60, 20, c_line1); |
878 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, tr("Cost")); |
878 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, tr("Cost")); |
879 y += 20; |
879 y += 20; |
880 painter.setFont(QFont("Helvetica", 9, QFont::Normal)); |
880 painter.setFont(QFont("Helvetica", 9, QFont::Normal)); |
881 double cost_yeasts = 0; |
881 double cost_yeasts = 0; |
882 for (int i = 0; i < product->yeasts.size(); i++) { |
882 for (int i = 0; i < product->yeasts.size(); i++) { |
883 double cost = product->yeasts.at(i).y_amount * product->yeasts.at(i).y_cost; |
883 double cost = product->yeasts.at(i).amount * product->yeasts.at(i).cost; |
884 cost_yeasts += cost; |
884 cost_yeasts += cost; |
885 |
885 |
886 if (product->yeasts.at(i).y_form == 0) |
886 if (product->yeasts.at(i).form == 0) |
887 amount = QString("%1 pack").arg(product->yeasts.at(i).y_amount, 1, 'f', 0); |
887 amount = QString("%1 pack").arg(product->yeasts.at(i).amount, 1, 'f', 0); |
888 else if (product->yeasts.at(i).y_form == 1 || product->yeasts.at(i).y_form == 6) |
888 else if (product->yeasts.at(i).form == 1 || product->yeasts.at(i).form == 6) |
889 amount = QString("%1 gr").arg(product->yeasts.at(i).y_amount * 1000.0, 1, 'f', 1); |
889 amount = QString("%1 gr").arg(product->yeasts.at(i).amount * 1000.0, 1, 'f', 1); |
890 else |
890 else |
891 amount = QString("%1 ml").arg(product->yeasts.at(i).y_amount * 1000.0, 1, 'f', 1); |
891 amount = QString("%1 ml").arg(product->yeasts.at(i).amount * 1000.0, 1, 'f', 1); |
892 |
892 |
893 painter.fillRect( 20, y, 715, 20, y_line); |
893 painter.fillRect( 20, y, 715, 20, y_line); |
894 painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft, product->yeasts.at(i).y_laboratory + " " + |
894 painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft, product->yeasts.at(i).laboratory + " " + |
895 product->yeasts.at(i).y_product_id + " (" + |
895 product->yeasts.at(i).product_id + " (" + |
896 product->yeasts.at(i).y_name + ")"); |
896 product->yeasts.at(i).name + ")"); |
897 painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1%").arg(product->yeasts.at(i).y_attenuation, 1, 'f', 1)); |
897 painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1%").arg(product->yeasts.at(i).attenuation, 1, 'f', 1)); |
898 painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, yeast_forms[product->yeasts.at(i).y_form]); |
898 painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, yeast_forms[product->yeasts.at(i).form]); |
899 painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, yeast_use[product->yeasts.at(i).y_use]); |
899 painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, yeast_use[product->yeasts.at(i).use]); |
900 painter.drawText(605, y+4, 60, 20, Qt::AlignRight, amount); |
900 painter.drawText(605, y+4, 60, 20, Qt::AlignRight, amount); |
901 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); |
901 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); |
902 y += 20; |
902 y += 20; |
903 } |
903 } |
904 if (product->starter_enable && product->prop_volume[0]) { |
904 if (product->starter_enable && product->prop_volume[0]) { |
1861 y += 20; |
1861 y += 20; |
1862 } |
1862 } |
1863 double dry = 0; |
1863 double dry = 0; |
1864 checkHeader(&painter, &y, tr("Yeast pitching and fermentation")); |
1864 checkHeader(&painter, &y, tr("Yeast pitching and fermentation")); |
1865 for (int i = 0; i < product->yeasts.size(); i++) { |
1865 for (int i = 0; i < product->yeasts.size(); i++) { |
1866 if (product->yeasts.at(i).y_use == YEAST_USE_PRIMARY) { |
1866 if (product->yeasts.at(i).use == YEAST_USE_PRIMARY) { |
1867 switch (product->yeasts.at(i).y_form) { |
1867 switch (product->yeasts.at(i).form) { |
1868 case YEAST_FORMS_LIQUID: checkLine(&painter, &y, QString(tr("%1 pack %2, `%3` yeast")).arg(product->yeasts.at(i).y_amount) |
1868 case YEAST_FORMS_LIQUID: checkLine(&painter, &y, QString(tr("%1 pack %2, `%3` yeast")).arg(product->yeasts.at(i).amount) |
1869 .arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
1869 .arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
1870 break; |
1870 break; |
1871 case YEAST_FORMS_DRY: dry += product->yeasts.at(i).y_amount * 1000 * factor; |
1871 case YEAST_FORMS_DRY: dry += product->yeasts.at(i).amount * 1000 * factor; |
1872 case YEAST_FORMS_DRIED: checkLine(&painter, &y, QString(tr("%1 gram %2, `%3` yeast")) |
1872 case YEAST_FORMS_DRIED: checkLine(&painter, &y, QString(tr("%1 gram %2, `%3` yeast")) |
1873 .arg(product->yeasts.at(i).y_amount * 1000 * factor, 1, 'f', 1) |
1873 .arg(product->yeasts.at(i).amount * 1000 * factor, 1, 'f', 1) |
1874 .arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
1874 .arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
1875 break; |
1875 break; |
1876 default: checkLine(&painter, &y, QString(tr("%1 ml %2, `%3` yeast")) |
1876 default: checkLine(&painter, &y, QString(tr("%1 ml %2, `%3` yeast")) |
1877 .arg(product->yeasts.at(i).y_amount * 1000 * factor, 1, 'f', 0) |
1877 .arg(product->yeasts.at(i).amount * 1000 * factor, 1, 'f', 0) |
1878 .arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
1878 .arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
1879 break; |
1879 break; |
1880 } |
1880 } |
1881 if (product->yeasts.at(i).y_type == YEAST_TYPES_KVEIK && (product->yeasts.at(i).y_pitch_temperature > 0)) { |
1881 if (product->yeasts.at(i).type == YEAST_TYPES_KVEIK && (product->yeasts.at(i).pitch_temperature > 0)) { |
1882 checkLine(&painter, &y, QString(tr("Pitch yeast at %1°C")).arg(product->yeasts.at(i).y_pitch_temperature, 1, 'f', 1)); |
1882 checkLine(&painter, &y, QString(tr("Pitch yeast at %1°C")).arg(product->yeasts.at(i).pitch_temperature, 1, 'f', 1)); |
1883 climate = product->yeasts.at(i).y_pitch_temperature; |
1883 climate = product->yeasts.at(i).pitch_temperature; |
1884 } |
1884 } |
1885 } |
1885 } |
1886 } |
1886 } |
1887 if (dry > 0) { |
1887 if (dry > 0) { |
1888 checkLine(&painter, &y, QString(tr("Pitch yeast dry into the wort"))); |
1888 checkLine(&painter, &y, QString(tr("Pitch yeast dry into the wort"))); |
1949 } else { |
1949 } else { |
1950 y += 20; |
1950 y += 20; |
1951 } |
1951 } |
1952 checkHeader(&painter, &y, tr("Secondary fermentation")); |
1952 checkHeader(&painter, &y, tr("Secondary fermentation")); |
1953 for (int i = 0; i < product->yeasts.size(); i++) { |
1953 for (int i = 0; i < product->yeasts.size(); i++) { |
1954 if (product->yeasts.at(i).y_use == YEAST_USE_SECONDARY) { |
1954 if (product->yeasts.at(i).use == YEAST_USE_SECONDARY) { |
1955 if (product->yeasts.at(i).y_form == YEAST_FORMS_LIQUID) { |
1955 if (product->yeasts.at(i).form == YEAST_FORMS_LIQUID) { |
1956 checkLine(&painter, &y, QString(tr("Add %1 pack %2, `%3` yeast (with starter if needed)")) |
1956 checkLine(&painter, &y, QString(tr("Add %1 pack %2, `%3` yeast (with starter if needed)")) |
1957 .arg(product->yeasts.at(i).y_amount).arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
1957 .arg(product->yeasts.at(i).amount).arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
1958 } else if (product->yeasts.at(i).y_form == YEAST_FORMS_DRY) { |
1958 } else if (product->yeasts.at(i).form == YEAST_FORMS_DRY) { |
1959 checkLine(&painter, &y, QString(tr("Add %1 gram %2, `%3`")).arg(product->yeasts.at(i).y_amount * 1000 * factor, 1, 'f', 1) |
1959 checkLine(&painter, &y, QString(tr("Add %1 gram %2, `%3`")).arg(product->yeasts.at(i).amount * 1000 * factor, 1, 'f', 1) |
1960 .arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
1960 .arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
1961 } else { |
1961 } else { |
1962 checkLine(&painter, &y, QString(tr("Add %1 gram %2, `%3` yeast (with starter if needed)")) |
1962 checkLine(&painter, &y, QString(tr("Add %1 gram %2, `%3` yeast (with starter if needed)")) |
1963 .arg(product->yeasts.at(i).y_amount * 1000 * factor, 1, 'f', 1) |
1963 .arg(product->yeasts.at(i).amount * 1000 * factor, 1, 'f', 1) |
1964 .arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
1964 .arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
1965 } |
1965 } |
1966 } |
1966 } |
1967 if (product->yeasts.at(i).y_harvest_time > 0) { |
1967 if (product->yeasts.at(i).harvest_time > 0) { |
1968 checkLine(&painter, &y, QString(tr("After %1 hours harvest yeast from the %2")).arg(product->yeasts.at(i).y_harvest_time) |
1968 checkLine(&painter, &y, QString(tr("After %1 hours harvest yeast from the %2")).arg(product->yeasts.at(i).harvest_time) |
1969 .arg((product->yeasts.at(i).y_harvest_top > 0) ? "top":"bottom")); |
1969 .arg((product->yeasts.at(i).harvest_top > 0) ? "top":"bottom")); |
1970 } |
1970 } |
1971 } |
1971 } |
1972 } |
1972 } |
1973 if (checkSplit(&painter, &y, 5)) |
1973 if (checkSplit(&painter, &y, 5)) |
1974 factor = 1; |
1974 factor = 1; |
2007 checkLine(&painter, &y, QString(tr("Add %1 gram `%2` for %3 days")).arg(product->hops.at(i).amount * 1000 * factor, 1, 'f', 1) |
2007 checkLine(&painter, &y, QString(tr("Add %1 gram `%2` for %3 days")).arg(product->hops.at(i).amount * 1000 * factor, 1, 'f', 1) |
2008 .arg(product->hops.at(i).name).arg(product->hops.at(i).time / 1440)); |
2008 .arg(product->hops.at(i).name).arg(product->hops.at(i).time / 1440)); |
2009 } |
2009 } |
2010 } |
2010 } |
2011 for (int i = 0; i < product->yeasts.size(); i++) { |
2011 for (int i = 0; i < product->yeasts.size(); i++) { |
2012 if (product->yeasts.at(i).y_use == YEAST_USE_TERTIARY) { |
2012 if (product->yeasts.at(i).use == YEAST_USE_TERTIARY) { |
2013 if (product->yeasts.at(i).y_form == YEAST_FORMS_LIQUID) { |
2013 if (product->yeasts.at(i).form == YEAST_FORMS_LIQUID) { |
2014 checkLine(&painter, &y, QString(tr("Add %1 pack %2, `%3` yeast (with starter if needed)")) |
2014 checkLine(&painter, &y, QString(tr("Add %1 pack %2, `%3` yeast (with starter if needed)")) |
2015 .arg(product->yeasts.at(i).y_amount).arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
2015 .arg(product->yeasts.at(i).amount).arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
2016 } else if (product->yeasts.at(i).y_form == YEAST_FORMS_DRY) { |
2016 } else if (product->yeasts.at(i).form == YEAST_FORMS_DRY) { |
2017 checkLine(&painter, &y, QString(tr("Add %1 gram %2, `%3`")).arg(product->yeasts.at(i).y_amount * 1000 * factor, 1, 'f', 1) |
2017 checkLine(&painter, &y, QString(tr("Add %1 gram %2, `%3`")).arg(product->yeasts.at(i).amount * 1000 * factor, 1, 'f', 1) |
2018 .arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
2018 .arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
2019 } else { |
2019 } else { |
2020 checkLine(&painter, &y, QString(tr("Add %1 ml %2, `%3` yeast (with starter if needed)")) |
2020 checkLine(&painter, &y, QString(tr("Add %1 ml %2, `%3` yeast (with starter if needed)")) |
2021 .arg(product->yeasts.at(i).y_amount * 1000 * factor, 1, 'f', 1) |
2021 .arg(product->yeasts.at(i).amount * 1000 * factor, 1, 'f', 1) |
2022 .arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
2022 .arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
2023 } |
2023 } |
2024 } |
2024 } |
2025 } |
2025 } |
2026 for (int i = 0; i < product->miscs.size(); i++) { |
2026 for (int i = 0; i < product->miscs.size(); i++) { |
2027 if (product->miscs.at(i).use_use == MISC_USES_SECONDARY) { |
2027 if (product->miscs.at(i).use_use == MISC_USES_SECONDARY) { |
2063 checkLine(&painter, &y, QString(tr("Kegging add %1 kg `%2` with %3 liter water")) |
2063 checkLine(&painter, &y, QString(tr("Kegging add %1 kg `%2` with %3 liter water")) |
2064 .arg(product->fermentables.at(i).amount * factor, 1, 'f', 3) |
2064 .arg(product->fermentables.at(i).amount * factor, 1, 'f', 3) |
2065 .arg(product->fermentables.at(i).name).arg(product->keg_priming_water * factor, 1, 'f', 3)); |
2065 .arg(product->fermentables.at(i).name).arg(product->keg_priming_water * factor, 1, 'f', 3)); |
2066 } |
2066 } |
2067 for (int i = 0; i < product->yeasts.size(); i++) { |
2067 for (int i = 0; i < product->yeasts.size(); i++) { |
2068 if (product->yeasts.at(i).y_use == YEAST_USE_BOTTLE) { |
2068 if (product->yeasts.at(i).use == YEAST_USE_BOTTLE) { |
2069 if (product->yeasts.at(i).y_form == YEAST_FORMS_LIQUID) { |
2069 if (product->yeasts.at(i).form == YEAST_FORMS_LIQUID) { |
2070 checkLine(&painter, &y, QString(tr("Add %1, `%2` as bottle yeast")) |
2070 checkLine(&painter, &y, QString(tr("Add %1, `%2` as bottle yeast")) |
2071 .arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
2071 .arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
2072 } else if (product->yeasts.at(i).y_form == YEAST_FORMS_DRY) { |
2072 } else if (product->yeasts.at(i).form == YEAST_FORMS_DRY) { |
2073 checkLine(&painter, &y, QString(tr("Add %1 gram %2, `%3` as bottle yeast")) |
2073 checkLine(&painter, &y, QString(tr("Add %1 gram %2, `%3` as bottle yeast")) |
2074 .arg(product->yeasts.at(i).y_amount * 1000 * factor, 1, 'f', 1) |
2074 .arg(product->yeasts.at(i).amount * 1000 * factor, 1, 'f', 1) |
2075 .arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
2075 .arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
2076 } else { |
2076 } else { |
2077 checkLine(&painter, &y, QString(tr("Add %1 ml %2, `%3` as bottle yeast")) |
2077 checkLine(&painter, &y, QString(tr("Add %1 ml %2, `%3` as bottle yeast")) |
2078 .arg(product->yeasts.at(i).y_amount * 1000 * factor, 1, 'f', 1) |
2078 .arg(product->yeasts.at(i).amount * 1000 * factor, 1, 'f', 1) |
2079 .arg(product->yeasts.at(i).y_product_id).arg(product->yeasts.at(i).y_name)); |
2079 .arg(product->yeasts.at(i).product_id).arg(product->yeasts.at(i).name)); |
2080 } |
2080 } |
2081 } |
2081 } |
2082 } |
2082 } |
2083 for (int i = 0; i < product->miscs.size(); i++) { |
2083 for (int i = 0; i < product->miscs.size(); i++) { |
2084 if (product->miscs.at(i).use_use == MISC_USES_BOTTLING) { |
2084 if (product->miscs.at(i).use_use == MISC_USES_BOTTLING) { |