diff -r ce92dc75cb09 -r 9a685ee91537 www/js/prod_edit.js --- a/www/js/prod_edit.js Fri Jan 04 17:52:17 2019 +0100 +++ b/www/js/prod_edit.js Fri Jan 04 20:17:32 2019 +0100 @@ -146,7 +146,7 @@ efficiency = parseFloat(dataRecord.efficiency); var rows = $('#fermentableGrid').jqxGrid('getrows'); for (i = 0; i < rows.length; i++) { - row = rows[i]; + var row = rows[i]; if ((row.f_added == "Fermentation") || (row.f_added == "Lagering") || (row.f_added == "Bottle")) { var x = (row.f_yield / 100) * (1 - row.f_moisture / 100); vol += row.f_amount / (x * sugardensity + (1 - x) * 1); @@ -166,7 +166,7 @@ tot = 0; d = 0; for (i = 0; i < rows.length; i++) { - row = rows[i]; + var row = rows[i]; d = row.f_percentage / 100 * (row.f_yield / 100) * (1 - row.f_moisture / 100); if (row.f_added == "Mash") d = efficiency / 100 * d; @@ -180,7 +180,7 @@ if (totmass) { console.log("pass:"+j+" totmass:"+totmass); for (i = 0; i < rows.length; i++) { - row = rows[i]; + var row = rows[i]; row.f_amount = row.f_percentage / 100 * totmass; $("#fermentableGrid").jqxGrid('setcellvalue', i, "f_amount", row.f_percentage / 100 * totmass); } @@ -525,15 +525,10 @@ var sulfate = 0; var ph = 0; var RA = 0; - var acid = 0; var frac = 0; - var MolWt = 0; - var pK1 = 0; - var pK2 = 0; - var pK3 = 0; var TpH = 0; - var AcidSG = 0; - var AcidPrc = 0; + var Acid = 0; + var Acidmg = 0; var protonDeficit = 0; if (dataRecord.w1_name == "") { @@ -620,12 +615,12 @@ var BT = $("#wa_base_name").val(); var result = GetAcidSpecs(AT); - pK1 = result.pK1; - pK2 = result.pK2; - pK3 = result.pK3; - MolWt = result.MolWt; - AcidSG = result.AcidSG; - AcidPrc = result.AcidPrc; + var pK1 = result.pK1; + var pK2 = result.pK2; + var pK3 = result.pK3; + var MolWt = result.MolWt; + var AcidSG = result.AcidSG; + var AcidPrc = result.AcidPrc; if (dataRecord.calc_acid) { TpH = parseFloat(dataRecord.mash_ph); @@ -652,16 +647,16 @@ } else if (protonDeficit < 0) { //Add base $("#wa_acid").val(0); setWaterAgent(last_acid, 0); - r1d = Math.pow(10, (TpH - 6.38)); - r2d = Math.pow(10, (TpH - 10.38)); - f1d = 1 / (1 + r1d + r1d * r2d); - f2d = f1d * r1d; - f3d = f2d * r2d; + var r1d = Math.pow(10, (TpH - 6.38)); + var r2d = Math.pow(10, (TpH - 10.38)); + var f1d = 1 / (1 + r1d + r1d * r2d); + var f2d = f1d * r1d; + var f3d = f2d * r2d; switch (BT) { - case 'NaHCO3': base = -protonDeficit / (f1d - f3d); //mmol totaal - base = base * MMNaHCO3/1000; //gram - $("#wa_base").val(Math.round(base * 100) / 100); - setWaterAgent(BT, Math.round(base * 100) / 100); + case 'NaHCO3': RA = -protonDeficit / (f1d - f3d); //mmol totaal + RA = RA * MMNaHCO3/1000; //gram + $("#wa_base").val(Math.round(RA * 100) / 100); + setWaterAgent(BT, Math.round(RA * 100) / 100); if (liters > 0) { // Na RA = parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMNa / MMNaCl + @@ -676,10 +671,10 @@ RA = ResidualAlkalinity(wb_total_alkalinity, wb_calcium, wb_magnesium); } break; - case 'Na2CO3': base = -protonDeficit / (2 * f1d + f2d); //mmol totaal - base = base * MMNa2CO3/1000; //gram - $("#wa_base").val(Math.round(base * 100) / 100); - setWaterAgent(BT, Math.round(base * 100) / 100); + case 'Na2CO3': RA = -protonDeficit / (2 * f1d + f2d); //mmol totaal + RA = RA * MMNa2CO3/1000; //gram + $("#wa_base").val(Math.round(RA * 100) / 100); + setWaterAgent(BT, Math.round(RA * 100) / 100); if (liters > 0) { RA = parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMNa / MMNaCl + parseFloat($("#wa_base").jqxNumberInput('decimal')) * 2 * MMNa / MMNa2CO3; @@ -693,12 +688,12 @@ RA = ResidualAlkalinity(wb_total_alkalinity, wb_calcium, wb_magnesium); } break; - case 'CaCO3': base = -protonDeficit * (f1d - f3d); //mmol totaal - base = base * MMCaCO3/1000; //gram + case 'CaCO3': RA = -protonDeficit * (f1d - f3d); //mmol totaal + RA = RA * MMCaCO3/1000; //gram //but only 1/3 is effective, so add 3 times as much - base = 3 * base; - $("#wa_base").val(Math.round(base * 100) / 100); - setWaterAgent(BT, Math.round(base * 100) / 100); + RA = 3 * RA; + $("#wa_base").val(Math.round(RA * 100) / 100); + setWaterAgent(BT, Math.round(RA * 100) / 100); if (liters > 0) { //Bicarbonate RA = parseFloat($("#wa_base").jqxNumberInput('decimal')) / 3 * MMHCO3 / MMCaCO3; @@ -714,9 +709,9 @@ RA = ResidualAlkalinity(wb_total_alkalinity, wb_calcium, wb_magnesium); } break; - case 'Ca(OH)2': base = -protonDeficit / 19.3; // g - $("#wa_base").val(Math.round(base * 100) / 100); - setWaterAgent(BT, Math.round(base * 100) / 100); + case 'Ca(OH)2': RA = -protonDeficit / 19.3; // g + $("#wa_base").val(Math.round(RA * 100) / 100); + setWaterAgent(BT, Math.round(RA * 100) / 100); if (liters > 0) { // Bicarbonate RA = -protonDeficit / liters; @@ -799,10 +794,10 @@ frac = CalcFrac(pHa, pK1, pK2, pK3); protonDeficit = Acid * frac; - deltapH = 0.001; - deltapd = 0.1; - pd = ProtonDeficit(pHa); - n = 0; + var deltapH = 0.001; + var deltapd = 0.1; + var pd = ProtonDeficit(pHa); + var n = 0; while (((pd < (protonDeficit - deltapd)) || (pd > (protonDeficit + deltapd))) && (n < 2000)) { n++; if (pd < (protonDeficit-deltapd)) @@ -922,50 +917,50 @@ console.log("calcSparge() target pH: "+TargetpH+" Source: "+Source_pH+" alkalinity: "+Source_alkalinity); // Step 1: Compute the mole fractions of carbonic (f1o), bicarbonate (f2o) and carbonate(f3o) at the water pH - r1 = Math.pow(10, Source_pH - 6.38); - r2 = Math.pow(10, Source_pH - 10.33); - d = 1 + r1 + r1*r2; - f1 = 1/d; - f2 = r1/d; - f3 = r1 * r2 / d; + var r1 = Math.pow(10, Source_pH - 6.38); + var r2 = Math.pow(10, Source_pH - 10.33); + var d = 1 + r1 + r1*r2; + var f1 = 1/d; + var f2 = r1/d; + var f3 = r1 * r2 / d; //Step 2. Compute the mole fractions at pH = 4.3 (the pH which defines alkalinity) - r143 = Math.pow(10, 4.3 - 6.38); - r243 = Math.pow(10, 4.3 - 10.33); - d43 = 1 + r143 + r143*r243; - f143 = 1/d43; - f243 = r143 / d43; - f343 = r143 * r243 / d43; + var r143 = Math.pow(10, 4.3 - 6.38); + var r243 = Math.pow(10, 4.3 - 10.33); + var d43 = 1 + r143 + r143*r243; + var f143 = 1/d43; + var f243 = r143 / d43; + var f343 = r143 * r243 / d43; //Step 3. Convert the sample alkalinity to milliequivalents/L - alkalinity = Source_alkalinity / 50; + var alkalinity = Source_alkalinity / 50; //Step 4. Solve alkalinity = alkalinity / ((f143-f1)+(f3-f343)); //Step 5. Compute mole fractions at desired pH - r1g = Math.pow(10, TargetpH - 6.38); - r2g = Math.pow(10, TargetpH - 10.33); - dg = 1 + r1g + r1g*r2g; - f1g = 1/dg; - f2g = r1g / dg; - f3g = r1g * r2g / dg; + var r1g = Math.pow(10, TargetpH - 6.38); + var r2g = Math.pow(10, TargetpH - 10.33); + var dg = 1 + r1g + r1g*r2g; + var f1g = 1/dg; + var f2g = r1g / dg; + var f3g = r1g * r2g / dg; //Step 6. Use these to compute the milliequivalents acid required per liter (mEq/L) - Acid = alkalinity * ((f1g-f1)+(f3-f3g)) + Math.pow(10, -TargetpH) - Math.pow(10, -Source_pH); //mEq/l + var Acid = alkalinity * ((f1g-f1)+(f3-f3g)) + Math.pow(10, -TargetpH) - Math.pow(10, -Source_pH); //mEq/l if ($("#sparge_acid_type").val() == "") { $("#sparge_acid_type").val('Melkzuur'); dataRecord.sparge_acid_type = 'Melkzuur'; } - AT = dataRecord.sparge_acid_type; + var AT = dataRecord.sparge_acid_type; var result = GetAcidSpecs(AT); - pK1 = result.pK1; - pK2 = result.pK2; - pK3 = result.pK3; - MolWt = result.MolWt; - AcidSG = result.AcidSG; - AcidPrc = result.AcidPrc; - fract = CalcFrac(TargetpH, pK1, pK2, pK3); + var pK1 = result.pK1; + var pK2 = result.pK2; + var pK3 = result.pK3; + var MolWt = result.MolWt; + var AcidSG = result.AcidSG; + var AcidPrc = result.AcidPrc; + var fract = CalcFrac(TargetpH, pK1, pK2, pK3); //Step 9. Now divide the mEq required by the "fraction". This is the required number of moles of acid. Acid /= fract; @@ -974,7 +969,7 @@ Acid *= MolWt; //mg Acid = Acid / AcidSG; //ml ; 88% lactic solution - f1 = dataRecord.sparge_acid_perc; + var f1 = dataRecord.sparge_acid_perc; if (f1 <= 0.1) f1 = AcidPrc; Acid = Acid * AcidPrc / (f1 / 100);