Moved NaHCO3 and CaCO3 from the base additions to the water agent salts.

Sun, 27 Jun 2021 16:56:52 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 27 Jun 2021 16:56:52 +0200
changeset 758
e6814bed4cb1
parent 757
d13be50c0049
child 759
89bcab49284a

Moved NaHCO3 and CaCO3 from the base additions to the water agent salts.

www/js/global.js file | annotate | diff | comparison | revisions
www/js/prod_edit.js file | annotate | diff | comparison | revisions
www/prod_edit.php file | annotate | diff | comparison | revisions
--- a/www/js/global.js	Sun Jun 27 11:12:24 2021 +0200
+++ b/www/js/global.js	Sun Jun 27 16:56:52 2021 +0200
@@ -400,10 +400,8 @@
 AcidTypeAdapter = new $.jqx.dataAdapter(AcidTypeSource),
 
 BaseTypeData = [
- { id: 0, en: 'Sodiumbicarbonate', nl: 'NaHCO3' },
- { id: 1, en: 'Sodiumcarbonate', nl: 'Na2CO3' },
- { id: 2, en: 'Calciumcarbonate', nl: 'CaCO3' },
- { id: 3, en: 'Calciumhydroxide', nl: 'Ca(OH)2' }
+ { id: 0, en: 'Sodiumcarbonate', nl: 'Na2CO3' },
+ { id: 1, en: 'Calciumhydroxide', nl: 'Ca(OH)2' }
 ],
 BaseTypeSource = {
  localdata: BaseTypeData,
--- a/www/js/prod_edit.js	Sun Jun 27 11:12:24 2021 +0200
+++ b/www/js/prod_edit.js	Sun Jun 27 16:56:52 2021 +0200
@@ -525,8 +525,7 @@
  // Load data and select one record.
  dataAdapter = new $.jqx.dataAdapter(source, {
   loadComplete: function() {
-   var records = dataAdapter.records;
-   dataRecord = records[0];
+   dataRecord = dataAdapter.records[0];
    // Hidden record uuid
    $('#name').val(dataRecord.name);
    $('#code').val(dataRecord.code);
@@ -918,7 +917,7 @@
      calcIBUs();
     });
    },
-   ready: function() { calcFermentables(); $('#jqxTabs').jqxTabs('next'); },
+   ready: function() { $('#jqxTabs').jqxTabs('next'); },
    columns: [
     { text: 'Vergistbaar ingredi&euml;nt', datafield: 'f_name',
      cellsrenderer: function(index, datafield, value, defaultvalue, column, rowdata) {
@@ -1242,6 +1241,12 @@
       case 'NaCl':
        $('#wa_nacl').val(row.m_amount * 1000);
        break;
+      case 'NaHCO3':
+       $('#wa_nahco3').val(row.m_amount * 1000);
+       break;
+      case 'CaCO3':
+       $('#wa_caco3').val(row.m_amount * 1000);
+       break;
       case 'Melkzuur':
        $('#wa_acid_name').val(0);
        $('#wa_acid').val(row.m_amount * 1000);
@@ -1266,23 +1271,13 @@
        $('#wa_acid_perc').val(AcidTypeData[3].AcidPrc);
        last_acid = 'Zwavelzuur';
        break;
-      case 'NaHCO3':
+      case 'Na2CO3':
        $('#wa_base_name').val(0);
        $('#wa_base').val(row.m_amount * 1000);
-       last_base = 'NaHCO3';
-       break;
-      case 'Na2CO3':
-       $('#wa_base_name').val(1);
-       $('#wa_base').val(row.m_amount * 1000);
        last_base = 'Na2CO3';
        break;
-      case 'CaCO3':
-       $('#wa_base_name').val(2);
-       $('#wa_base').val(row.m_amount * 1000);
-       last_base = 'CaCO3';
-       break;
       case 'Ca(OH)2':
-       $('#wa_base_name').val(3);
+       $('#wa_base_name').val(1);
        $('#wa_base').val(row.m_amount * 1000);
        last_base = 'Ca(OH)2';
        break;
@@ -2928,15 +2923,19 @@
     case 'NaCl':
      $('#wa_nacl').val(row.m_amount * 1000);
      break;
+    case 'NaHCO3':
+     $('#wa_nahco3').val(row.m_amount * 1000);
+     break;
+    case 'CaCO3':
+     $('#wa_caco3').val(row.m_amount * 1000);
+     break;
     case 'Melkzuur':
     case 'Zoutzuur':
     case 'Fosforzuur':
     case 'Zwavelzuur':
      $('#wa_acid').val(row.m_amount * 1000);
      break;
-    case 'NaHCO3':
     case 'Na2CO3':
-    case 'CaCO3':
     case 'Ca(OH)2':
      $('#wa_base').val(row.m_amount * 1000);
      break;
@@ -3292,14 +3291,17 @@
   /* Calculate Salt additions */
   if (liters > 0) {
    calcium += (parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCa / MMCaCl2 * 1000 +
-    parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMCa / MMCaSO4 * 1000) / liters;
+    parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMCa / MMCaSO4 * 1000 +
+    parseFloat($('#wa_caco3').jqxNumberInput('decimal')) * MMCa / MMCaCO3 * 1000) / liters;
    magnesium += (parseFloat($('#wa_mgso4').jqxNumberInput('decimal')) * MMMg / MMMgSO4 * 1000) / liters;
    sodium += (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 +
-    parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMNa / MMNaHCO3 * 1000) / liters;
+    parseFloat($('#wa_nahco3').jqxNumberInput('decimal')) * MMNa / MMNaHCO3 * 1000) / liters;
    sulfate += (parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMSO4 / MMCaSO4 * 1000 +
     parseFloat($('#wa_mgso4').jqxNumberInput('decimal')) * MMSO4 / MMMgSO4 * 1000) / liters;
    chloride += (2 * parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCl / MMCaCl2 * 1000 +
     parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMCl / MMNaCl * 1000) / liters;
+   bicarbonate += (parseFloat($('#wa_nahco3').jqxNumberInput('decimal')) * MMHCO3 / MMNaHCO3 * 1000 +
+    parseFloat($('#wa_caco3').jqxNumberInput('decimal')) / 3 * MMHCO3 / MMCaCO3 * 1000) / liters;
   }
 
   if (dataRecord.wa_acid_name < 0 || dataRecord,wa_acid_name >= AcidTypeData.length) {
@@ -3361,23 +3363,23 @@
     f2d = f1d * r1d;
     f3d = f2d * r2d;
     switch (BT) {
+//     case 0:
+//      RA = -protonDeficit / (f1d - f3d); // Sodiumbicarbonate, mmol totaal
+//      RA = RA * MMNaHCO3 / 1000; //gram
+//      $('#wa_base').val(Round(RA, 2));
+//      setWaterAgent('NaHCO3', Round(RA, 2));
+//      if (liters > 0) {
+//       // Na
+//       RA = (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 +
+//             parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMNa / MMNaHCO3 * 1000) / liters;
+//       sodium = wg_sodium + RA;
+//       // HCO3
+//       RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMHCO3 / MMNaHCO3 * 1000) / liters;
+//       bicarbonate = wg_bicarbonate + RA;
+//       total_alkalinity = bicarbonate * 50 / 61;
+//      }
+//      break;
      case 0:
-      RA = -protonDeficit / (f1d - f3d); // Sodiumbicarbonate, mmol totaal
-      RA = RA * MMNaHCO3 / 1000; //gram
-      $('#wa_base').val(Round(RA, 2));
-      setWaterAgent('NaHCO3', Round(RA, 2));
-      if (liters > 0) {
-       // Na
-       RA = (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 +
-             parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMNa / MMNaHCO3 * 1000) / liters;
-       sodium = wg_sodium + RA;
-       // HCO3
-       RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMHCO3 / MMNaHCO3 * 1000) / liters;
-       bicarbonate = wg_bicarbonate + RA;
-       total_alkalinity = bicarbonate * 50 / 61;
-      }
-      break;
-     case 1:
       RA = -protonDeficit / (2 * f1d + f2d); // Sodiumcarbonate, mmol totaal
       RA = RA * MMNa2CO3 / 1000; //gram
       $('#wa_base').val(Round(RA, 2));
@@ -3392,26 +3394,26 @@
        total_alkalinity = bicarbonate * 50 / 61;
       }
       break;
-     case 2:
-      RA = -protonDeficit * (f1d - f3d); // Calciumcarbonate, mmol totaal
-      RA = RA * MMCaCO3 / 1000; //gram
-      //but only 1/3 is effective, so add 3 times as much
-      RA = 3 * RA;
-      $('#wa_base').val(Round(RA, 2));
-      setWaterAgent('CaCO3', Round(RA, 2));
-      if (liters > 0) {
-       //Bicarbonate
-       RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) / 3 * MMHCO3 / MMCaCO3 * 1000) / liters;
-       bicarbonate = wg_bicarbonate + RA;
-       total_alkalinity = bicarbonate * 50 / 61;
-       //Ca precipitates out as Ca10(PO4)6(OH)2
-       RA = (parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCa / MMCaCl2 * 1000 +
-             parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMCa / MMCaSO4 * 1000 +
-             parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMCa / MMCaCO3 * 1000) / liters;
-       calcium = wg_calcium + RA;
-      }
-      break;
-     case 3:
+//     case 2:
+//      RA = -protonDeficit * (f1d - f3d); // Calciumcarbonate, mmol totaal
+//      RA = RA * MMCaCO3 / 1000; //gram
+//      //but only 1/3 is effective, so add 3 times as much
+//      RA = 3 * RA;
+//      $('#wa_base').val(Round(RA, 2));
+//      setWaterAgent('CaCO3', Round(RA, 2));
+//      if (liters > 0) {
+//       //Bicarbonate
+//       RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) / 3 * MMHCO3 / MMCaCO3 * 1000) / liters;
+//       bicarbonate = wg_bicarbonate + RA;
+//       total_alkalinity = bicarbonate * 50 / 61;
+//       //Ca precipitates out as Ca10(PO4)6(OH)2
+//       RA = (parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCa / MMCaCl2 * 1000 +
+//             parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMCa / MMCaSO4 * 1000 +
+//             parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMCa / MMCaCO3 * 1000) / liters;
+//       calcium = wg_calcium + RA;
+//      }
+//      break;
+     case 1:
       RA = -protonDeficit / 19.3; // Calciumhydroxide
       $('#wa_base').val(Round(RA, 2));
       setWaterAgent('Ca(OH)2', Round(RA, 2));
