diff -r a5ade45597d8 -r 945d5eba869a www/js/prod_edit.js --- a/www/js/prod_edit.js Sat Apr 18 15:56:40 2020 +0200 +++ b/www/js/prod_edit.js Tue Apr 21 16:11:26 2020 +0200 @@ -1547,6 +1547,7 @@ calcYeast(); calcInit(); calcMash(); + kookTijd(); console.log('calculations ready'); $('#jqxLoader').jqxLoader('close'); $('#jqxTabs').jqxTabs('first'); @@ -1610,6 +1611,14 @@ /* * Generic functions */ + function kookTijd() { + if (dataRecord.boil_time) { + $('#brew_pmpt_koken').html('Koken ' + dataRecord.boil_time + ' minuten'); + } else { + $('#brew_pmpt_koken').html('Koken "no-boil"'); + } + } + function calcViability() { var vpm = 1.00; var max = 100; @@ -3664,6 +3673,26 @@ $('#brew_aeration_speed').jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); $('#but_pre_boil').jqxButton({ disabled: true }); $('#but_after_boil').jqxButton({ disabled: true }); + } else { + if (dataRecord.boil_time == 0) { + $('#brew_preboil_ph').jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $('#brew_aboil_ph').jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $('#brew_preboil_sg').jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $('#brew_aboil_sg').jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $('#brew_preboil_volume').jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $('#brew_aboil_volume').jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $('#but_pre_boil').jqxButton({ disabled: true }); + $('#but_after_boil').jqxButton({ disabled: true }); + } else { + $('#brew_preboil_ph').jqxNumberInput({ spinButtons: true, readOnly: false, width: 110 }); + $('#brew_aboil_ph').jqxNumberInput({ spinButtons: true, readOnly: false, width: 110 }); + $('#brew_preboil_sg').jqxNumberInput({ spinButtons: true, readOnly: false, width: 110 }); + $('#brew_aboil_sg').jqxNumberInput({ spinButtons: true, readOnly: false, width: 110 }); + $('#brew_preboil_volume').jqxNumberInput({ spinButtons: true, readOnly: false, width: 110 }); + $('#brew_aboil_volume').jqxNumberInput({ spinButtons: true, readOnly: false, width: 110 }); + $('#but_pre_boil').jqxButton({ disabled: false }); + $('#but_after_boil').jqxButton({ disabled: false }); + } } if (dataRecord.stage == 5) // Lagering, allow packaging $('#package_date').jqxDateTimeInput({ disabled: false }); @@ -3943,17 +3972,42 @@ calcMash(); }); $('#boil_time').on('change', function(event) { - console.log('boil_time change:' + parseFloat(event.args.value) + ' old:' + dataRecord.boil_time); - var new_boil, new_evap, old_evap = parseFloat(dataRecord.boil_size) - parseFloat(dataRecord.batch_size); - new_evap = old_evap * (parseFloat(event.args.value) / dataRecord.boil_time); - new_boil = parseFloat(dataRecord.batch_size) + new_evap; - dataRecord.boil_time = parseFloat(event.args.value); - dataRecord.boil_size = new_boil; - $('#est_pre_vol').val(Round(new_boil * 1.04, 2)); - $('#boil_size').val(Round(new_boil, 2)); + var new_boil, new_time, old_time, new_evap, old_evap; + old_time = parseFloat(dataRecord.boil_time); + new_time = parseFloat(event.args.value); + + if (new_time && old_time) { + /* normal boiltime change */ + console.log('boil_time change:' + new_time + ' old:' + old_time); + old_evap = parseFloat(dataRecord.boil_size) - parseFloat(dataRecord.batch_size); + new_evap = old_evap * (new_time / old_time); + new_boil = parseFloat(dataRecord.batch_size) + new_evap; + dataRecord.boil_time = new_time; + dataRecord.boil_size = new_boil; + $('#est_pre_vol').val(Round(new_boil * 1.04, 2)); + $('#boil_size').val(Round(new_boil, 2)); + } else if (new_time && ! old_time) { + /* from noboil to boil */ + console.log('boil_time change:' + new_time + ' old: noboil'); + new_evap = parseFloat($('#eq_evap_rate').jqxNumberInput('decimal')) * new_time / 60; + new_boil = parseFloat(dataRecord.batch_size) + new_evap; + dataRecord.boil_time = new_time; + dataRecord.boil_size = new_boil; + $('#est_pre_vol').val(Round(new_boil * 1.04, 2)); + $('#boil_size').val(Round(new_boil, 2)); + } else if (! new_time && old_time) { + /* from boil to noboil */ + console.log('boil_time change: noboil, old:' + old_time); + dataRecord.boil_time = 0; + dataRecord.boil_size = dataRecord.batch_size; + $('#est_pre_vol').val(Round(new_boil * 1.04, 2)); + $('#boil_size').val(Round(dataRecord.boil_size, 2)); + } calcFermentables(); calcIBUs(); calcYeast(); + calcStage(); + kookTijd(); }); $('#efficiency').on('change', function(event) { var estog = parseFloat($('#est_og').jqxNumberInput('decimal')); @@ -4611,7 +4665,7 @@ $('#batch_size').jqxNumberInput(Spin1dec); $('#batch_size').jqxNumberInput({ min: 4 }); $('#boil_time').jqxNumberInput(PosInt); - $('#boil_time').jqxNumberInput({ min: 4, max: 360 }); + $('#boil_time').jqxNumberInput({ min: 0, max: 360 }); $('#boil_size').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 90, height: 23, decimalDigits: 2, readOnly: true }); $('#st_guide,#st_name,#st_type,#st_category').jqxInput({ theme: theme, width: 250, height: 23 }); $('#est_og').jqxNumberInput(SGopts); @@ -4648,7 +4702,7 @@ $('#eq_top_up_water').jqxTooltip({ content: 'Extra water in het gistvat.' }); $('#eq_trub_chiller_loss').jqxTooltip({ content: 'Standaard verlies bij het overbrengen naar het gistvat.' }); $('#eq_evap_rate').jqxTooltip({ content: 'Verdamping in liters per uur.' }); - $('#eq_boil_time').jqxTooltip({ content: 'Normale kooktijd in minuten.' }); + $('#eq_boil_time').jqxTooltip({ content: 'Normale kooktijd in minuten, 0 voor no-boil recepten.' }); $('#eq_top_up_kettle').jqxTooltip({ content: 'Extra water toevoegen tijdens de kook.' }); $('#eq_hop_utilization').jqxTooltip({ content: '100% voor kleine installaties, hoger voor grote brouwerijen.' }); $('#eq_notes').jqxTooltip({ content: 'Opmerkingen over deze apparatuur.' });