399 color = Utils::kw_to_ebc(product->color_method, cw); |
399 color = Utils::kw_to_ebc(product->color_method, cw); |
400 //qDebug() << " oud EBC" << color << "new EBC" << Utils::kw_to_newebc(product->color_method, cw) << "SRM" << Utils::kw_to_srm(product->color_method, cw); |
400 //qDebug() << " oud EBC" << color << "new EBC" << Utils::kw_to_newebc(product->color_method, cw) << "SRM" << Utils::kw_to_srm(product->color_method, cw); |
401 } |
401 } |
402 qDebug() << " color" << ui->est_colorEdit->value() << color << product->est_color; |
402 qDebug() << " color" << ui->est_colorEdit->value() << color << product->est_color; |
403 product->est_color = color; |
403 product->est_color = color; |
404 ui->est_colorEdit->setValue(color); |
|
405 ui->est_colorEdit->setStyleSheet(Utils::ebc_to_style(color)); |
|
406 ui->est_color2Edit->setValue(color); |
404 ui->est_color2Edit->setValue(color); |
407 ui->est_color2Edit->setStyleSheet(Utils::ebc_to_style(color)); |
405 ui->est_color2Edit->setStyleSheet(Utils::ebc_to_style(color)); |
408 ui->est_colorShow->setValue(color); |
406 if (product->stage > PROD_STAGE_BREW) { |
|
407 ui->est_colorLabel->setText(tr("Final EBC")); |
|
408 ui->est_colorEdit->setValue(product->brew_fermenter_color); |
|
409 ui->est_colorEdit->setStyleSheet(Utils::ebc_to_style(product->brew_fermenter_color)); |
|
410 ui->est_colorShow->setValue(product->brew_fermenter_color); |
|
411 } else { |
|
412 ui->est_colorEdit->setValue(color); |
|
413 ui->est_colorEdit->setStyleSheet(Utils::ebc_to_style(color)); |
|
414 ui->est_colorShow->setValue(color); |
|
415 } |
409 |
416 |
410 if (round(product->mashs_kg / product->eq_mash_max * 100) > 120) |
417 if (round(product->mashs_kg / product->eq_mash_max * 100) > 120) |
411 ui->perc_mashShow->setValue(120); |
418 ui->perc_mashShow->setValue(120); |
412 else |
419 else |
413 ui->perc_mashShow->setValue(round(product->mashs_kg / product->eq_mash_max * 100)); |
420 ui->perc_mashShow->setValue(round(product->mashs_kg / product->eq_mash_max * 100)); |
445 ((product->inventory_reduced <= PROD_STAGE_PACKAGE) && (product->yeasts.at(i).use == 3))) && // Bottle |
452 ((product->inventory_reduced <= PROD_STAGE_PACKAGE) && (product->yeasts.at(i).use == 3))) && // Bottle |
446 (product->yeasts.at(i).inventory < product->yeasts.at(i).amount)) { |
453 (product->yeasts.at(i).inventory < product->yeasts.at(i).amount)) { |
447 product->yeasts_ok = false; |
454 product->yeasts_ok = false; |
448 } |
455 } |
449 } |
456 } |
450 qDebug() << " SVG" << svg; |
457 qDebug() << " est SVG" << svg; |
451 } |
458 } |
452 if (svg == 0) |
459 if (svg == 0) |
453 svg = 77.0; |
460 svg = 77.0; |
454 ui->est_svgEdit->setValue(svg); |
461 ui->est_svgEdit->setValue(svg); |
455 |
462 |
456 if (product->mashs_kg > 0 && mashinfuse > 0 && mashtime > 0 && mashtemp > 0) |
463 if (product->mashs_kg > 0 && mashinfuse > 0 && mashtime > 0 && mashtemp > 0) |
457 product->est_fg = Utils::estimate_fg(psugar, pcara, mashinfuse / product->mashs_kg, mashtime, mashtemp, svg, product->est_og); |
464 product->est_fg = Utils::estimate_fg(psugar, pcara, mashinfuse / product->mashs_kg, mashtime, mashtemp, svg, product->est_og); |
458 else |
465 else |
459 product->est_fg = Utils::estimate_fg(psugar, pcara, 0, 0, 0, svg, product->est_og); |
466 product->est_fg = Utils::estimate_fg(psugar, pcara, 0, 0, 0, svg, product->est_og); |
460 qDebug() << " FG" << ui->est_fgEdit->value() << product->est_fg; |
467 qDebug() << " est FG" << ui->est_fgEdit->value() << product->est_fg; |
|
468 product->est_abv = Utils::abvol(product->est_og, product->est_fg); |
|
469 qDebug() << " est ABV" << ui->est_abvEdit->value() << product->est_abv; |
|
470 |
461 if (product->stage > PROD_STAGE_TERTIARY) { |
471 if (product->stage > PROD_STAGE_TERTIARY) { |
462 ui->est_fgLabel->setText(tr("Final FG")); |
472 ui->est_fgLabel->setText(tr("Final FG")); |
463 ui->est_fgEdit->setValue(product->fg); |
473 ui->est_fgEdit->setValue(product->fg); |
464 ui->est_fgShow->setValue(product->fg); |
474 ui->est_fgShow->setValue(product->fg); |
|
475 ui->est_abvLabel->setText(tr("Final ABV")); |
|
476 double abv = Utils::abvol(product->og, product->fg); |
|
477 ui->est_abvEdit->setValue(abv); |
|
478 ui->est_abvShow->setValue(abv); |
465 } else { |
479 } else { |
466 ui->est_fgEdit->setValue(product->est_fg); |
480 ui->est_fgEdit->setValue(product->est_fg); |
467 ui->est_fgShow->setValue(product->est_fg); |
481 ui->est_fgShow->setValue(product->est_fg); |
|
482 ui->est_abvEdit->setValue(product->est_abv); |
|
483 ui->est_abvShow->setValue(product->est_abv); |
468 } |
484 } |
469 ui->est_fg3Edit->setValue(product->est_fg); |
485 ui->est_fg3Edit->setValue(product->est_fg); |
470 |
|
471 product->est_abv = Utils::abvol(product->est_og, product->est_fg); |
|
472 qDebug() << " ABV" << ui->est_abvEdit->value() << product->est_abv; |
|
473 ui->est_abvEdit->setValue(product->est_abv); |
|
474 ui->est_abv2Edit->setValue(product->est_abv); |
486 ui->est_abv2Edit->setValue(product->est_abv); |
475 ui->est_abvShow->setValue(product->est_abv); |
|
476 |
487 |
477 /* |
488 /* |
478 * Calculate kilocalories/liter. Formula from brouwhulp. |
489 * Calculate kilocalories/liter. Formula from brouwhulp. |
479 * Take the alcohol and sugar parts and then combine. |
490 * Take the alcohol and sugar parts and then combine. |
480 */ |
491 */ |
481 double alc = 1881.22 * product->est_fg * (product->est_og - product->est_fg) / (1.775 - product->est_og); |
492 double alc, sug; |
482 double sug = 3550 * product->est_fg * (0.1808 * product->est_og + 0.8192 * product->est_fg - 1.0004); |
493 if (product->stage > PROD_STAGE_TERTIARY) { |
|
494 alc = 1881.22 * product->fg * (product->og - product->fg) / (1.775 - product->og); |
|
495 sug = 3550 * product->fg * (0.1808 * product->og + 0.8192 * product->fg - 1.0004); |
|
496 } else { |
|
497 alc = 1881.22 * product->est_fg * (product->est_og - product->est_fg) / (1.775 - product->est_og); |
|
498 sug = 3550 * product->est_fg * (0.1808 * product->est_og + 0.8192 * product->est_fg - 1.0004); |
|
499 } |
483 ui->calEdit->setValue(round((alc + sug) / (12 * 0.0295735296))); |
500 ui->calEdit->setValue(round((alc + sug) / (12 * 0.0295735296))); |
484 |
|
485 // Bottle priming |
|
486 double priming_total = 0; |
|
487 for (i = 0; i < product->fermentables.size(); i++) { |
|
488 if (product->fermentables.at(i).added == FERMENTABLE_ADDED_BOTTLE) { |
|
489 priming_total += ((product->fermentables.at(i).yield / 100) * (1 - product->fermentables.at(i).moisture / 100)) * |
|
490 product->fermentables.at(i).amount; |
|
491 qDebug() << " priming" << product->fermentables.at(i).amount << "total" << priming_total; |
|
492 } |
|
493 } |
|
494 double grl = priming_total * 1000.0 * (1 / product->batch_size); |
|
495 double volco2 = grl * 0.510; |
|
496 qDebug() << " priming gr/l" << grl << "volco2" << volco2; |
|
497 |
|
498 if (volco2 > 0) { |
|
499 product->est_carb = volco2; |
|
500 ui->est_carbEdit->setValue(product->est_carb); |
|
501 ui->est_carbShow->setValue(product->est_carb); |
|
502 } |
|
503 } |
501 } |
504 |
502 |
505 |
503 |
506 void EditProduct::calcFermentablesFromOG(double og) |
504 void EditProduct::calcFermentablesFromOG(double og) |
507 { |
505 { |