@@ -3439,16 +3441,16 @@
    if (parseFloat($('#wa_base').jqxNumberInput('decimal')) > 0 && liters > 0) {
     /* First add the base salts */
     switch (BT) {
-     case 0:  // Sodiumbicarbonate, Na
-      RA = (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 +
-            parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMNa / MMNaHCO3 * 1000) / liters;
-      sodium = wg_sodium + RA;
-      // HCO3
-      RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMHCO3 / MMNaHCO3 * 1000) / liters;
-      bicarbonate = wg_bicarbonate + RA;
-      total_alkalinity = bicarbonate * 50 / 61;
-      break;
-     case 1: // Sodiumcarbonate
+//     case 0:  // Sodiumbicarbonate, Na
+//      RA = (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 +
+//            parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMNa / MMNaHCO3 * 1000) / liters;
+//      sodium = wg_sodium + RA;
+//      // HCO3
+//      RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMHCO3 / MMNaHCO3 * 1000) / liters;
+//      bicarbonate = wg_bicarbonate + RA;
+//      total_alkalinity = bicarbonate * 50 / 61;
+//      break;
+     case 0: // Sodiumcarbonate
       RA = (parseFloat($('#wa_nacl').jqxNumberInput('decimal')) * MMNa / MMNaCl * 1000 +
             parseFloat($('#wa_base').jqxNumberInput('decimal')) * 2 * MMNa / MMNa2CO3 * 1000) / liters;
       sodium = wg_sodium + RA;
@@ -3457,16 +3459,16 @@
       bicarbonate = wg_bicarbonate + RA;
       total_alkalinity = bicarbonate * 50 / 61;
       break;
-     case 2: // Calciumcarbonate: Bicarbonate
-      RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) / 3 * MMHCO3 * 1000 / MMCaCO3) / liters;
-      bicarbonate = wg_bicarbonate + RA;
-      total_alkalinity = bicarbonate * 50 / 61;
-      // Ca
-      RA = (parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCa * 1000 / MMCaCl2 +
-            parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMCa * 1000 / MMCaSO4 +
-            parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMCa * 1000/ MMCaCO3) / liters;
-      calcium = wg_calcium + RA;
-      break;
+//     case 2: // Calciumcarbonate: Bicarbonate
+//      RA = (parseFloat($('#wa_base').jqxNumberInput('decimal')) / 3 * MMHCO3 * 1000 / MMCaCO3) / liters;
+//      bicarbonate = wg_bicarbonate + RA;
+//      total_alkalinity = bicarbonate * 50 / 61;
+//      // Ca
+//      RA = (parseFloat($('#wa_cacl2').jqxNumberInput('decimal')) * MMCa * 1000 / MMCaCl2 +
+//            parseFloat($('#wa_caso4').jqxNumberInput('decimal')) * MMCa * 1000 / MMCaSO4 +
+//            parseFloat($('#wa_base').jqxNumberInput('decimal')) * MMCa * 1000/ MMCaCO3) / liters;
+//      calcium = wg_calcium + RA;
+//      break;
     }
    }
 
