127 mashtime += row.step_time; |
127 mashtime += row.step_time; |
128 mashtemp += row.step_time * row.step_temp; |
128 mashtemp += row.step_time * row.step_temp; |
129 } |
129 } |
130 } |
130 } |
131 mashtemp = mashtemp / mashtime; |
131 mashtemp = mashtemp / mashtime; |
132 console.log("mash time:"+mashtime+" temp:"+mashtemp); |
|
133 } |
132 } |
134 |
133 |
135 if (!(rows = $('#fermentableGrid').jqxGrid('getrows'))) { |
134 if (!(rows = $('#fermentableGrid').jqxGrid('getrows'))) { |
136 return; // grid not yet loaded. |
135 return; // grid not yet loaded. |
137 } |
136 } |
173 } |
172 } |
174 |
173 |
175 if (mvol > 0) { |
174 if (mvol > 0) { |
176 var v = s / sugardensity + mvol; |
175 var v = s / sugardensity + mvol; |
177 s = 1000 * s / (v * 10); //deg. Plato |
176 s = 1000 * s / (v * 10); //deg. Plato |
178 est_mash_sg = Math.round(plato_to_sg(s) * 1000) / 1000; |
177 est_mash_sg = Math.round(plato_to_sg(s) * 10000) / 10000; |
179 //console.log("est_mash_sg "+est_mash_sg); |
|
180 $('#est_mash_sg').val(est_mash_sg); |
178 $('#est_mash_sg').val(est_mash_sg); |
181 } |
179 } |
182 |
180 |
183 // Estimate total recipe OG. |
181 // Estimate total recipe OG. |
184 dataRecord.est_og = estimate_sg(sugarsf + addedS, parseFloat(dataRecord.batch_size)); |
182 dataRecord.est_og = estimate_sg(sugarsf + addedS, parseFloat(dataRecord.batch_size)); |
210 var top = dataRecord.brew_fermenter_extrawater; |
208 var top = dataRecord.brew_fermenter_extrawater; |
211 |
209 |
212 if (dataRecord.brew_fermenter_volume > 0) { |
210 if (dataRecord.brew_fermenter_volume > 0) { |
213 var sug = sg_to_plato(ogx) * dataRecord.brew_fermenter_volume * ogx / 100; //kg of sugar in |
211 var sug = sg_to_plato(ogx) * dataRecord.brew_fermenter_volume * ogx / 100; //kg of sugar in |
214 sug += addedS; //kg |
212 sug += addedS; //kg |
215 console.log("Contents ferm_vol:"+dataRecord.brew_fermenter_volume+" top:"+top+" vol:"+vol+" addedS:"+addedS+" addedmass:"+addedmass); |
213 //console.log("Contents ferm_vol:"+dataRecord.brew_fermenter_volume+" top:"+top+" vol:"+vol+" addedS:"+addedS+" addedmass:"+addedmass); |
216 |
214 |
217 if ((dataRecord.brew_fermenter_volume * ogx + addedmass) > 0) { |
215 if ((dataRecord.brew_fermenter_volume * ogx + addedmass) > 0) { |
218 var pt = 100 * sug / (dataRecord.brew_fermenter_volume * ogx + addedmass + top); |
216 var pt = 100 * sug / (dataRecord.brew_fermenter_volume * ogx + addedmass + top); |
219 dataRecord.brew_fermenter_sg = Math.round(plato_to_sg(pt) * 1000) / 1000; |
217 dataRecord.brew_fermenter_sg = Math.round(plato_to_sg(pt) * 10000) / 10000; |
220 $("#brew_fermenter_sg").val(dataRecord.brew_fermenter_sg); |
218 $("#brew_fermenter_sg").val(dataRecord.brew_fermenter_sg); |
221 // color |
219 // color |
222 var cw = colort / (aboil_volume + top) * 8.34436; |
220 var cw = colort / (aboil_volume + top) * 8.34436; |
223 dataRecord.brew_fermenter_color = kw_to_ebc(dataRecord.color_method, cw); |
221 dataRecord.brew_fermenter_color = kw_to_ebc(dataRecord.color_method, cw); |
224 $("#brew_fermenter_color").val(dataRecord.brew_fermenter_color); |
222 $("#brew_fermenter_color").val(dataRecord.brew_fermenter_color); |
225 var scolor = ebc_to_color(dataRecord.brew_fermenter_color); |
223 var scolor = ebc_to_color(dataRecord.brew_fermenter_color); |
226 $("#bcolorf").show(); |
224 $("#bcolorf").show(); |
227 document.getElementById("bcolorf").style.background= scolor; |
225 document.getElementById("bcolorf").style.background= scolor; |
228 console.log("OG in fermenter:"+dataRecord.brew_fermenter_sg+" color:"+dataRecord.brew_fermenter_color); |
226 //console.log("OG in fermenter:"+dataRecord.brew_fermenter_sg+" color:"+dataRecord.brew_fermenter_color); |
229 } |
227 } |
230 } else { |
228 } else { |
231 // Negative volume |
229 // Negative volume |
232 dataRecord.brew_fermenter_sg = dataRecord.brew_fermenter_color = 0; |
230 dataRecord.brew_fermenter_sg = dataRecord.brew_fermenter_color = 0; |
233 $("#brew_fermenter_sg").val(0); |
231 $("#brew_fermenter_sg").val(0); |
281 $("#est_abv2").val(dataRecord.est_abv); |
279 $("#est_abv2").val(dataRecord.est_abv); |
282 |
280 |
283 // Calculate the final svg if available use the real value. |
281 // Calculate the final svg if available use the real value. |
284 if ((dataRecord.stage >= 6) && (dataRecord.fg > 0.990) && (dataRecord.fg < dataRecord.brew_fermenter_sg)) { |
282 if ((dataRecord.stage >= 6) && (dataRecord.fg > 0.990) && (dataRecord.fg < dataRecord.brew_fermenter_sg)) { |
285 svg = 100 * (dataRecord.brew_fermenter_sg - dataRecord.fg) / (dataRecord.brew_fermenter_sg - 1); |
283 svg = 100 * (dataRecord.brew_fermenter_sg - dataRecord.fg) / (dataRecord.brew_fermenter_sg - 1); |
286 console.log("real svg:"+svg); |
284 //console.log("real svg:"+svg); |
287 } |
285 } |
288 |
286 |
289 }; |
287 }; |
290 |
288 |
291 /* |
289 /* |
1237 date1_unixtime = parseInt(date1.getTime() / 1000); |
1235 date1_unixtime = parseInt(date1.getTime() / 1000); |
1238 date2_unixtime = parseInt(date2.getTime() / 1000); |
1236 date2_unixtime = parseInt(date2.getTime() / 1000); |
1239 // This is the calculated difference in seconds |
1237 // This is the calculated difference in seconds |
1240 var timeDifference = date1_unixtime - date2_unixtime; |
1238 var timeDifference = date1_unixtime - date2_unixtime; |
1241 var timeDifferenceInDays = timeDifference / 60 / 60 / 24; |
1239 var timeDifferenceInDays = timeDifference / 60 / 60 / 24; |
1242 console.log(date1+' '+date2+' days: '+timeDifferenceInDays); |
1240 //console.log(date1+' '+date2+' days: '+timeDifferenceInDays); |
1243 if (timeDifferenceInDays > 0) { // At least one day |
1241 if (timeDifferenceInDays > 0) { // At least one day |
1244 if (timeDifferenceInDays >= 42) // 6 weeks |
1242 if (timeDifferenceInDays >= 42) // 6 weeks |
1245 newstage = 9; // Ready to taste |
1243 newstage = 9; // Ready to taste |
1246 else if (timeDifferenceInDays >= 14) // 14 days |
1244 else if (timeDifferenceInDays >= 14) // 14 days |
1247 newstage = 8; // Mature |
1245 newstage = 8; // Mature |