1 <?php |
|
2 require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php'); |
|
3 require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); |
|
4 require_once($_SERVER['DOCUMENT_ROOT'].'/includes/constants.php'); |
|
5 |
|
6 $link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); |
|
7 if (! $link) { |
|
8 die('Connect Error ('.mysqli_connect_errno().') '.mysqli_connect_error()); |
|
9 } |
|
10 if (! mysqli_set_charset($link, "utf8" )) { |
|
11 echo "error"; |
|
12 return 1; |
|
13 } |
|
14 |
|
15 setlocale ( LC_ALL, 'nl_NL.UTF-8'); |
|
16 $record = $_GET["record"]; |
|
17 $result = mysqli_query($link, "SELECT * FROM products WHERE record='".$record."'"); |
|
18 $row = mysqli_fetch_array($result); |
|
19 |
|
20 $preboil_sg = 0; |
|
21 date_default_timezone_set('Europe/Amsterdam'); |
|
22 $prdate = date(DATE_RFC2822); |
|
23 |
|
24 |
|
25 /* |
|
26 * Generate the output in a string. |
|
27 */ |
|
28 $tabus = '[tabular]'; |
|
29 $tabue = '[/tabular]'; |
|
30 $heads = '[head]'; |
|
31 $heade = '[/head]'; |
|
32 $rows = '[row]'; |
|
33 $rowe = '[/row]'; |
|
34 $datas = '[data]'; |
|
35 $datae = '[/data]'; |
|
36 |
|
37 $memo = "[u][b]BMS v".$my_version." - Datum export: ".$prdate.'[/b][/u]'.PHP_EOL; |
|
38 $memo .= PHP_EOL; |
|
39 $memo .= PHP_EOL; |
|
40 $memo .= '[u][b]Basis[/b][/u]'.PHP_EOL; |
|
41 $memo .= $tabus.PHP_EOL; |
|
42 $memo .= $heads.'Omschrijving'.$heade.$heads.'Waarde'.$heade.PHP_EOL; |
|
43 $memo .= $rows.$datas.'Bier naam'.$datae.$datas.$row['code'].' '.$row['name'].$datae.$rowe.PHP_EOL; |
|
44 $memo .= $rows.$datas.'Bier stijl'.$datae.$datas.$row['st_name'].$datae.$rowe.PHP_EOL; |
|
45 $memo .= $rows.$datas.'Recept type'.$datae.$datas.$recipetype[$row['type']].$datae.$rowe.PHP_EOL; |
|
46 $memo .= $rows.$datas.'Batch grootte'.$datae.$datas.$row['batch_size'].' liter'.$datae.$rowe.PHP_EOL; |
|
47 $memo .= $rows.$datas.'Kooktijd'.$datae.$datas.$row['boil_time'].' minuten'.$datae.$rowe.PHP_EOL; |
|
48 $memo .= $rows.$datas.'Brouwzaal rendement'.$datae.$datas.$row['efficiency'].' %'.$datae.$rowe.PHP_EOL; |
|
49 $memo .= $rows.$datas.'Geschatte begin densiteit'.$datae.$datas.sprintf("%.3f",$row['est_og']).' SG/ '.sprintf("%.1f", sg_to_plato($row['est_og'])).'°P'.$datae.$rowe.PHP_EOL; |
|
50 $memo .= $rows.$datas.'Geschatte eind densiteit'.$datae.$datas.sprintf("%.3f",$row['est_fg']).' SG/ '.sprintf("%.1f", sg_to_plato($row['est_fg'])).'°P'.$datae.$rowe.PHP_EOL; |
|
51 $memo .= $rows.$datas.'Geschat alcohol'.$datae.$datas.sprintf("%.1f",$row['est_abv']).'% vol'.$datae.$rowe.PHP_EOL; |
|
52 $memo .= $rows.$datas.'Kleur ('.$colormethod[$row['color_method']].')'.$datae.$datas.$row['est_color'].' EBC'.$datae.$rowe.PHP_EOL; |
|
53 $memo .= $rows.$datas.'Bitterheid ('.$ibumethod[$row['ibu_method']].')'.$datae.$datas.$row['est_ibu'].' IBU'.$datae.$rowe.PHP_EOL; |
|
54 if ($row['divide_parts']) |
|
55 $memo .= $rows.$datas.'Split batch (' .$splitat[$row['divide_type']].')'.$datae.$datas.($row['divide_part'] + 1)." van ".($row['divide_parts'] + 1).$datae.$rowe.PHP_EOL; |
|
56 $memo .= $tabue.PHP_EOL; |
|
57 $memo .= PHP_EOL; |
|
58 |
|
59 |
|
60 $sugarsm = 0; |
|
61 $grainabsorbtion = 0; |
|
62 $mashwater = 0; |
|
63 |
|
64 $memo .= '[u][b]Vergistbare ingrediënten[/b][/u]'.PHP_EOL; |
|
65 $memo .= $tabus.PHP_EOL; |
|
66 $memo .= $heads.'Mout, granen en suikers'.$heade.$heads.'EBC'. $heade.$heads.'Gewicht kg'.$heade.$heads.'%'.$heade.$heads.'Gebruik tijdens'.$heade.PHP_EOL; |
|
67 |
|
68 $arr = json_decode($row['json_fermentables'], true); |
|
69 foreach($arr as $item) { |
|
70 $name = $item['f_name']." (".$item['f_supplier'].")"; |
|
71 $amount = floatval($item['f_amount']); |
|
72 $d = $amount * (floatval($item['f_yield']) / 100) * (1 - floatval($item['f_moisture']) / 100); |
|
73 if ($item['f_added'] == 0) { |
|
74 $d = floatval($row['efficiency']) / 100 * $d; |
|
75 $sugarsm += $d; |
|
76 $grainabsorbtion += $item['f_amount']; |
|
77 } |
|
78 $pct = ''; |
|
79 if ($item['f_added'] < 4) |
|
80 $pct = sprintf("%.1f", floatval($item['f_percentage'])); |
|
81 |
|
82 $memo .= $rows.$datas.$name.$datae.$datas.sprintf("%.0f", floatval($item['f_color'])).$datae.$datas; |
|
83 $memo .= sprintf("%.3f", $amount).$datae.$datas.$pct.$datae.$datas; |
|
84 $memo .= $added[$item['f_added']].$datae.$rowe .PHP_EOL; |
|
85 } |
|
86 $preboil_sg = estimate_sg($sugarsm, floatval($row['boil_size'])); |
|
87 $memo .= $tabue.PHP_EOL; |
|
88 $memo .= PHP_EOL; |
|
89 |
|
90 |
|
91 $memo .= '[u][b]Hop[/b][/u]'.PHP_EOL; |
|
92 $memo .= $tabus.PHP_EOL; |
|
93 $memo .= $heads.'Hop'.$heade.$heads.'Vorm'.$heade.$heads.'Alpha'.$heade.$heads.'IBU'.$heade.$heads.'Gram'.$heade.$heads.'Toevoegen moment'.$heade.PHP_EOL; |
|
94 |
|
95 $arr = json_decode($row['json_hops'], true); |
|
96 foreach($arr as $item) { |
|
97 $name = $item['h_name']." (".$item['h_origin'].")"; |
|
98 $amount = floatval($item['h_amount']) * 1000; |
|
99 $time = floatval($item['h_time']); |
|
100 $alpha = floatval($item['h_alpha']); |
|
101 $ibu = calc_IBU($item['h_useat'], $item['h_form'], $preboil_sg, floatval($row['batch_size']), $amount, $time, $alpha, |
|
102 $row['ibu_method'], $row['brew_whirlpool9'], $row['brew_whirlpool7'], $row['brew_whirlpool6']); |
|
103 $moment = $hopuse[$item['h_useat']]; |
|
104 if (($item['h_useat'] == 2) || ($item['h_useat'] == 4)) { // Boil or Whirlpool |
|
105 $moment = $hopuse[$item['h_useat']].' '.$time." minuten"; |
|
106 } else if ($item['h_useat'] == 5) { // Dryhop |
|
107 $moment = $hopuse[$item['h_useat']].' '.sprintf("%.0f", $time / 1440).' dagen'; |
|
108 } |
|
109 |
|
110 $memo .= $rows.$datas.$name.$datae.$datas.$hopform[$item['h_form']].$datae.$datas.sprintf("%.1f", $alpha).'%'.$datae.$datas; |
|
111 $memo .= sprintf("%.1f", $ibu).$datae.$datas.sprintf("%.1f", $amount).$datae.$datas.$moment.$datae.$rowe.PHP_EOL; |
|
112 } |
|
113 $memo .= $tabue.PHP_EOL; |
|
114 $memo .= PHP_EOL; |
|
115 |
|
116 $memo .= '[u][b]Diversen[/b][/u]'.PHP_EOL; |
|
117 $memo .= $tabus.PHP_EOL; |
|
118 $memo .= $heads.'Specerij, kruid, brouwzout'.$heade.$heads.'Type grondstof'.$heade.$heads.'Gebruik tijdens'.$heade.$heads.'Hoeveel'.$heade.PHP_EOL; |
|
119 |
|
120 $arr = json_decode($row['json_miscs'], true); |
|
121 foreach($arr as $item) { |
|
122 if ($item['m_use_use'] == 2) // Boil |
|
123 $gebruik = sprintf("%s %d min",$miscuse[$item['m_use_use']],floatval($item['m_time'])); |
|
124 else |
|
125 $gebruik = $miscuse[$item['m_use_use']]; |
|
126 $hoeveel = sprintf("%.2f %s",floatval($item['m_amount']) * 1000,$item['m_amount_is_weight'] ? "gr":"ml"); |
|
127 |
|
128 $memo .= $rows.$datas.$item['m_name'].$datae.$datas.$misctype[$item['m_type']].$datae.$datas; |
|
129 $memo .= $gebruik.$datae.$datas.$hoeveel.$datae.$rowe.PHP_EOL; |
|
130 } |
|
131 $memo .= $tabue.PHP_EOL; |
|
132 $memo .= PHP_EOL; |
|
133 |
|
134 $memo .= '[u][b]Gist[/b][/u]'.PHP_EOL; |
|
135 $memo .= $tabus.PHP_EOL; |
|
136 $memo .= $heads.'Gistlab en code'.$heade.$heads.'Omschrijving'.$heade.$heads.'Gebruik'.$heade.$heads.'Vorm'.$heade.$heads.'Hoeveel'.$heade.PHP_EOL; |
|
137 |
|
138 $arr = json_decode($row['json_yeasts'], true); |
|
139 foreach($arr as $item) { |
|
140 $product = $item['y_laboratory']." ".$item['y_product_id']; |
|
141 |
|
142 if ($item['y_form'] == 0) // Liquid |
|
143 $amount = sprintf("%.0f",floatval($item['y_amount']))." pak"; |
|
144 else if ($item['y_form'] == 1 || $item['y_form'] == 6) // Dry |
|
145 $amount = sprintf("%.1f",floatval($item['y_amount'])*1000)." gr"; |
|
146 else |
|
147 $amount = sprintf("%.0f",floatval($item['y_amount'])*1000)." ml"; |
|
148 |
|
149 $memo .= $rows.$datas.$product.$datae.$datas.$item['y_name'].$datae.$datas.$yeastuse[$item['y_use']].$datae.$datas; |
|
150 $memo .= $yeastform[$item['y_form']].$datae.$datas.$amount.$datae.$rowe.PHP_EOL; |
|
151 } |
|
152 $memo .= $tabue.PHP_EOL; |
|
153 if ($row['starter_enable'] && $row['prop1_volume']) { |
|
154 $sv = 0; |
|
155 for ($i = 1; $i < 5; $i++) { |
|
156 $pv = "prop".$i."_volume"; |
|
157 if (floatval($row[$pv]) && (floatval($row[$pv]) > $sv)) { |
|
158 $sv = floatval($row[$pv]); |
|
159 } |
|
160 } |
|
161 $memo .= "Maak een giststarter van ".sprintf("%.1f", $sv)." liter.".PHP_EOL; |
|
162 } |
|
163 $memo .= PHP_EOL; |
|
164 |
|
165 |
|
166 if ($row['w1_name']) |
|
167 $mashwater += floatval($row['w1_amount']); |
|
168 if ($row['w2_name']) |
|
169 $mashwater += floatval($row['w2_amount']); |
|
170 |
|
171 $memo .= '[u][b]Maischschema[/b][/u]'.PHP_EOL; |
|
172 $memo .= $tabus.PHP_EOL; |
|
173 $memo .= $heads.'Maisch stap'.$heade.$heads.'Stap type'.$heade.$heads.'Temperatuur'.$heade.$heads.'Rust tijd'.$heade.$heads.'Opwarmen tijd'.$heade.PHP_EOL; |
|
174 |
|
175 $arr = json_decode($row['json_mashs'], true); |
|
176 foreach($arr as $item) { |
|
177 |
|
178 if ($item['step_type'] == 1) { |
|
179 $stype = $mashtype[$item['step_type']]; |
|
180 } else { |
|
181 $stype = $mashtype[$item['step_type']].' '.sprintf("%.1f", $item['step_infuse_amount']).' liter'; |
|
182 } |
|
183 $memo .= $rows.$datas.$item['step_name'].$datae.$datas.$stype.$datae.$datas.sprintf("%.1f °C", $item['step_temp']); |
|
184 $memo .= $datae.$datas.sprintf("%.0f min.", $item['step_time']).$datae.$datas.sprintf("%.0f min.", $item['ramp_time']); |
|
185 $memo .= $datae.$rowe.PHP_EOL; |
|
186 } |
|
187 $memo .= $tabue.PHP_EOL; |
|
188 $memo .= PHP_EOL; |
|
189 |
|
190 $memo .= '[u][b]Brouwwater[/b][/u]'.PHP_EOL; |
|
191 $memo .= $tabus.PHP_EOL; |
|
192 $memo .= $heads.'Omschrijving'.$heade.$heads.'Waarde'.$heade.PHP_EOL; |
|
193 |
|
194 if ($row['w1_name'] && $row['w2_name'] && floatval($row['w2_amount']) > 0) { |
|
195 $memo .= $rows.$datas.'Maischwater 1'.$datae.$datas.sprintf("%.1f",floatval($row['w1_amount'])).' liter water '.$row['w1_name'].$datae.$rowe.PHP_EOL; |
|
196 $memo .= $rows.$datas.'Maischwater 2'.$datae.$datas.sprintf("%.1f",floatval($row['w2_amount'])).' liter water '.$row['w2_name'].$datae.$rowe.PHP_EOL; |
|
197 } else { |
|
198 $memo .= $rows.$datas.'Maischwater'.$datae.$datas.sprintf("%.1f",floatval($row['w1_amount'])).' liter water '.$row['w1_name'].$datae.$rowe.PHP_EOL; |
|
199 } |
|
200 $memo .= $rows.$datas.'Maischwater aanzuren tot pH'.$datae.$datas.$row['mash_ph'].' pH'.$datae.$rowe.PHP_EOL; |
|
201 $memo .= $rows.$datas.'Spoelwater geschat'.$datae.$datas.sprintf("%.1f",$row['brew_sparge_est'])." liter".$datae.$rowe.PHP_EOL; |
|
202 $memo .= $rows.$datas.'Spoelwater temperatuur'.$datae.$datas.$row['sparge_temp'].' °C'.$datae.$rowe.PHP_EOL; |
|
203 $memo .= $rows.$datas.'Spoelwater aanzuren tot pH'.$datae.$datas.sprintf("%.1f",$row['sparge_ph']).' pH'.$datae.$rowe.PHP_EOL; |
|
204 $memo .= $tabue.PHP_EOL; |
|
205 $memo .= PHP_EOL; |
|
206 |
|
207 $memo .= '[u][b]Waterprofiel behandeld water[/b][/u]'.PHP_EOL; |
|
208 $memo .= $tabus.PHP_EOL; |
|
209 $memo .= $heads.'Ca'.$heade.$heads.'Mg'.$heade.$heads.'Na'.$heade.$heads.'HCO3'.$heade.$heads.'Cl'.$heade.$heads.'SO4'.$heade.PHP_EOL; |
|
210 $memo .= $rows.$datas.sprintf("%.1f",floatval($row['wb_calcium'])).$datae; |
|
211 $memo .= $datas.sprintf("%.1f",floatval($row['wb_magnesium'])).$datae; |
|
212 $memo .= $datas.sprintf("%.1f",floatval($row['wb_sodium'])).$datae; |
|
213 $memo .= $datas.sprintf("%.1f",floatval($row['wb_total_alkalinity'])*61/50).$datae; |
|
214 $memo .= $datas.sprintf("%.1f",floatval($row['wb_chloride'])).$datae; |
|
215 $memo .= $datas.sprintf("%.1f",floatval($row['wb_sulfate'])).$datae.$rowe.PHP_EOL; |
|
216 $memo .= $tabue.PHP_EOL; |
|
217 |
|
218 page_header('Product naar forum', 'prod_forum'); |
|
219 ?> |
|
220 <script> |
|
221 // json_encode() seems to do the right thing. |
|
222 var forumstr = <?= json_encode($memo) ?>; |
|
223 </script> |
|
224 <div id="MainPanel"> |
|
225 <div class="section"> |
|
226 <div style="overflow: hidden; margin: 25px;"><br> |
|
227 <p>Het product met alle gegevens staan gereed.</p> |
|
228 <p>Zodra je de "Klembord" toets gebruikt zullen deze gegevens naar het klembord gekopieerd<br> |
|
229 worden. In het scherm van het forum kun je deze gegevens vervolgens "plakken".</p> |
|
230 <p>Na het drukken van de toets wordt dit scherm gesloten.</p> |
|
231 <p><input type="button" value="Klembord" id="copytoClipboard" /></p> |
|
232 </div> |
|
233 </div> |
|
234 </div> |
|
235 |
|
236 <?php |
|
237 page_footer(); |
|
238 ?> |
|