@@ -3875,6 +3877,8 @@
   $('#wa_caso4').jqxNumberInput(spinstate);
   $('#wa_mgso4').jqxNumberInput(spinstate);
   $('#wa_nacl').jqxNumberInput(spinstate);
+  $('#wa_nahco3').jqxNumberInput(spinstate);
+  $('#wa_caco3').jqxNumberInput(spinstate);
   $('#mash_ph').jqxNumberInput(spinstate);
   $('#calc_acid').jqxCheckBox(onval);
   $('#wa_base_name').jqxDropDownList(onval);
@@ -4223,6 +4227,20 @@
     calcWater();
    }
   });
+  $('#wa_nahco3').on('change', function(event) {
+   if (event.args) {
+    setWaterAgent('NaHCO3', 0);
+    setWaterAgent('NaHCO3', event.args.value);
+    calcWater();
+   }
+  });
+  $('#wa_caco3').on('change', function(event) {
+   if (event.args) {
+    setWaterAgent('CaCO3', 0);
+    setWaterAgent('CaCO3', event.args.value);
+    calcWater();
+   }
+  });
   $('#wa_base_name').on('select', function(event) {
    if (event.args) {
     var index = event.args.index;
@@ -6125,7 +6143,9 @@
   content: 'Keukenzout. Voor het maken van een ander waterprofiel. Voegt natrium en chloride toe. ' +
   'Voor het accentueren van zoetheid. Bij hoge dosering wordt het bier ziltig.'
  });
- $('#wa_cacl2,#wa_caso4,#wa_mgso4,#wa_nacl').jqxNumberInput(Spin1dec);
+ $('#wa_nahco3').jqxTooltip({ content: 'Baksoda'});
+ $('#wa_caco3').jqxTooltip({ content: 'Kalk'});
+ $('#wa_cacl2,#wa_caso4,#wa_mgso4,#wa_nacl,#wa_nahco3,#wa_caco3').jqxNumberInput(Spin1dec);
  $('#mash_ph').jqxTooltip({ content: 'Maisch pH tussen 5.2 en 5.6. Gebruik 5.2 voor lichte en 5.5 voor donkere bieren.'});
  $('#mash_ph').jqxNumberInput(SpinpH);
  $('#calc_acid').jqxCheckBox({ theme: theme, width: 120, height: 23 });
--- a/www/prod_edit.php	Sun Jun 27 11:12:24 2021 +0200
+++ b/www/prod_edit.php	Sun Jun 27 16:56:52 2021 +0200
@@ -515,12 +515,16 @@
         <td style="padding: 3px;"><div id="sparge_ph"></div></td>
        </tr>
        <tr>
-         <td colspan="4"></td>
+        <td style="vertical-align: top; float: right; padding: 3px;">Baksoda (NaHCO3) gr:</td>
+        <td style="padding: 3px;"><div id="wa_nahco3"></div></td>
+        <td colspan="2"></td>
         <td style="vertical-align: top; float: right; padding: 3px;">Aanzuren met:</td>
         <td style="padding: 3px;"><div id="sparge_acid_type"></div></td>
        </tr>
        <tr>
-        <td colspan="4"></td>
+        <td style="vertical-align: top; float: right; padding: 3px;">Kalk (CaCO3) gr:</td>
+        <td style="padding: 3px;"><div id="wa_caco3"></div></td>
+        <td colspan="2"></td>
         <td style="vertical-align: top; float: right; padding: 3px;">Sterkte %:</td>
         <td style="padding: 3px;"><div id="sparge_acid_perc"></div></td>
        </tr>

mercurial