www/prod_new.php

Tue, 31 Aug 2021 20:48:37 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Tue, 31 Aug 2021 20:48:37 +0200
changeset 774
92e1e8f175a2
parent 240
a85c1d4c4d12
permissions
-rw-r--r--

Split batch, adjust mash step volume. In the duplicated log_brew handle the missing values. In save product, round the mash step sg to 4 decimals. In prod_edit, ingredients are stored as strings, not arrays. This triggered a memory corruption that only happened in rare circumstances. Don't fix mash step fields in the javascript, it is already done during load from the database. Calculation of the mash volume is rounded to 6 decimals. Enter mash step Brix/Plato value, the SG result is rounded to 4 decimals.

<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php');
page_header('Nieuw product', 'prod_new');
?>

   <div id='jqxTabs'>
    <ul>
     <li style="margin-left: 30px;">Product basis</li>
     <li>Bierstijl</li>
     <li>Apparatuur</li>
     <li>Overzicht</li>
    </ul>

    <div class="section">
     <div style="overflow: hidden;">
      <table style="width: 100%;">
       <tr>
        <td style="vertical-align: top; float: right; padding: 3px;">Brouw project naam:</td>
        <td align="left" colspan="3" style="vertical-align: top; padding: 3px;"><input id="name" /></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right; padding: 3px;">Brouw project code:</td>
	<td align="left" style="vertical-align: top; padding: 3px;"><input id="code" /></td>
        <td style="vertical-align: top; float: right; padding: 3px;">Brouw type:</td>
        <td align="left" style="padding: 3px;"><div id="type"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right; padding: 3px;">Opmerkingen:</td>
        <td colspan="3" style="padding: 3px;"><textarea id="notes"></textarea></td>
       </tr>
      </table>
     </div>
     <div id="hintBase" class="hint">
     </div>
     <div id="baseButtonsWrapper">
      <input type="button" value="Volgende" class="nextButton" id="nextButtonBase" />
     </div>
    </div>

    <div class="section">
     <div style="overflow: hidden;">
      <table style="width: 100%;">
       <tr>
	<td align="right" style="vertical-align: top;">Kies stijl:</td>
        <td align="left" colspan="3"><div id="styleSelect">Stylenlijst</div></td>
       </tr>
       <tr>
        <td align="right" style="vertical-align: top;">Bier stijl:</td>
        <td align="left" style="vertical-align: top;"><input readonly="1" id="st_name" /></td>
        <td align="right" style="vertical-align: top;">Bier groep:</td>
        <td align="left" style="vertical-align: top;"><input readonly="1" id="st_letter" /></td>
       </tr>
       <tr>
        <td align="right" style="vertical-align: top;">Type:</td>
        <td align="left" style="vertical-align: top;"><input readonly="1" id="st_type" /></td>
        <td align="right" style="vertical-align: top;">Stijl gids:</td>
        <td align="left" style="vertical-align: top;"><input readonly="1" id="st_guide" /></td>
       </tr>
       <tr>
        <td align="right" style="vertical-align: top;">Categorie:</td>
        <td align="left" style="vertical-align: top;"><input readonly="1" id="st_category" /></td>
        <td align="right" style="vertical-align: top;">Categorie nummer:</td>
        <td align="left" style="vertical-align: top;"><input readonly="1" id="st_category_number" /></td>
       </tr>
       <tr>
        <td align="right" style="vertical-align: top;">Opmerkingen:</td>
        <td align="left" colspan="3"><textarea readonly="1" id="st_notes"></textarea></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right; padding: 3px;">Begin SG:</td>
        <td style="padding: 3px;"><div style="float: left;" id="st_og_min"></div><div style="float: left; margin-left: 5px;" id="st_og_max"></div></td>
        <td style="vertical-align: top; float: right; padding: 3px;">Kleur EBC:</td>
        <td style="padding: 3px;"><div style="float: left;" id="st_color_min"></div><div style="float: left; margin-left: 5px;" id="st_color_max"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right; padding: 3px;">Eind SG:</td>
        <td style="padding: 3px;"><div style="float: left;" id="st_fg_min"></div><div style="float: left; margin-left: 5px;" id="st_fg_max"></div></td>
        <td style="vertical-align: top; float: right; padding: 3px;">Koolzuur vol:</td>
        <td style="padding: 3px;"><div style="float: left;" id="st_carb_min"></div><div style="float: left; margin-left: 5px;" id="st_carb_max"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right; padding: 3px;">Bitterheid IBU:</td>
        <td style="padding: 3px;"><div style="float: left;" id="st_ibu_min"></div><div style="float: left; margin-left: 5px;" id="st_ibu_max"></div></td>
        <td style="vertical-align: top; float: right; padding: 3px;">Alcohol vol%:</td>
        <td style="padding: 3px;"><div style="float: left;" id="st_abv_min"></div><div style="float: left; margin-left: 5px;" id="st_abv_max"></div></td>
       </tr>
       <tr>
        <td align="right" style="vertical-align: top;">Profiel:</td>
        <td align="left" colspan="3"><textarea readonly="1" id="st_profile"></textarea></td>
       </tr>
       <tr>
        <td align="right" style="vertical-align: top;">Ingredienten:</td>
        <td align="left" colspan="3"><textarea readonly="1" id="st_ingredients"></textarea></td>
       </tr>
       <tr>
        <td align="right" style="vertical-align: top;">Voorbeelden:</td>
        <td align="left" colspan="3"><textarea readonly="1" id="st_examples"></textarea></td>
       </tr>
      </table>
     </div>
     <div class="hint" id="hintStyle">
     </div>
     <div id="styleButtonsWrapper">
      <input type="button" value="Terug" class="backButton" id="backButtonStyle" />
      <input type="button" value="Volgende" class="nextButton" id="nextButtonStyle" />
     </div>
    </div>

    <div class="section">
     <div style="overflow: hidden;">
      <table style="width: 100%;">
       <tr>
        <td align="right" style="vertical-align: top;">Kies apparatuur:</td>
	<td align="left" colspan="3"><div id="equipmentSelect">Apparatuur</div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Installatie naam:</td>
        <td style="vertical-align: top;"><input readonly="1" id="eq_name" /></td>
        <td style="vertical-align: top; float: right;">Bereken kook volume:</td>
        <td><div id="eq_calc_boil_volume"></div></td>
       </tr>
       <tr>
	<td style="vertical-align: top; float: right;">Opmerkingen:</td>
        <td colspan="3"><textarea readonly="1" id="eq_notes"></textarea></td>
       </tr>
       <tr>
        <th style="text-align: center;" colspan="2">Maischen</th>
        <th style="text-align: center;" colspan="2">Koken</th>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Maischkuip volume l:</td>
        <td><div id="eq_tun_volume"></div></td>
        <td style="vertical-align: top; float: right;">Kookketel volume l:</td>
        <td><div id="eq_kettle_volume"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Maischkuip hoogte cm:</td>
        <td><div id="eq_tun_height"></div></td>
        <td style="vertical-align: top; float: right;">Kookketel hoogte cm:</td>
        <td><div id="eq_kettle_height"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Maischkuip gewicht kg:</td>
        <td><div id="eq_tun_weight"></div></td>
        <td style="vertical-align: top; float: right;">Kook volume l:</td>
        <td><div id="eq_boil_size"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Maischkuip materiaal:</td>
        <td align="left" style="vertical-align: top; padding: 3px;"><input readonly="1" id="eq_tun_material" /></td>
        <td style="vertical-align: top; float: right;">Verdamping per uur l:</td>
        <td><div id="eq_evap_rate"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Maischkuip specific heat:</td>
        <td><div id="eq_tun_specific_heat"></div></td>
        <td style="vertical-align: top; float: right;">Kooktijd in minuten:</td>
        <td><div id="eq_boil_time"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Maischwater l:</td>
        <td><div id="eq_mash_volume"></div></td>
        <td style="vertical-align: top; float: right;">Extra water bij koken l:</td>
        <td><div id="eq_top_up_kettle"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Maximum moutstort kg:</td>
        <td><div id="eq_mash_max"></div></td>
        <td style="vertical-align: top; float: right;">Hopfactor %:</td>
        <td><div id="eq_hop_utilization"></div></td>
       </tr>
       <tr>
        <th style="text-align: center;" colspan="2">Filteren</th>
        <td style="vertical-align: top; float: right;">Volume eind koken l:</td>
        <td><div id="eq_batch_size"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Filter volume l:</td>
        <td><div id="eq_lauter_volume"></div></td>
        <th style="text-align: center;" colspan="2">Koelen</th>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Filterkuip hoogte cm:</td>
        <td><div id="eq_lauter_height"></div></td>
        <td style="vertical-align: top; float: right;">Trub verlies kookketel l:</td>
        <td><div id="eq_trub_chiller_loss"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Filterkuip verlies l:</td>
        <td><div id="eq_lauter_deadspace"></div></td>
        <td style="vertical-align: top; float: right;">Extra water in het gistvat l:</td>
        <td><div id="eq_top_up_water"></div></td>
       </tr>
       <tr>
        <td style="vertical-align: top; float: right;">Brouwzaalrendement %:</td>
        <td><div id="eq_efficiency"></div></td>
        <td colspan="2"></td>
       </tr>
      </table>
     </div>
     <div class="hint" id="hintEq">
     </div>
     <div id="eqButtonsWrapper">
      <input type="button" value="Terug" class="backButton" id="backButtonEq" />
      <input type="button" value="Volgende" class="nextButton" id="nextButtonEq" />
     </div>
    </div>

    <div class="section">
     <div style="overflow: hidden; margin: 25px;"><br>
      <p>Alle nodige gegevens zijn compleet.</p>
      <p> Zodra je de "Volgende" toets gebruikt zal een nieuw brouw project aangemaakt worden en<br>
      worden de gegevens in de database gezet. Hierna kun je dit brouw project bewerken.</p>
     </div>
     <div id="completedButtonsWrapper">
      <input type="button" value="Terug" id="backButtonCompleted" class="backButton" />
      <input type="button" value="Volgende" class="nextButton" id="nextButtonCompleted" />
     </div>
    </div>
   </div>

<?php
page_footer();
?>

mercurial