471 $sql .= "', boil_time='90"; |
474 $sql .= "', boil_time='90"; |
472 if ($recipe->EFFICIENCY) |
475 if ($recipe->EFFICIENCY) |
473 $efficiency = floatval($recipe->EFFICIENCY); |
476 $efficiency = floatval($recipe->EFFICIENCY); |
474 $sql .= "', efficiency='" . $efficiency; |
477 $sql .= "', efficiency='" . $efficiency; |
475 /* Don't use $recipe->EST_OG but recalculate it */ |
478 /* Don't use $recipe->EST_OG but recalculate it */ |
476 if ($recipe->EST_FG) |
479 /* Don't use $recipe->EST_FG but recalculate it */ |
477 $sql .= "', est_fg='" . floatval($recipe->EST_FG); |
|
478 else |
|
479 $sql .= "', est_fg='1.000"; |
|
480 if ($recipe->EST_COLOR) { |
480 if ($recipe->EST_COLOR) { |
481 $srm = floatval($recipe->EST_COLOR); |
481 $srm = floatval($recipe->EST_COLOR); |
482 $ebc = srm_to_ebc($srm); |
482 $ebc = srm_to_ebc($srm); |
483 $sql .= "', est_color='" . $ebc; |
483 $sql .= "', est_color='" . $ebc; |
484 } |
484 } |
553 $fermentables .= ',"f_origin":"' . mysqli_real_escape_string($db, $fermentable->ORIGIN) . '"'; |
553 $fermentables .= ',"f_origin":"' . mysqli_real_escape_string($db, $fermentable->ORIGIN) . '"'; |
554 $fermentables .= ',"f_supplier":"' . mysqli_real_escape_string($db, $fermentable->SUPPLIER) . '"'; |
554 $fermentables .= ',"f_supplier":"' . mysqli_real_escape_string($db, $fermentable->SUPPLIER) . '"'; |
555 $famount = floatval($fermentable->AMOUNT); |
555 $famount = floatval($fermentable->AMOUNT); |
556 $fermentables .= ',"f_amount":' . $famount; |
556 $fermentables .= ',"f_amount":' . $famount; |
557 $fermentables .= ',"f_cost":' . floatval($fermentable->COST); |
557 $fermentables .= ',"f_cost":' . floatval($fermentable->COST); |
558 $fermentables .= ',"f_type":"' . mysqli_real_escape_string($db, $fermentable->TYPE) . '"'; |
558 $ftype = mysqli_real_escape_string($db, $fermentable->TYPE); |
|
559 $fermentables .= ',"f_type":"' . $ftype . '"'; |
559 $fyield = floatval($fermentable->YIELD); |
560 $fyield = floatval($fermentable->YIELD); |
560 $fermentables .= ',"f_yield":' . $fyield; |
561 $fermentables .= ',"f_yield":' . $fyield; |
561 if ($fermentable->COLOR) { |
562 if ($fermentable->COLOR) { |
562 $srm = floatval($fermentable->COLOR); |
563 $srm = floatval($fermentable->COLOR); |
563 $ebc = srm_to_ebc($srm); |
564 $ebc = srm_to_ebc($srm); |
582 $fermentables .= ',"f_protein":0'; |
583 $fermentables .= ',"f_protein":0'; |
583 if ($fermentable->MAX_IN_BATCH) |
584 if ($fermentable->MAX_IN_BATCH) |
584 $fermentables .= ',"f_max_in_batch":' . floatval($fermentable->MAX_IN_BATCH); |
585 $fermentables .= ',"f_max_in_batch":' . floatval($fermentable->MAX_IN_BATCH); |
585 else |
586 else |
586 $fermentables .= ',"f_max_in_batch":100.0'; |
587 $fermentables .= ',"f_max_in_batch":100.0'; |
|
588 $fgraintype = mysqli_real_escape_string($db, $fermentable->GRAINTYPE); |
587 if ($fermentable->GRAINTYPE) |
589 if ($fermentable->GRAINTYPE) |
588 $fermentables .= ',"f_graintype":"' . mysqli_real_escape_string($db, $fermentable->GRAINTYPE) . '"'; |
590 $fgraintype = mysqli_real_escape_string($db, $fermentable->GRAINTYPE); |
589 else |
591 else |
590 $fermentables .= ',"f_graintype":"Base"'; |
592 $fgraintype = "Base"; |
|
593 $fermentables .= ',"f_graintype":"' . $fgraintype . '"'; |
591 if ($fermentable->ADDED) |
594 if ($fermentable->ADDED) |
592 $fadded = mysqli_real_escape_string($db, $fermentable->ADDED); |
595 $fadded = mysqli_real_escape_string($db, $fermentable->ADDED); |
593 else |
596 else |
594 $fadded = "Mash"; |
597 $fadded = "Mash"; |
595 $fermentables .= ',"f_added":"'.$fadded.'"'; |
598 $fermentables .= ',"f_added":"'.$fadded.'"'; |
598 if ($fermentable->DISSOLVED_PROTEIN) |
601 if ($fermentable->DISSOLVED_PROTEIN) |
599 $fermentables .= ',"f_dissolved_protein":' . floatval($fermentable->DISSOLVED_PROTEIN); |
602 $fermentables .= ',"f_dissolved_protein":' . floatval($fermentable->DISSOLVED_PROTEIN); |
600 else |
603 else |
601 $fermentables .= ',"f_dissolved_protein":0'; |
604 $fermentables .= ',"f_dissolved_protein":0'; |
602 ($fermentable->ADJUST_TO_TOTAL_100 == "TRUE") ? $fermentables .= ',"f_adjust_to_total_100":true' : $fermentables .= ',"f_adjust_to_total_100":false'; |
605 ($fermentable->ADJUST_TO_TOTAL_100 == "TRUE") ? $fermentables .= ',"f_adjust_to_total_100":true' : $fermentables .= ',"f_adjust_to_total_100":false'; |
603 $fermentables .= ',"f_percentage":' . floatval($fermentable->PERCENTAGE); |
606 $percent = floatval($fermentable->PERCENTAGE); |
|
607 $fermentables .= ',"f_percentage":' . $percent; |
604 if ($fermentable->DI_pH) |
608 if ($fermentable->DI_pH) |
605 $fermentables .= ',"f_di_ph":' . floatval($fermentable->DI_pH); |
609 $fermentables .= ',"f_di_ph":' . floatval($fermentable->DI_pH); |
606 else |
610 else |
607 $fermentables .= ',"f_di_ph":5.6'; |
611 $fermentables .= ',"f_di_ph":5.6'; |
608 $fermentables .= "}"; |
612 $fermentables .= "}"; |
609 /* Sugars */ |
613 /* Sugars */ |
610 $d = $famount * ($fyield / 100) * (1 - $fmoisture / 100); |
614 $d = $famount * ($fyield / 100) * (1 - $fmoisture / 100); |
611 if ($fadded == "Mash") |
615 if ($fadded == "Mash") |
612 $d = floatval($efficiency) / 100 * $d; |
616 $d = floatval($efficiency) / 100 * $d; |
613 $f_sugars += $d; |
617 $f_sugars += $d; |
|
618 if ($fgraintype == "Crystal") |
|
619 $pCara += $percent; |
|
620 if ($ftype == "Sugar") |
|
621 $pSugar += $percent; |
614 } |
622 } |
615 |
623 |
616 $fermentables .= ']'; |
624 $fermentables .= ']'; |
617 // echo $fermentables . PHP_EOL; |
625 // echo $fermentables . PHP_EOL; |
618 $sql .= "', json_fermentables='" . $fermentables; |
626 $sql .= "', json_fermentables='" . $fermentables; |
720 $yeasts .= ',"y_type":"' . mysqli_real_escape_string($db, $yeast->TYPE) . '"'; |
728 $yeasts .= ',"y_type":"' . mysqli_real_escape_string($db, $yeast->TYPE) . '"'; |
721 $yeasts .= ',"y_form":"' . mysqli_real_escape_string($db, $yeast->FORM) . '"'; |
729 $yeasts .= ',"y_form":"' . mysqli_real_escape_string($db, $yeast->FORM) . '"'; |
722 ($yeast->AMOUNT_IS_WEIGHT== "TRUE") ? $yeasts .= ',"y_amount_is_weight":true' : $yeasts.= ',"y_amount_is_weight":false'; |
730 ($yeast->AMOUNT_IS_WEIGHT== "TRUE") ? $yeasts .= ',"y_amount_is_weight":true' : $yeasts.= ',"y_amount_is_weight":false'; |
723 if ($yeast->ADD_TO_SECONDARY=="FALSE") { |
731 if ($yeast->ADD_TO_SECONDARY=="FALSE") { |
724 $yeasts .= ',"y_use":"Primary"'; |
732 $yeasts .= ',"y_use":"Primary"'; |
|
733 $svg = floatval($yeast->ATTENUATION); |
725 } else if ($yeast->PRODUCT_ID=="F2") { |
734 } else if ($yeast->PRODUCT_ID=="F2") { |
726 $yeasts .= ',"y_use":"Bottle"'; |
735 $yeasts .= ',"y_use":"Bottle"'; |
727 } else { |
736 } else { |
728 $yeasts .= ',"y_use":"Secondary"'; |
737 $yeasts .= ',"y_use":"Secondary"'; |
729 } |
738 } |
822 |
831 |
823 /* |
832 /* |
824 * Added the calculated values |
833 * Added the calculated values |
825 * OG, FG, color, IBU |
834 * OG, FG, color, IBU |
826 */ |
835 */ |
827 $plato = 100 * $f_sugars / $batch_size; |
836 $og = estimate_og($f_sugars, $batch_size); |
828 $sg = plato_to_sg($plato); |
837 $sql .= "', est_og='" . floatval($og); |
829 /* Average loops, HansH 5x. Brouwhulp 20x, about 10x is enough so keep 20. */ |
838 $fg = estimate_fg($pSugar, $pCara, 0, 0, 0, $svg, $og); |
830 for ($i = 0; $i < 20; $i++) { |
839 $sql .= "', est_fg='" . floatval($fg); |
831 if ($sg > 0) |
|
832 $plato = 100 * $f_sugars / ($batch_size * $sg); |
|
833 $sg = plato_to_sg($plato); |
|
834 } |
|
835 $sql .= "', est_og='" . floatval($sg); |
|
836 |
840 |
837 $sql .= "';"; |
841 $sql .= "';"; |
838 if (! $result = mysqli_query($db, $sql)) { |
842 if (! $result = mysqli_query($db, $sql)) { |
839 printf("Error: %s\n", mysqli_error($db)); |
843 printf("Error: %s\n", mysqli_error($db)); |
840 } |
844 } |