447 } |
447 } |
448 |
448 |
449 $recipes= simplexml_load_file($brouwhulp . '/recipes.xml'); |
449 $recipes= simplexml_load_file($brouwhulp . '/recipes.xml'); |
450 |
450 |
451 foreach ($recipes->RECIPE as $recipe) { |
451 foreach ($recipes->RECIPE as $recipe) { |
|
452 $f_sugars = 0; |
|
453 $efficiency = 75; |
|
454 $batch_size = 20; |
|
455 |
452 $sql = "INSERT INTO recipes SET name='" . mysqli_real_escape_string($db, $recipe->NAME); |
456 $sql = "INSERT INTO recipes SET name='" . mysqli_real_escape_string($db, $recipe->NAME); |
453 if ($recipe->NOTES) |
457 if ($recipe->NOTES) |
454 $sql .= "', notes='" . mysqli_real_escape_string($db, $recipe->NOTES); |
458 $sql .= "', notes='" . mysqli_real_escape_string($db, $recipe->NOTES); |
455 else |
459 else |
456 $sql .= "', notes='"; |
460 $sql .= "', notes='"; |
457 if ($recipe->TYPE) |
461 if ($recipe->TYPE) |
458 $sql .= "', type='" . mysqli_real_escape_string($db, $recipe->TYPE); |
462 $sql .= "', type='" . mysqli_real_escape_string($db, $recipe->TYPE); |
459 else |
463 else |
460 $sql .= "', type='"; |
464 $sql .= "', type='"; |
461 if ($recipe->BATCH_SIZE) |
465 if ($recipe->BATCH_SIZE) |
462 $sql .= "', batch_size='" . floatval($recipe->BATCH_SIZE); |
466 $batch_size = floatval($recipe->BATCH_SIZE); |
463 else |
467 $sql .= "', batch_size='" . $batch_size; |
464 $sql .= "', batch_size='20.0"; |
|
465 if ($recipe->BOIL_TIME) |
468 if ($recipe->BOIL_TIME) |
466 $sql .= "', boil_time='" . floatval($recipe->BOIL_TIME); |
469 $sql .= "', boil_time='" . floatval($recipe->BOIL_TIME); |
467 else |
470 else |
468 $sql .= "', boil_time='90"; |
471 $sql .= "', boil_time='90"; |
469 if ($recipe->EFFICIENCY) |
472 if ($recipe->EFFICIENCY) |
470 $sql .= "', efficiency='" . floatval($recipe->EFFICIENCY); |
473 $efficiency = floatval($recipe->EFFICIENCY); |
471 else |
474 $sql .= "', efficiency='" . $efficiency; |
472 $sql .= "', efficiency='75"; |
475 /* Don't use $recipe->EST_OG but recalculate it */ |
473 if ($recipe->EST_OG) |
|
474 $sql .= "', est_og='" . floatval($recipe->EST_OG); |
|
475 else |
|
476 $sql .= "', est_og='1.052"; |
|
477 if ($recipe->EST_FG) |
476 if ($recipe->EST_FG) |
478 $sql .= "', est_fg='" . floatval($recipe->EST_FG); |
477 $sql .= "', est_fg='" . floatval($recipe->EST_FG); |
479 else |
478 else |
480 $sql .= "', est_fg='1.000"; |
479 $sql .= "', est_fg='1.000"; |
481 if ($recipe->EST_COLOR) { |
480 if ($recipe->EST_COLOR) { |
551 $fermentables .= ','; |
550 $fermentables .= ','; |
552 $comma = TRUE; |
551 $comma = TRUE; |
553 $fermentables .= '{"f_name":"' . mysqli_real_escape_string($db, $fermentable->NAME) . '"'; |
552 $fermentables .= '{"f_name":"' . mysqli_real_escape_string($db, $fermentable->NAME) . '"'; |
554 $fermentables .= ',"f_origin":"' . mysqli_real_escape_string($db, $fermentable->ORIGIN) . '"'; |
553 $fermentables .= ',"f_origin":"' . mysqli_real_escape_string($db, $fermentable->ORIGIN) . '"'; |
555 $fermentables .= ',"f_supplier":"' . mysqli_real_escape_string($db, $fermentable->SUPPLIER) . '"'; |
554 $fermentables .= ',"f_supplier":"' . mysqli_real_escape_string($db, $fermentable->SUPPLIER) . '"'; |
556 $fermentables .= ',"f_amount":' . floatval($fermentable->AMOUNT); |
555 $famount = floatval($fermentable->AMOUNT); |
|
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 $fermentables .= ',"f_type":"' . mysqli_real_escape_string($db, $fermentable->TYPE) . '"'; |
559 $fermentables .= ',"f_yield":' . floatval($fermentable->YIELD); |
559 $fyield = floatval($fermentable->YIELD); |
|
560 $fermentables .= ',"f_yield":' . $fyield; |
560 if ($fermentable->COLOR) { |
561 if ($fermentable->COLOR) { |
561 $srm = floatval($fermentable->COLOR); |
562 $srm = floatval($fermentable->COLOR); |
562 $ebc = srm_to_ebc($srm); |
563 $ebc = srm_to_ebc($srm); |
563 $fermentables .= ',"f_color":' . $ebc; |
564 $fermentables .= ',"f_color":' . $ebc; |
564 } |
565 } |
565 if ($fermentable->COARSE_FINE_DIFF) |
566 if ($fermentable->COARSE_FINE_DIFF) |
566 $fermentables .= ',"f_coarse_fine_diff":' . floatval($fermentable->COARSE_FINE_DIFF); |
567 $fermentables .= ',"f_coarse_fine_diff":' . floatval($fermentable->COARSE_FINE_DIFF); |
567 else |
568 else |
568 $fermentables .= ',"f_coarse_fine_diff":0'; |
569 $fermentables .= ',"f_coarse_fine_diff":0'; |
569 if ($fermentable->MOISTURE) |
570 if ($fermentable->MOISTURE) |
570 $fermentables .= ',"f_moisture":' . floatval($fermentable->MOISTURE); |
571 $fmoisture = floatval($fermentable->MOISTURE); |
571 else |
572 else |
572 $fermentables .= ',"f_moisture":0'; |
573 $fmoisture = 0; |
|
574 $fermentables .= ',"f_moisture":' . $fmoisture; |
573 if ($fermentable->DIASTATIC_POWER) |
575 if ($fermentable->DIASTATIC_POWER) |
574 $fermentables .= ',"f_diastatic_power":' . floatval($fermentable->DIASTATIC_POWER); |
576 $fermentables .= ',"f_diastatic_power":' . floatval($fermentable->DIASTATIC_POWER); |
575 else |
577 else |
576 $fermentables .= ',"f_diastatic_power":0'; |
578 $fermentables .= ',"f_diastatic_power":0'; |
577 if ($fermentable->PROTEIN) |
579 if ($fermentable->PROTEIN) |
585 if ($fermentable->GRAINTYPE) |
587 if ($fermentable->GRAINTYPE) |
586 $fermentables .= ',"f_graintype":"' . mysqli_real_escape_string($db, $fermentable->GRAINTYPE) . '"'; |
588 $fermentables .= ',"f_graintype":"' . mysqli_real_escape_string($db, $fermentable->GRAINTYPE) . '"'; |
587 else |
589 else |
588 $fermentables .= ',"f_graintype":"Base"'; |
590 $fermentables .= ',"f_graintype":"Base"'; |
589 if ($fermentable->ADDED) |
591 if ($fermentable->ADDED) |
590 $fermentables .= ',"f_added":"' . mysqli_real_escape_string($db, $fermentable->ADDED) . '"'; |
592 $fadded = mysqli_real_escape_string($db, $fermentable->ADDED); |
591 else |
593 else |
592 $fermentables .= ',"f_added":"Mash"'; |
594 $fadded = "Mash"; |
|
595 $fermentables .= ',"f_added":"'.$fadded.'"'; |
593 ($fermentable->ADD_AFTER_BOIL== "TRUE") ? $fermentables .= ',"f_add_after_boil":true' : $fermentables .= ',"f_add_after_boil":false'; |
596 ($fermentable->ADD_AFTER_BOIL== "TRUE") ? $fermentables .= ',"f_add_after_boil":true' : $fermentables .= ',"f_add_after_boil":false'; |
594 ($fermentable->RECOMMEND_MASH== "TRUE") ? $fermentables .= ',"f_recommend_mash":true' : $fermentables .= ',"f_recommend_mash":false'; |
597 ($fermentable->RECOMMEND_MASH== "TRUE") ? $fermentables .= ',"f_recommend_mash":true' : $fermentables .= ',"f_recommend_mash":false'; |
595 if ($fermentable->DISSOLVED_PROTEIN) |
598 if ($fermentable->DISSOLVED_PROTEIN) |
596 $fermentables .= ',"f_dissolved_protein":' . floatval($fermentable->DISSOLVED_PROTEIN); |
599 $fermentables .= ',"f_dissolved_protein":' . floatval($fermentable->DISSOLVED_PROTEIN); |
597 else |
600 else |
601 if ($fermentable->DI_pH) |
604 if ($fermentable->DI_pH) |
602 $fermentables .= ',"f_di_ph":' . floatval($fermentable->DI_pH); |
605 $fermentables .= ',"f_di_ph":' . floatval($fermentable->DI_pH); |
603 else |
606 else |
604 $fermentables .= ',"f_di_ph":5.6'; |
607 $fermentables .= ',"f_di_ph":5.6'; |
605 $fermentables .= "}"; |
608 $fermentables .= "}"; |
|
609 /* Sugars */ |
|
610 $d = $famount * ($fyield / 100) * (1 - $fmoisture / 100); |
|
611 if ($fadded == "Mash") |
|
612 $d = floatval($efficiency) / 100 * $d; |
|
613 $f_sugars += $d; |
606 } |
614 } |
607 |
615 |
608 $fermentables .= ']'; |
616 $fermentables .= ']'; |
609 // echo $fermentables . PHP_EOL; |
617 // echo $fermentables . PHP_EOL; |
610 $sql .= "', json_fermentables='" . $fermentables; |
618 $sql .= "', json_fermentables='" . $fermentables; |
810 if (strlen($steps) > $len_mash) |
818 if (strlen($steps) > $len_mash) |
811 $len_mash = strlen($steps); |
819 $len_mash = strlen($steps); |
812 } |
820 } |
813 } |
821 } |
814 |
822 |
|
823 /* |
|
824 * Added the calculated values |
|
825 * OG, FG, color, IBU |
|
826 */ |
|
827 $plato = 100 * $f_sugars / $batch_size; |
|
828 $sg = plato_to_sg($plato); |
|
829 /* Average loops, HansH 5x. Brouwhulp 20x, about 10x is enough so keep 20. */ |
|
830 for ($i = 0; $i < 20; $i++) { |
|
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 |
815 $sql .= "';"; |
837 $sql .= "';"; |
816 if (! $result = mysqli_query($db, $sql)) { |
838 if (! $result = mysqli_query($db, $sql)) { |
817 printf("Error: %s\n", mysqli_error($db)); |
839 printf("Error: %s\n", mysqli_error($db)); |
818 } |
840 } |
819 } |
841 } |