58 ui->pack_finalabvShow->setValue(0); |
58 ui->pack_finalabvShow->setValue(0); |
59 |
59 |
60 return; |
60 return; |
61 } |
61 } |
62 |
62 |
|
63 if (product->stage > PROD_STAGE_TERTIARY) { |
|
64 ui->pack_abvLabel->setText(tr("Package ABV %:")); |
|
65 ui->pack_finalabvLabel->setText(tr("Final ABV %:")); |
|
66 ui->pack_finalcolorLabel->setText(tr("Final EBC:")); |
|
67 ui->pack_finalibuLabel->setText(tr("Final IBU:")); |
|
68 } else { |
|
69 product->package_abv = product->est_abv; |
|
70 } |
|
71 |
63 double bvol = product->package_volume - (product->package_abv * product->package_volume) / 100.0; |
72 double bvol = product->package_volume - (product->package_abv * product->package_volume) / 100.0; |
64 double balc = product->package_volume - bvol; |
73 double balc = product->package_volume - bvol; |
65 double mvol = product->package_infuse_amount - (product->package_infuse_abv * product->package_infuse_amount) / 100.0; |
74 double mvol = product->package_infuse_amount - (product->package_infuse_abv * product->package_infuse_amount) / 100.0; |
66 double malc = product->package_infuse_amount - mvol; |
75 double malc = product->package_infuse_amount - mvol; |
67 double talc = balc + malc; |
76 double talc = balc + malc; |
68 double tvol = bvol + mvol; |
77 double tvol = bvol + mvol; |
69 |
78 |
70 product->final_abv = round(talc / (tvol + talc) * 10000.0) / 100.0; |
79 product->final_abv = round(talc / (tvol + talc) * 10000.0) / 100.0; |
|
80 ui->pack_abvShow->setValue(product->package_abv); |
71 ui->pack_finalabvShow->setValue(product->final_abv); |
81 ui->pack_finalabvShow->setValue(product->final_abv); |
|
82 |
|
83 double pack_color = product->brew_fermenter_color * (product->package_volume / (product->package_volume + product->package_infuse_amount)); |
|
84 double pack_ibu = product->brew_fermenter_ibu * (product->package_volume / (product->package_volume + product->package_infuse_amount)); |
|
85 |
|
86 ui->pack_finalcolorShow->setValue(pack_color); |
|
87 ui->pack_finalcolorShow->setStyleSheet(Utils::ebc_to_style(pack_color)); |
|
88 ui->pack_finalibuShow->setValue(pack_ibu); |
72 |
89 |
73 TSec = product->secondary_temp; |
90 TSec = product->secondary_temp; |
74 if (TSec < 1) |
91 if (TSec < 1) |
75 TSec = product->primary_end_temp; |
92 TSec = product->primary_end_temp; |
76 if (TSec < 1) |
93 if (TSec < 1) |
344 * Check if kegs volume plus this new volume fits in the package volume. |
361 * Check if kegs volume plus this new volume fits in the package volume. |
345 */ |
362 */ |
346 const QSignalBlocker blocker1(ui->keg_volumeEdit); |
363 const QSignalBlocker blocker1(ui->keg_volumeEdit); |
347 if (product->keg_amount < 0) |
364 if (product->keg_amount < 0) |
348 product->keg_amount = 0; /* Failsafe - bugfix */ |
365 product->keg_amount = 0; /* Failsafe - bugfix */ |
349 if (val > product->package_volume) { |
366 if (val > (product->package_volume + product->package_infuse_amount)) { |
350 val = product->package_volume; |
367 val = product->package_volume + product->package_infuse_amount; |
351 const QSignalBlocker blocker2(ui->bottle_volumeEdit); |
368 const QSignalBlocker blocker2(ui->bottle_volumeEdit); |
352 ui->bottle_volumeEdit->setValue(val); |
369 ui->bottle_volumeEdit->setValue(val); |
353 } |
370 } |
354 |
371 |
355 if ((val + product->keg_amount) > product->package_volume) { |
372 if ((val + product->keg_amount) > (product->package_volume + product->package_infuse_amount)) { |
356 double kegs = product->package_volume - val; |
373 double kegs = product->package_volume + product->package_infuse_amount - val; |
357 product->keg_amount = kegs; |
374 product->keg_amount = kegs; |
358 ui->keg_volumeEdit->setValue(kegs); |
375 ui->keg_volumeEdit->setValue(kegs); |
359 } |
376 } |
360 product->bottle_amount = val; |
377 product->bottle_amount = val; |
361 calcPack(); |
378 calcPack(); |
452 * Check if bottle volume plus this new volume fits in the package volume. |
469 * Check if bottle volume plus this new volume fits in the package volume. |
453 */ |
470 */ |
454 const QSignalBlocker blocker1(ui->bottle_volumeEdit); |
471 const QSignalBlocker blocker1(ui->bottle_volumeEdit); |
455 if (product->bottle_amount < 0) |
472 if (product->bottle_amount < 0) |
456 product->bottle_amount = 0; /* Failsafe - bugfix */ |
473 product->bottle_amount = 0; /* Failsafe - bugfix */ |
457 if (val > product->package_volume) { |
474 if (val > (product->package_volume + product->package_infuse_amount)) { |
458 val = product->package_volume; |
475 val = product->package_volume + product->package_infuse_amount; |
459 const QSignalBlocker blocker2(ui->keg_volumeEdit); |
476 const QSignalBlocker blocker2(ui->keg_volumeEdit); |
460 ui->keg_volumeEdit->setValue(val); |
477 ui->keg_volumeEdit->setValue(val); |
461 } |
478 } |
462 |
479 |
463 if ((val + product->bottle_amount) > product->package_volume) { |
480 if ((val + product->bottle_amount) > (product->package_volume + product->package_infuse_amount)) { |
464 double bottle = product->package_volume - val; |
481 double bottle = product->package_volume + product->package_infuse_amount - val; |
465 product->bottle_amount = bottle; |
482 product->bottle_amount = bottle; |
466 ui->bottle_volumeEdit->setValue(bottle); |
483 ui->bottle_volumeEdit->setValue(bottle); |
467 } |
484 } |
468 product->keg_amount = val; |
485 product->keg_amount = val; |
469 calcPack(); |
486 calcPack(); |