386 $("#hop_flavour").jqxProgressBar('val', hop_flavour); |
386 $("#hop_flavour").jqxProgressBar('val', hop_flavour); |
387 $("#hop_aroma").jqxProgressBar('val', hop_aroma); |
387 $("#hop_aroma").jqxProgressBar('val', hop_aroma); |
388 $("#brew_fermenter_ibu").val(ferm_ibus); |
388 $("#brew_fermenter_ibu").val(ferm_ibus); |
389 calcStage(); |
389 calcStage(); |
390 }; |
390 }; |
|
391 |
|
392 function adjustHops(factor) { |
|
393 |
|
394 console.log("adjustHops("+factor+")"); |
|
395 |
|
396 var rowscount = $("#hopGrid").jqxGrid('getdatainformation').rowscount; |
|
397 if (rowscount == 0) |
|
398 return; |
|
399 |
|
400 for (var i = 0; i < rowscount; i++) { |
|
401 var row = $("#hopGrid").jqxGrid('getrowdata', i); |
|
402 var amount = row.h_amount * factor; |
|
403 $("#hopGrid").jqxGrid('setcellvalue', i, "h_amount", amount); |
|
404 } |
|
405 }; |
|
406 |
|
407 function adjustMiscs(factor) { |
|
408 |
|
409 console.log("adjustMiscs("+factor+")"); |
|
410 |
|
411 var rowscount = $("#miscGrid").jqxGrid('getdatainformation').rowscount; |
|
412 if (rowscount == 0) |
|
413 return; |
|
414 |
|
415 for (var i = 0; i < rowscount; i++) { |
|
416 var row = $("#miscGrid").jqxGrid('getrowdata', i); |
|
417 var amount = row.m_amount * factor; |
|
418 $("#miscGrid").jqxGrid('setcellvalue', i, "m_amount", amount); |
|
419 switch (row.m_name) { |
|
420 case 'CaCl2': $("#wa_cacl2").val(row.m_amount * 1000); |
|
421 break; |
|
422 case 'CaSO4': $("#wa_caso4").val(row.m_amount * 1000); |
|
423 break; |
|
424 case 'MgSO4': $("#wa_mgso4").val(row.m_amount * 1000); |
|
425 break; |
|
426 case 'NaCl': $("#wa_nacl").val(row.m_amount * 1000); |
|
427 break; |
|
428 case 'Melkzuur': |
|
429 case 'Zoutzuur': |
|
430 case 'Fosforzuur': |
|
431 case 'Zwavelzuur': $("#wa_acid").val(row.m_amount * 1000); |
|
432 break; |
|
433 case 'NaHCO3': |
|
434 case 'Na2CO3': |
|
435 case 'CaCO3': |
|
436 case 'Ca(OH)2': $("#wa_base").val(row.m_amount * 1000); |
|
437 break; |
|
438 } |
|
439 } |
|
440 }; |
|
441 |
|
442 function adjustYeasts(factor) { |
|
443 |
|
444 console.log("adjustYeasts("+factor+")"); |
|
445 |
|
446 var rowscount = $("#yeastGrid").jqxGrid('getdatainformation').rowscount; |
|
447 if (rowscount == 0) |
|
448 return; |
|
449 |
|
450 for (var i = 0; i < rowscount; i++) { |
|
451 var row = $("#yeastGrid").jqxGrid('getrowdata', i); |
|
452 if (row.y_form == 1) { // Only adjust dry yeast |
|
453 var amount = row.y_amount * factor; |
|
454 $("#yeastGrid").jqxGrid('setcellvalue', i, "y_amount", amount); |
|
455 } |
|
456 } |
|
457 // TODO: adjust starter size |
|
458 }; |
|
459 |
|
460 function adjustWaters(factor) { |
|
461 |
|
462 console.log("adjustWaters("+factor+")"); |
|
463 |
|
464 var rowscount = $("#mashGrid").jqxGrid('getdatainformation').rowscount; |
|
465 if (rowscount == 0) |
|
466 return; |
|
467 |
|
468 mash_infuse = 0; |
|
469 for (var i = 0; i < rowscount; i++) { |
|
470 var row = $("#mashGrid").jqxGrid('getrowdata', i); |
|
471 if (row.step_type == 0) { // Infusion |
|
472 var amount = Math.round(row.step_infuse_amount * factor * 10) / 10; |
|
473 $("#mashGrid").jqxGrid('setcellvalue', i, "step_infuse_amount", amount); |
|
474 mash_infuse += amount; |
|
475 } |
|
476 } |
|
477 if (dataRecord.w2_amount == 0) { |
|
478 dataRecord.w1_amount = mash_infuse; |
|
479 $("#w1_amount").val(mash_infuse); |
|
480 } else { |
|
481 dataRecord.w1_amount = (dataRecord.w1_amount / (dataRecord.w1_amount + dataRecord.w2_amount)) * mash_infuse; |
|
482 dataRecord.w2_amount = (dataRecord.w2_amount / (dataRecord.w1_amount + dataRecord.w2_amount)) * mash_infuse; |
|
483 $("#w1_amount").val(dataRecord.w1_amount); |
|
484 $("#w2_amount").val(dataRecord.w2_amount); |
|
485 } |
|
486 }; |
|
487 |
|
488 |
391 |
489 |
392 function calcMashEfficiency() { |
490 function calcMashEfficiency() { |
393 // console.log("calcMashEfficiency()"); |
491 // console.log("calcMashEfficiency()"); |
394 var c = sg_to_plato(est_mash_sg); |
492 var c = sg_to_plato(est_mash_sg); |
395 var m = sg_to_plato(parseFloat($("#brew_mash_sg").jqxNumberInput('decimal'))); |
493 var m = sg_to_plato(parseFloat($("#brew_mash_sg").jqxNumberInput('decimal'))); |
1418 |
1516 |
1419 $('#batch_size').on('change', function (event) { |
1517 $('#batch_size').on('change', function (event) { |
1420 console.log("batch_size change:"+event.args.value+" old:"+dataRecord.batch_size); |
1518 console.log("batch_size change:"+event.args.value+" old:"+dataRecord.batch_size); |
1421 $("#est_a_vol").val(event.args.value * 1.04); |
1519 $("#est_a_vol").val(event.args.value * 1.04); |
1422 var new_boil = parseFloat(event.args.value) + dataRecord.boil_size - dataRecord.batch_size; |
1520 var new_boil = parseFloat(event.args.value) + dataRecord.boil_size - dataRecord.batch_size; |
|
1521 var factor = parseFloat(event.args.value) / dataRecord.batch_size; |
1423 dataRecord.boil_size = new_boil; |
1522 dataRecord.boil_size = new_boil; |
1424 $("#boil_size").val(Math.round(new_boil * 100) / 100); |
1523 $("#boil_size").val(Math.round(new_boil * 100) / 100); |
1425 $("#est_pre_vol").val(Math.round(new_boil * 1.04 * 100) / 100); |
1524 $("#est_pre_vol").val(Math.round(new_boil * 1.04 * 100) / 100); |
|
1525 dataRecord.sparge_volume *= factor; |
|
1526 $("#sparge_volume").val(dataRecord.sparge_volume); |
1426 dataRecord.batch_size = parseFloat(event.args.value); |
1527 dataRecord.batch_size = parseFloat(event.args.value); |
1427 calcFermentablesFromOG(parseFloat($("#est_og").jqxNumberInput('decimal'))); // Keep the OG |
1528 calcFermentablesFromOG(parseFloat($("#est_og").jqxNumberInput('decimal'))); // Keep the OG |
|
1529 adjustWaters(factor); |
1428 calcFermentables(); |
1530 calcFermentables(); |
1429 // TODO: adjust the hops, miscs, yeast, water. |
1531 adjustHops(factor); |
|
1532 adjustMiscs(factor); |
|
1533 adjustYeasts(factor); |
1430 calcIBUs(); |
1534 calcIBUs(); |
|
1535 calcWater(); |
|
1536 calcSparge(); |
1431 }); |
1537 }); |
1432 $('#boil_time').on('change', function (event) { |
1538 $('#boil_time').on('change', function (event) { |
1433 console.log("boil_time change:"+parseFloat(event.args.value)+" old:"+dataRecord.boil_time); |
1539 console.log("boil_time change:"+parseFloat(event.args.value)+" old:"+dataRecord.boil_time); |
1434 var old_evap = parseFloat(dataRecord.boil_size) - parseFloat(dataRecord.batch_size); |
1540 var old_evap = parseFloat(dataRecord.boil_size) - parseFloat(dataRecord.batch_size); |
1435 var new_evap = old_evap * (parseFloat(event.args.value) / dataRecord.boil_time); |
1541 var new_evap = old_evap * (parseFloat(event.args.value) / dataRecord.boil_time); |
1436 var new_boil = parseFloat(dataRecord.batch_size) + new_evap; |
1542 var new_boil = parseFloat(dataRecord.batch_size) + new_evap; |
|
1543 var factor = new_boil / dataRecord.boil_size; |
1437 dataRecord.boil_time = parseFloat(event.args.value); |
1544 dataRecord.boil_time = parseFloat(event.args.value); |
1438 dataRecord.boil_size = new_boil; |
1545 dataRecord.boil_size = new_boil; |
1439 $("#est_pre_vol").val(Math.round(new_boil * 1.04 * 100) / 100); |
1546 $("#est_pre_vol").val(Math.round(new_boil * 1.04 * 100) / 100); |
1440 $("#boil_size").val(Math.round(new_boil * 100) / 100); |
1547 $("#boil_size").val(Math.round(new_boil * 100) / 100); |
1441 calcFermentables(); |
1548 calcFermentables(); |
1442 // TODO: adjust the hops, miscs, yeast, water. |
|
1443 calcIBUs(); |
1549 calcIBUs(); |
1444 }); |
1550 }); |
1445 $('#efficiency').on('change', function (event) { |
1551 $('#efficiency').on('change', function (event) { |
1446 console.log("efficiency change:"+event.args.value); |
1552 console.log("efficiency change:"+event.args.value); |
1447 calcFermentables(); |
1553 calcFermentables(); |
1599 }); |
1705 }); |
1600 $("#equipmentSelect").on('select', function (event) { |
1706 $("#equipmentSelect").on('select', function (event) { |
1601 if (event.args) { |
1707 if (event.args) { |
1602 var index = event.args.index; |
1708 var index = event.args.index; |
1603 var datarecord = equipmentlist.records[index]; |
1709 var datarecord = equipmentlist.records[index]; |
|
1710 var factor = datarecord.batch_size / dataRecord.batch_size; |
1604 $("#eq_name").val(datarecord.name); |
1711 $("#eq_name").val(datarecord.name); |
1605 $("#eq_boil_size").val(datarecord.boil_size); |
1712 $("#eq_boil_size").val(datarecord.boil_size); |
1606 dataRecord.boil_size = datarecord.boil_size; |
1713 dataRecord.boil_size = datarecord.boil_size; |
1607 $("#boil_size").val(datarecord.boil_size); |
1714 $("#boil_size").val(datarecord.boil_size); |
1608 $("#eq_batch_size").val(datarecord.batch_size); |
1715 $("#eq_batch_size").val(datarecord.batch_size); |
1613 dataRecord.eq_tun_weight = datarecord.tun_weight; |
1720 dataRecord.eq_tun_weight = datarecord.tun_weight; |
1614 dataRecord.eq_tun_specific_heat = datarecord.tun_specific_heat; |
1721 dataRecord.eq_tun_specific_heat = datarecord.tun_specific_heat; |
1615 dataRecord.eq_tun_material = datarecord.tun_material; |
1722 dataRecord.eq_tun_material = datarecord.tun_material; |
1616 dataRecord.eq_tun_height = datarecord.tun_height / 100.0; |
1723 dataRecord.eq_tun_height = datarecord.tun_height / 100.0; |
1617 $("#eq_top_up_water").val(datarecord.top_up_water); |
1724 $("#eq_top_up_water").val(datarecord.top_up_water); |
|
1725 dataRecord.eq_trub_chiller_loss = datarecord.trub_chiller_loss; |
1618 $("#eq_trub_chiller_loss").val(datarecord.trub_chiller_loss); |
1726 $("#eq_trub_chiller_loss").val(datarecord.trub_chiller_loss); |
1619 $("#eq_evap_rate").val(datarecord.evap_rate); |
1727 $("#eq_evap_rate").val(datarecord.evap_rate); |
1620 $("#eq_boil_time").val(datarecord.boil_time); |
1728 $("#eq_boil_time").val(datarecord.boil_time); |
1621 dataRecord.eq_calc_boil_volume = datarecord.calc_boil_volume; |
1729 dataRecord.eq_calc_boil_volume = datarecord.calc_boil_volume; |
1622 $("#eq_top_up_kettle").val(datarecord.top_up_kettle); |
1730 $("#eq_top_up_kettle").val(datarecord.top_up_kettle); |
1633 $("#mash_max").val(datarecord.mash_max); |
1741 $("#mash_max").val(datarecord.mash_max); |
1634 $("#eq_efficiency").val(datarecord.efficiency); |
1742 $("#eq_efficiency").val(datarecord.efficiency); |
1635 dataRecord.efficiency = datarecord.efficiency; |
1743 dataRecord.efficiency = datarecord.efficiency; |
1636 $("#efficiency").val(datarecord.efficiency); |
1744 $("#efficiency").val(datarecord.efficiency); |
1637 |
1745 |
|
1746 dataRecord.sparge_volume = Math.round(datarecord.boil_size * 5) / 10; |
|
1747 $("#sparge_volume").val(dataRecord.sparge_volume); |
|
1748 $("#est_pre_vol").val(datarecord.boil_size * 1.04); |
1638 calcFermentablesFromOG(parseFloat($("#est_og").jqxNumberInput('decimal'))); // Keep the OG |
1749 calcFermentablesFromOG(parseFloat($("#est_og").jqxNumberInput('decimal'))); // Keep the OG |
|
1750 adjustWaters(factor); |
1639 calcFermentables(); |
1751 calcFermentables(); |
1640 // TODO: adjust the hops, miscs, yeast, water. |
1752 adjustHops(factor); |
|
1753 adjustMiscs(factor); |
|
1754 adjustYeasts(factor); |
1641 calcIBUs(); |
1755 calcIBUs(); |
|
1756 calcWater(); |
|
1757 calcSparge(); |
1642 } |
1758 } |
1643 }); |
1759 }); |
1644 |
1760 |
1645 var dataRecord = {}; |
1761 var dataRecord = {}; |
1646 var url = "includes/db_product.php"; |
1762 var url = "includes/db_product.php"; |