51 |
57 |
52 xmlwriter_start_element($xw, 'RECIPES'); |
58 xmlwriter_start_element($xw, 'RECIPES'); |
53 xmlwriter_start_element($xw, 'RECIPE'); |
59 xmlwriter_start_element($xw, 'RECIPE'); |
54 |
60 |
55 // Recipe basics |
61 // Recipe basics |
56 xmlwriter_start_element($xw, 'VERSION'); |
62 field($xw, 'VERSION', '1'); |
57 xmlwriter_text($xw, '1'); |
63 field($xw, 'NAME', $row['name']); |
58 xmlwriter_end_element($xw); |
64 field($xw, 'NOTES', $row['notes']); |
59 |
65 field($xw, 'TYPE', $recipetype[$row['type']]); |
60 xmlwriter_start_element($xw, 'NAME'); |
66 field($xw, 'BREWER', 'Anonymous'); |
61 xmlwriter_text($xw, $row['name']); |
67 field($xw, 'BATCH_SIZE', sprintf("%.4f",floatval($row['batch_size']))); |
62 xmlwriter_end_element($xw); |
68 field($xw, 'BOIL_SIZE', sprintf("%.4f",floatval($row['boil_size']))); |
63 |
69 field($xw, 'BOIL_TIME', sprintf("%.3f",floatval($row['boil_time']))); |
64 xmlwriter_start_element($xw, 'NOTES'); |
70 field($xw, 'EFFICIENCY', sprintf("%.4f",floatval($row['efficiency']))); |
65 xmlwriter_text($xw, $row['notes']); |
71 field($xw, 'OG', sprintf("%.3f",floatval($row['og']))); |
66 xmlwriter_end_element($xw); |
72 field($xw, 'FG', sprintf("%.3f",floatval($row['fg']))); |
67 |
73 |
68 xmlwriter_start_element($xw, 'TYPE'); |
|
69 xmlwriter_text($xw, $recipetype[$row['type']]); |
|
70 xmlwriter_end_element($xw); |
|
71 |
|
72 xmlwriter_start_element($xw, 'BREWER'); |
|
73 xmlwriter_text($xw, 'Anonymous'); |
|
74 xmlwriter_end_element($xw); |
|
75 |
|
76 xmlwriter_start_element($xw, 'BATCH_SIZE'); |
|
77 xmlwriter_text($xw, sprintf("%.2f",floatval($row['batch_size']))); |
|
78 xmlwriter_end_element($xw); |
|
79 |
|
80 xmlwriter_start_element($xw, 'BOIL_SIZE'); |
|
81 xmlwriter_text($xw, sprintf("%.2f",floatval($row['boil_size']))); |
|
82 xmlwriter_end_element($xw); |
|
83 |
|
84 xmlwriter_start_element($xw, 'BOIL_TIME'); |
|
85 xmlwriter_text($xw, sprintf("%.0f",floatval($row['boil_time']))); |
|
86 xmlwriter_end_element($xw); |
|
87 |
|
88 xmlwriter_start_element($xw, 'EFFICIENCY'); |
|
89 xmlwriter_text($xw, sprintf("%.1f",floatval($row['efficiency']))); |
|
90 xmlwriter_end_element($xw); |
|
91 |
|
92 xmlwriter_start_element($xw, 'OG'); |
|
93 xmlwriter_text($xw, sprintf("%.3f",floatval($row['og']))); |
|
94 xmlwriter_end_element($xw); |
|
95 |
|
96 xmlwriter_start_element($xw, 'FG'); |
|
97 xmlwriter_text($xw, sprintf("%.3f",floatval($row['fg']))); |
|
98 xmlwriter_end_element($xw); |
|
99 |
74 |
100 if (floatval($row['est_og']) > 0) { |
75 if (floatval($row['est_og']) > 0) { |
101 xmlwriter_start_element($xw, 'EST_OG'); |
76 field($xw, 'EST_OG', sprintf("%.3f",floatval($row['est_og']))); |
102 xmlwriter_text($xw, sprintf("%.3f",floatval($row['est_og']))); |
|
103 xmlwriter_end_element($xw); |
|
104 } |
77 } |
105 |
78 |
106 if (floatval($row['est_fg']) > 0) { |
79 if (floatval($row['est_fg']) > 0) { |
107 xmlwriter_start_element($xw, 'EST_FG'); |
80 field($xw, 'EST_FG', sprintf("%.3f",floatval($row['est_fg']))); |
108 xmlwriter_text($xw, sprintf("%.3f",floatval($row['est_fg']))); |
|
109 xmlwriter_end_element($xw); |
|
110 } |
81 } |
111 |
82 |
112 if (floatval($row['est_abv']) > 0) { |
83 if (floatval($row['est_abv']) > 0) { |
113 xmlwriter_start_element($xw, 'EST_ABV'); |
84 field($xw, 'EST_ABV', sprintf("%.1f",floatval($row['est_abv']))); |
114 xmlwriter_text($xw, sprintf("%.1f",floatval($row['est_abv']))); |
|
115 xmlwriter_end_element($xw); |
|
116 } |
85 } |
117 |
86 |
118 if (floatval($row['est_color']) > 0) { |
87 if (floatval($row['est_color']) > 0) { |
119 xmlwriter_start_element($xw, 'EST_COLOR'); |
88 field($xw, 'EST_COLOR', sprintf("%.6f", ebc_to_srm(floatval($row['est_color'])))); |
120 xmlwriter_text($xw, sprintf("%.1f",floatval($row['est_color']))); |
89 field($xw, 'COLOR_METHOD', $colormethod[$row['color_method']]); |
121 xmlwriter_end_element($xw); |
|
122 xmlwriter_start_element($xw, 'COLOR_METHOD'); |
|
123 xmlwriter_text($xw, $colormethod[$row['color_method']]); |
|
124 xmlwriter_end_element($xw); |
|
125 } |
90 } |
126 |
91 |
127 if (floatval($row['est_ibu']) > 0) { |
92 if (floatval($row['est_ibu']) > 0) { |
128 xmlwriter_start_element($xw, 'EST_IBU'); |
93 field($xw, 'EST_IBU', sprintf("%.1f",floatval($row['est_ibu']))); |
129 xmlwriter_text($xw, sprintf("%.1f",floatval($row['est_ibu']))); |
94 field($xw, 'IBU_METHOD', $ibumethod[$row['ibu_method']]); |
130 xmlwriter_end_element($xw); |
95 } |
131 xmlwriter_start_element($xw, 'IBU_METHOD'); |
96 |
132 xmlwriter_text($xw, $ibumethod[$row['ibu_method']]); |
97 /* If product is packaged and carbonated, add fermentation data. */ |
133 xmlwriter_end_element($xw); |
98 if ($row['stage'] >= 8) { |
134 } |
99 $d1 = new DateTime($row['brew_date_end']); |
135 |
100 $d2 = new DateTime($row['primary_end_date']); |
136 if ($row['brew_cooling_to'] > 0) { |
101 $d3 = new DateTime($row['secondary_end_date']); |
137 xmlwriter_start_element($xw, 'BMS_COOLING_TO'); |
102 $d4 = new DateTime($row['package_date']); |
138 xmlwriter_text($xw, sprintf("%.1f",floatval($row['brew_cooling_to']))); |
103 $diff = $d2->diff($d1); |
139 xmlwriter_end_element($xw); |
104 $primary_days = $diff->days; |
140 } |
105 $diff = $d3->diff($d2); |
141 |
106 $secondary_days = $diff->days; |
142 if ($row['brew_whirlpool9'] > 0) { |
107 $diff = $d4->diff($d3); |
143 xmlwriter_start_element($xw, 'BMS_WHIRLPOOL9'); |
108 $tertiary_days = $diff->days; |
144 xmlwriter_text($xw, sprintf("%.0f",floatval($row['brew_whirlpool9']))); |
109 field($xw, 'FERMENTATION_STAGES', '3'); |
145 xmlwriter_end_element($xw); |
110 field($xw, 'PRIMARY_AGE', sprintf("%.1f", $primary_days)); |
146 } |
111 field($xw, 'PRIMARY_TEMP', sprintf("%.1f", $row['primary_max_temp'])); |
147 if ($row['brew_whirlpool7'] > 0) { |
112 field($xw, 'SECONDARY_AGE', sprintf("%.1f", $secondary_days)); |
148 xmlwriter_start_element($xw, 'BMS_WHIRLPOOL7'); |
113 field($xw, 'SECONDARY_TEMP', sprintf("%.1f", $row['secondary_temp'])); |
149 xmlwriter_text($xw, sprintf("%.0f",floatval($row['brew_whirlpool7']))); |
114 field($xw, 'TERTIARY_AGE', sprintf("%.1f", $tertiary_days)); |
150 xmlwriter_end_element($xw); |
115 field($xw, 'TERTIARY_TEMP', sprintf("%.1f", $row['tertiary_temp'])); |
151 } |
116 field($xw, 'CARBONATION', sprintf("%.1f", $row['bottle_carbonation'])); |
152 if ($row['brew_whirlpool6'] > 0) { |
117 field($xw, 'FORCED_CARBONATION', 'FALSE'); |
153 xmlwriter_start_element($xw, 'BMS_WHIRLPOOL6'); |
118 field($xw, 'CARBONATION_TEMP', sprintf("%.1f", $row['bottle_carbonation_temp'])); |
154 xmlwriter_text($xw, sprintf("%.0f",floatval($row['brew_whirlpool6']))); |
119 } |
155 xmlwriter_end_element($xw); |
120 |
156 } |
121 if ($row['brew_cooling_to'] > 0) |
157 if ($row['brew_whirlpool2'] > 0) { |
122 field($xw, 'BMS_COOLING_TO', sprintf("%.1f",floatval($row['brew_cooling_to']))); |
158 xmlwriter_start_element($xw, 'BMS_WHIRLPOOL2'); |
123 |
159 xmlwriter_text($xw, sprintf("%.0f",floatval($row['brew_whirlpool2']))); |
124 if ($row['brew_whirlpool9'] > 0) |
160 xmlwriter_end_element($xw); |
125 field($xw, 'BMS_WHIRLPOOL9', sprintf("%.0f",floatval($row['brew_whirlpool9']))); |
161 } |
126 if ($row['brew_whirlpool7'] > 0) |
|
127 field($xw, 'BMS_WHIRLPOOL7', sprintf("%.0f",floatval($row['brew_whirlpool7']))); |
|
128 if ($row['brew_whirlpool6'] > 0) |
|
129 field($xw, 'BMS_WHIRLPOOL6', sprintf("%.0f",floatval($row['brew_whirlpool6']))); |
|
130 if ($row['brew_whirlpool2'] > 0) |
|
131 field($xw, 'BMS_WHIRLPOOL2', sprintf("%.0f",floatval($row['brew_whirlpool2']))); |
162 |
132 |
163 |
133 |
164 // Style |
134 // Style |
165 xmlwriter_start_element($xw, 'STYLE'); |
135 xmlwriter_start_element($xw, 'STYLE'); |
166 |
136 field($xw, 'VERSION', '1'); |
167 xmlwriter_start_element($xw, 'VERSION'); |
137 field($xw, 'NAME', $row['st_name']); |
168 xmlwriter_text($xw, '1'); |
138 field($xw, 'CATEGORY', $row['st_category']); |
169 xmlwriter_end_element($xw); |
139 field($xw, 'CATEGORY_NUMBER', $row['st_category_number']); |
170 |
140 field($xw, 'STYLE_LETTER', $row['st_letter']); |
171 xmlwriter_start_element($xw, 'NAME'); |
141 field($xw, 'STYLE_GUIDE', $row['st_guide']); |
172 xmlwriter_text($xw, $row['st_name']); |
142 field($xw, 'TYPE', $styletype[$row['st_type']]); |
173 xmlwriter_end_element($xw); |
143 field($xw, 'OG_MIN', sprintf("%.3f",floatval($row['st_og_min']))); |
174 |
144 field($xw, 'OG_MAX', sprintf("%.3f",floatval($row['st_og_max']))); |
175 xmlwriter_start_element($xw, 'CATEGORY'); |
145 field($xw, 'FG_MIN', sprintf("%.3f",floatval($row['st_fg_min']))); |
176 xmlwriter_text($xw, $row['st_category']); |
146 field($xw, 'FG_MAX', sprintf("%.3f",floatval($row['st_fg_max']))); |
177 xmlwriter_end_element($xw); |
147 field($xw, 'IBU_MIN', sprintf("%.0f",floatval($row['st_ibu_min']))); |
178 |
148 field($xw, 'IBU_MAX', sprintf("%.0f",floatval($row['st_ibu_max']))); |
179 xmlwriter_start_element($xw, 'CATEGORY_NUMBER'); |
149 field($xw, 'COLOR_MIN', sprintf("%.2f",ebc_to_srm(floatval($row['st_color_min'])))); |
180 xmlwriter_text($xw, $row['st_category_number']); |
150 field($xw, 'COLOR_MAX', sprintf("%.2f",ebc_to_srm(floatval($row['st_color_max'])))); |
181 xmlwriter_end_element($xw); |
151 field($xw, 'CARB_MIN', sprintf("%.1f",floatval($row['st_carb_min']))); |
182 |
152 field($xw, 'CARB_MAX', sprintf("%.1f",floatval($row['st_carb_max']))); |
183 xmlwriter_start_element($xw, 'STYLE_LETTER'); |
153 field($xw, 'ABV_MIN', sprintf("%.1f",floatval($row['st_abv_min']))); |
184 xmlwriter_text($xw, $row['st_letter']); |
154 field($xw, 'ABV_MAX', sprintf("%.1f",floatval($row['st_abv_max']))); |
185 xmlwriter_end_element($xw); |
|
186 |
|
187 xmlwriter_start_element($xw, 'STYLE_GUIDE'); |
|
188 xmlwriter_text($xw, $row['st_guide']); |
|
189 xmlwriter_end_element($xw); |
|
190 |
|
191 xmlwriter_start_element($xw, 'TYPE'); |
|
192 xmlwriter_text($xw, $styletype[$row['st_type']]); |
|
193 xmlwriter_end_element($xw); |
|
194 |
|
195 xmlwriter_start_element($xw, 'OG_MIN'); |
|
196 xmlwriter_text($xw, sprintf("%.3f",floatval($row['st_og_min']))); |
|
197 xmlwriter_end_element($xw); |
|
198 |
|
199 xmlwriter_start_element($xw, 'OG_MAX'); |
|
200 xmlwriter_text($xw, sprintf("%.3f",floatval($row['st_og_max']))); |
|
201 xmlwriter_end_element($xw); |
|
202 |
|
203 xmlwriter_start_element($xw, 'FG_MIN'); |
|
204 xmlwriter_text($xw, sprintf("%.3f",floatval($row['st_fg_min']))); |
|
205 xmlwriter_end_element($xw); |
|
206 |
|
207 xmlwriter_start_element($xw, 'FG_MAX'); |
|
208 xmlwriter_text($xw, sprintf("%.3f",floatval($row['st_fg_max']))); |
|
209 xmlwriter_end_element($xw); |
|
210 |
|
211 xmlwriter_start_element($xw, 'IBU_MIN'); |
|
212 xmlwriter_text($xw, sprintf("%.0f",floatval($row['st_ibu_min']))); |
|
213 xmlwriter_end_element($xw); |
|
214 |
|
215 xmlwriter_start_element($xw, 'IBU_MAX'); |
|
216 xmlwriter_text($xw, sprintf("%.0f",floatval($row['st_ibu_max']))); |
|
217 xmlwriter_end_element($xw); |
|
218 |
|
219 xmlwriter_start_element($xw, 'COLOR_MIN'); |
|
220 xmlwriter_text($xw, sprintf("%.2f",ebc_to_srm(floatval($row['st_color_min'])))); |
|
221 xmlwriter_end_element($xw); |
|
222 |
|
223 xmlwriter_start_element($xw, 'COLOR_MAX'); |
|
224 xmlwriter_text($xw, sprintf("%.2f",ebc_to_srm(floatval($row['st_color_max'])))); |
|
225 xmlwriter_end_element($xw); |
|
226 |
|
227 xmlwriter_start_element($xw, 'CARB_MIN'); |
|
228 xmlwriter_text($xw, sprintf("%.1f",floatval($row['st_carb_min']))); |
|
229 xmlwriter_end_element($xw); |
|
230 |
|
231 xmlwriter_start_element($xw, 'CARB_MAX'); |
|
232 xmlwriter_text($xw, sprintf("%.1f",floatval($row['st_carb_max']))); |
|
233 xmlwriter_end_element($xw); |
|
234 |
|
235 xmlwriter_start_element($xw, 'ABV_MIN'); |
|
236 xmlwriter_text($xw, sprintf("%.1f",floatval($row['st_abv_min']))); |
|
237 xmlwriter_end_element($xw); |
|
238 |
|
239 xmlwriter_start_element($xw, 'ABV_MAX'); |
|
240 xmlwriter_text($xw, sprintf("%.1f",floatval($row['st_abv_max']))); |
|
241 xmlwriter_end_element($xw); |
|
242 |
|
243 xmlwriter_end_element($xw); // STYLE |
155 xmlwriter_end_element($xw); // STYLE |
244 |
156 |
245 xmlwriter_start_element($xw, 'EQUIPMENT'); |
157 xmlwriter_start_element($xw, 'EQUIPMENT'); |
246 |
158 field($xw, 'VERSION', '1'); |
247 xmlwriter_start_element($xw, 'VERSION'); |
159 field($xw, 'NAME', $row['eq_name']); |
248 xmlwriter_text($xw, '1'); |
160 field($xw, 'NOTES', $row['eq_notes']); |
249 xmlwriter_end_element($xw); |
161 field($xw, 'BATCH_SIZE', sprintf("%.2f",floatval($row['eq_batch_size']))); |
250 |
162 field($xw, 'BOIL_SIZE', sprintf("%.2f",floatval($row['eq_boil_size']))); |
251 xmlwriter_start_element($xw, 'NAME'); |
163 field($xw, 'BOIL_TIME', sprintf("%.0f",floatval($row['eq_boil_time']))); |
252 xmlwriter_text($xw, $row['eq_name']); |
|
253 xmlwriter_end_element($xw); |
|
254 |
|
255 xmlwriter_start_element($xw, 'NOTES'); |
|
256 xmlwriter_text($xw, $row['eq_notes']); |
|
257 xmlwriter_end_element($xw); |
|
258 |
|
259 xmlwriter_start_element($xw, 'BATCH_SIZE'); |
|
260 xmlwriter_text($xw, sprintf("%.2f",floatval($row['eq_batch_size']))); |
|
261 xmlwriter_end_element($xw); |
|
262 |
|
263 xmlwriter_start_element($xw, 'BOIL_SIZE'); |
|
264 xmlwriter_text($xw, sprintf("%.2f",floatval($row['eq_boil_size']))); |
|
265 xmlwriter_end_element($xw); |
|
266 |
|
267 xmlwriter_start_element($xw, 'BOIL_TIME'); |
|
268 xmlwriter_text($xw, sprintf("%.0f",floatval($row['eq_boil_time']))); |
|
269 xmlwriter_end_element($xw); |
|
270 |
|
271 xmlwriter_end_element($xw); // EQUIPMENT |
164 xmlwriter_end_element($xw); // EQUIPMENT |
272 |
165 |
273 xmlwriter_start_element($xw, 'HOPS'); |
166 xmlwriter_start_element($xw, 'HOPS'); |
274 $arr = json_decode($row['json_hops'], true); |
167 $arr = json_decode($row['json_hops'], true); |
275 foreach($arr as $item) { //foreach element in $arr |
168 foreach($arr as $item) { //foreach element in $arr |
276 |
|
277 xmlwriter_start_element($xw, 'HOP'); |
169 xmlwriter_start_element($xw, 'HOP'); |
278 |
170 field($xw, 'VERSION', '1'); |
279 xmlwriter_start_element($xw, 'VERSION'); |
171 field($xw, 'NAME', $item['h_name']); |
280 xmlwriter_text($xw, '1'); |
172 field($xw, 'ALPHA', sprintf("%.1f",floatval($item['h_alpha']))); |
281 xmlwriter_end_element($xw); |
173 field($xw, 'AMOUNT', sprintf("%.4f",floatval($item['h_amount']))); |
282 |
174 field($xw, 'USE', $hopuse[$item['h_useat']]); |
283 xmlwriter_start_element($xw, 'NAME'); |
175 field($xw, 'TIME', $item['h_time']); |
284 xmlwriter_text($xw, $item['h_name']); |
176 field($xw, 'TYPE', $hoptype[$item['h_type']]); |
285 xmlwriter_end_element($xw); |
177 field($xw, 'FORM', $hopform[$item['h_form']]); |
286 |
178 field($xw, 'BETA', sprintf("%.1f",floatval($item['h_beta']))); |
287 xmlwriter_start_element($xw, 'ALPHA'); |
179 field($xw, 'HSI', sprintf("%.1f",floatval($item['h_hsi']))); |
288 xmlwriter_text($xw, sprintf("%.1f",floatval($item['h_alpha']))); |
180 field($xw, 'ORIGIN', $item['h_origin']); |
289 xmlwriter_end_element($xw); |
|
290 |
|
291 xmlwriter_start_element($xw, 'AMOUNT'); |
|
292 xmlwriter_text($xw, sprintf("%.4f",floatval($item['h_amount']))); |
|
293 xmlwriter_end_element($xw); |
|
294 |
|
295 xmlwriter_start_element($xw, 'USE'); |
|
296 xmlwriter_text($xw, $hopuse[$item['h_useat']]); |
|
297 xmlwriter_end_element($xw); |
|
298 |
|
299 xmlwriter_start_element($xw, 'TIME'); |
|
300 xmlwriter_text($xw, $item['h_time']); |
|
301 xmlwriter_end_element($xw); |
|
302 |
|
303 xmlwriter_start_element($xw, 'TYPE'); |
|
304 xmlwriter_text($xw, $hoptype[$item['h_type']]); |
|
305 xmlwriter_end_element($xw); |
|
306 |
|
307 xmlwriter_start_element($xw, 'FORM'); |
|
308 xmlwriter_text($xw, $hopform[$item['h_form']]); |
|
309 xmlwriter_end_element($xw); |
|
310 |
|
311 xmlwriter_start_element($xw, 'BETA'); |
|
312 xmlwriter_text($xw, sprintf("%.1f",floatval($item['h_beta']))); |
|
313 xmlwriter_end_element($xw); |
|
314 |
|
315 xmlwriter_start_element($xw, 'HSI'); |
|
316 xmlwriter_text($xw, sprintf("%.1f",floatval($item['h_hsi']))); |
|
317 xmlwriter_end_element($xw); |
|
318 |
|
319 xmlwriter_start_element($xw, 'ORIGIN'); |
|
320 xmlwriter_text($xw, $item['h_origin']); |
|
321 xmlwriter_end_element($xw); |
|
322 |
|
323 xmlwriter_end_element($xw); // HOP |
181 xmlwriter_end_element($xw); // HOP |
324 } |
182 } |
325 xmlwriter_end_element($xw); // HOPS |
183 xmlwriter_end_element($xw); // HOPS |
326 |
184 |
327 xmlwriter_start_element($xw, 'FERMENTABLES'); |
185 xmlwriter_start_element($xw, 'FERMENTABLES'); |
328 $arr = json_decode($row['json_fermentables'], true); |
186 $arr = json_decode($row['json_fermentables'], true); |
329 foreach($arr as $item) { //foreach element in $arr |
187 foreach($arr as $item) { //foreach element in $arr |
330 xmlwriter_start_element($xw, 'FERMENTABLE'); |
188 xmlwriter_start_element($xw, 'FERMENTABLE'); |
331 |
189 field($xw, 'VERSION', '1'); |
332 xmlwriter_start_element($xw, 'VERSION'); |
190 field($xw, 'NAME', $item['f_name']); |
333 xmlwriter_text($xw, '1'); |
191 field($xw, 'TYPE', $fermentabletype[$item['f_type']]); |
334 xmlwriter_end_element($xw); |
192 field($xw, 'AMOUNT', sprintf("%.4f",floatval($item['f_amount']))); |
335 |
193 field($xw, 'YIELD', sprintf("%.1f",floatval($item['f_yield']))); |
336 xmlwriter_start_element($xw, 'NAME'); |
194 field($xw, 'COLOR', sprintf("%.1f",ebc_to_srm(floatval($item['f_color'])))); |
337 xmlwriter_text($xw, $item['f_name']); |
195 field($xw, 'ADD_AFTER_BOIL', ($item['f_added'] > 1) ? 'TRUE':'FALSE'); |
338 xmlwriter_end_element($xw); |
196 field($xw, 'ORIGIN', $item['f_origin']); |
339 |
197 field($xw, 'SUPPLIER', $item['f_supplier']); |
340 xmlwriter_start_element($xw, 'TYPE'); |
198 if (floatval($item['f_coarse_fine_diff'])) |
341 xmlwriter_text($xw, $fermentabletype[$item['f_type']]); |
199 field($xw, 'COARSE_FINE_DIFF', sprintf("%.4f",floatval($item['f_coarse_fine_diff']))); |
342 xmlwriter_end_element($xw); |
200 if (floatval($item['f_moisture'])) |
343 |
201 field($xw, 'MOISTURE', sprintf("%.4f",floatval($item['f_moisture']))); |
344 xmlwriter_start_element($xw, 'AMOUNT'); |
202 if (floatval($item['f_diastatic_power'])) |
345 xmlwriter_text($xw, sprintf("%.4f",floatval($item['f_amount']))); |
203 field($xw, 'DIASTATIC_POWER', sprintf("%.4f",floatval($item['f_diastatic_power']))); |
346 xmlwriter_end_element($xw); |
204 if (floatval($item['f_protein'])) |
347 |
205 field($xw, 'PROTEIN', sprintf("%.4f",floatval($item['f_protein']))); |
348 xmlwriter_start_element($xw, 'YIELD'); |
206 if (floatval($item['f_max_in_batch'])) |
349 xmlwriter_text($xw, sprintf("%.1f",floatval($item['f_yield']))); |
207 field($xw, 'MAX_IN_BATCH', sprintf("%.1f",floatval($item['f_max_in_batch']))); |
350 xmlwriter_end_element($xw); |
208 field($xw, 'RECOMMEND_MASH', ($item['f_recommend_mash']) ? 'TRUE':'FALSE'); |
351 |
209 field($xw, 'GRAINTYPE', $graintype[$item['f_graintype']]); |
352 xmlwriter_start_element($xw, 'COLOR'); |
|
353 xmlwriter_text($xw, sprintf("%.1f",ebc_to_srm(floatval($item['f_color'])))); |
|
354 xmlwriter_end_element($xw); |
|
355 |
|
356 xmlwriter_start_element($xw, 'ADD_AFTER_BOIL'); |
|
357 ($item['f_added'] > 1) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE'); |
|
358 xmlwriter_end_element($xw); |
|
359 |
|
360 xmlwriter_start_element($xw, 'ORIGIN'); |
|
361 xmlwriter_text($xw, $item['f_origin']); |
|
362 xmlwriter_end_element($xw); |
|
363 |
|
364 xmlwriter_start_element($xw, 'SUPPLIER'); |
|
365 xmlwriter_text($xw, $item['f_supplier']); |
|
366 xmlwriter_end_element($xw); |
|
367 |
|
368 if (floatval($item['f_coarse_fine_diff'])) { |
|
369 xmlwriter_start_element($xw, 'COARSE_FINE_DIFF'); |
|
370 xmlwriter_text($xw, sprintf("%.4f",floatval($item['f_coarse_fine_diff']))); |
|
371 xmlwriter_end_element($xw); |
|
372 } |
|
373 |
|
374 if (floatval($item['f_moisture'])) { |
|
375 xmlwriter_start_element($xw, 'MOISTURE'); |
|
376 xmlwriter_text($xw, sprintf("%.4f",floatval($item['f_moisture']))); |
|
377 xmlwriter_end_element($xw); |
|
378 } |
|
379 |
|
380 if (floatval($item['f_diastatic_power'])) { |
|
381 xmlwriter_start_element($xw, 'DIASTATIC_POWER'); |
|
382 xmlwriter_text($xw, sprintf("%.4f",floatval($item['f_diastatic_power']))); |
|
383 xmlwriter_end_element($xw); |
|
384 } |
|
385 |
|
386 if (floatval($item['f_protein'])) { |
|
387 xmlwriter_start_element($xw, 'PROTEIN'); |
|
388 xmlwriter_text($xw, sprintf("%.4f",floatval($item['f_protein']))); |
|
389 xmlwriter_end_element($xw); |
|
390 } |
|
391 |
|
392 if (floatval($item['f_max_in_batch'])) { |
|
393 xmlwriter_start_element($xw, 'MAX_IN_BATCH'); |
|
394 xmlwriter_text($xw, sprintf("%.1f",floatval($item['f_max_in_batch']))); |
|
395 xmlwriter_end_element($xw); |
|
396 } |
|
397 |
|
398 xmlwriter_start_element($xw, 'RECOMMEND_MASH'); |
|
399 ($item['f_recommend_mash']) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE'); |
|
400 xmlwriter_end_element($xw); |
|
401 |
|
402 xmlwriter_start_element($xw, 'GRAINTYPE'); |
|
403 xmlwriter_text($xw, $graintype[$item['f_graintype']]); |
|
404 xmlwriter_end_element($xw); |
|
405 |
|
406 xmlwriter_end_element($xw); // FERMENTABLE |
210 xmlwriter_end_element($xw); // FERMENTABLE |
407 } |
211 } |
408 xmlwriter_end_element($xw); // FERMENTABLES |
212 xmlwriter_end_element($xw); // FERMENTABLES |
409 |
213 |
410 xmlwriter_start_element($xw, 'MISCS'); |
214 xmlwriter_start_element($xw, 'MISCS'); |
411 $arr = json_decode($row['json_miscs'], true); |
215 $arr = json_decode($row['json_miscs'], true); |
412 foreach($arr as $item) { |
216 foreach($arr as $item) { |
413 |
|
414 xmlwriter_start_element($xw, 'MISC'); |
217 xmlwriter_start_element($xw, 'MISC'); |
415 |
218 field($xw, 'VERSION', '1'); |
416 xmlwriter_start_element($xw, 'VERSION'); |
219 field($xw, 'NAME', $item['m_name']); |
417 xmlwriter_text($xw, '1'); |
220 field($xw, 'TYPE', $misctype[$item['m_type']]); |
418 xmlwriter_end_element($xw); |
221 field($xw, 'AMOUNT', sprintf("%.5f",floatval($item['m_amount']))); |
419 |
222 field($xw, 'AMOUNT_IS_WEIGHT', ($item['m_amount_is_weight']) ? 'TRUE':'FALSE'); |
420 xmlwriter_start_element($xw, 'NAME'); |
223 field($xw, 'USE', $miscuse[$item['m_use_use']]); |
421 xmlwriter_text($xw, $item['m_name']); |
224 field($xw, 'TIME', sprintf("%.0f",floatval($item['m_time']))); |
422 xmlwriter_end_element($xw); |
|
423 |
|
424 xmlwriter_start_element($xw, 'TYPE'); |
|
425 xmlwriter_text($xw, $misctype[$item['m_type']]); |
|
426 xmlwriter_end_element($xw); |
|
427 |
|
428 xmlwriter_start_element($xw, 'AMOUNT'); |
|
429 xmlwriter_text($xw, sprintf("%.5f",floatval($item['m_amount']))); |
|
430 xmlwriter_end_element($xw); |
|
431 |
|
432 xmlwriter_start_element($xw, 'AMOUNT_IS_WEIGHT'); |
|
433 ($item['m_amount_is_weight']) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE'); |
|
434 xmlwriter_end_element($xw); |
|
435 |
|
436 xmlwriter_start_element($xw, 'USE'); |
|
437 xmlwriter_text($xw, $miscuse[$item['m_use_use']]); |
|
438 xmlwriter_end_element($xw); |
|
439 |
|
440 xmlwriter_start_element($xw, 'TIME'); |
|
441 xmlwriter_text($xw, sprintf("%.0f",floatval($item['m_time']))); |
|
442 xmlwriter_end_element($xw); |
|
443 |
|
444 xmlwriter_end_element($xw); // MISC |
225 xmlwriter_end_element($xw); // MISC |
445 } |
226 } |
446 xmlwriter_end_element($xw); // MISCS |
227 xmlwriter_end_element($xw); // MISCS |
447 |
228 |
448 xmlwriter_start_element($xw, 'YEASTS'); |
229 xmlwriter_start_element($xw, 'YEASTS'); |
449 $arr = json_decode($row['json_yeasts'], true); |
230 $arr = json_decode($row['json_yeasts'], true); |
450 foreach($arr as $item) { //foreach element in $arr |
231 foreach($arr as $item) { //foreach element in $arr |
451 |
|
452 xmlwriter_start_element($xw, 'YEAST'); |
232 xmlwriter_start_element($xw, 'YEAST'); |
453 |
233 field($xw, 'VERSION', '1'); |
454 xmlwriter_start_element($xw, 'VERSION'); |
234 field($xw, 'NAME', $item['y_name']); |
455 xmlwriter_text($xw, '1'); |
235 field($xw, 'TYPE', $yeasttype[$item['y_type']]); |
456 xmlwriter_end_element($xw); |
236 field($xw, 'FORM', $yeastform[$item['y_form']]); |
457 |
237 field($xw, 'AMOUNT', sprintf("%.5f",floatval($item['y_amount']))); |
458 xmlwriter_start_element($xw, 'NAME'); |
238 field($xw, 'AMOUNT_IS_WEIGHT', ($item['y_form'] == 1) ? 'TRUE':'FALSE'); |
459 xmlwriter_text($xw, $item['y_name']); |
239 field($xw, 'LABORATORY', $item['y_laboratory']); |
460 xmlwriter_end_element($xw); |
240 field($xw, 'PRODUCT_ID', $item['y_product_id']); |
461 |
241 field($xw, 'MIN_TEMPERATURE', sprintf("%.1f",floatval($item['y_min_temperature']))); |
462 xmlwriter_start_element($xw, 'TYPE'); |
242 field($xw, 'MAX_TEMPERATURE', sprintf("%.1f",floatval($item['y_max_temperature']))); |
463 xmlwriter_text($xw, $yeasttype[$item['y_type']]); |
243 field($xw, 'ATTENUATION', sprintf("%.1f",floatval($item['y_attenuation']))); |
464 xmlwriter_end_element($xw); |
244 field($xw, 'ADD_TO_SECONDARY', ($item['y_use'] == 0) ? 'FALSE':'TRUE'); |
465 |
|
466 xmlwriter_start_element($xw, 'FORM'); |
|
467 xmlwriter_text($xw, $yeastform[$item['y_form']]); |
|
468 xmlwriter_end_element($xw); |
|
469 |
|
470 xmlwriter_start_element($xw, 'AMOUNT'); |
|
471 xmlwriter_text($xw, sprintf("%.5f",floatval($item['y_amount']))); |
|
472 xmlwriter_end_element($xw); |
|
473 |
|
474 xmlwriter_start_element($xw, 'AMOUNT_IS_WEIGHT'); |
|
475 ($item['y_form'] == 1) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE'); |
|
476 xmlwriter_end_element($xw); |
|
477 |
|
478 xmlwriter_start_element($xw, 'LABORATORY'); |
|
479 xmlwriter_text($xw, $item['y_laboratory']); |
|
480 xmlwriter_end_element($xw); |
|
481 |
|
482 xmlwriter_start_element($xw, 'PRODUCT_ID'); |
|
483 xmlwriter_text($xw, $item['y_product_id']); |
|
484 xmlwriter_end_element($xw); |
|
485 |
|
486 xmlwriter_start_element($xw, 'MIN_TEMPERATURE'); |
|
487 xmlwriter_text($xw, sprintf("%.1f",floatval($item['y_min_temperature']))); |
|
488 xmlwriter_end_element($xw); |
|
489 |
|
490 xmlwriter_start_element($xw, 'MAX_TEMPERATURE'); |
|
491 xmlwriter_text($xw, sprintf("%.1f",floatval($item['y_max_temperature']))); |
|
492 xmlwriter_end_element($xw); |
|
493 |
|
494 xmlwriter_start_element($xw, 'ATTENUATION'); |
|
495 xmlwriter_text($xw, sprintf("%.1f",floatval($item['y_attenuation']))); |
|
496 xmlwriter_end_element($xw); |
|
497 |
|
498 xmlwriter_start_element($xw, 'ADD_TO_SECONDARY'); |
|
499 ($item['y_use'] == 0) ? xmlwriter_text($xw, 'FALSE') : xmlwriter_text($xw, 'TRUE'); |
|
500 xmlwriter_end_element($xw); |
|
501 |
|
502 xmlwriter_end_element($xw); // YEAST |
245 xmlwriter_end_element($xw); // YEAST |
503 } |
246 } |
504 xmlwriter_end_element($xw); // YEASTS |
247 xmlwriter_end_element($xw); // YEASTS |
505 |
248 |
506 xmlwriter_start_element($xw, 'WATERS'); |
249 xmlwriter_start_element($xw, 'WATERS'); |
507 xmlwriter_start_element($xw, 'WATER'); // Source 1 |
250 xmlwriter_start_element($xw, 'WATER'); // Source 1 |
508 |
251 field($xw, 'VERSION', '1'); |
509 xmlwriter_start_element($xw, 'VERSION'); |
252 field($xw, 'NAME', $item['w1_name']); |
510 xmlwriter_text($xw, '1'); |
253 field($xw, 'AMOUNT', sprintf("%.2f",floatval($row['w1_amount']))); |
511 xmlwriter_end_element($xw); |
254 field($xw, 'CALCIUM', sprintf("%.2f",floatval($row['w1_calcium']))); |
512 |
255 field($xw, 'MAGNESIUM', sprintf("%.2f",floatval($row['w1_magnesium']))); |
513 xmlwriter_start_element($xw, 'NAME'); |
256 field($xw, 'BICARBONATE', sprintf("%.2f",floatval($row['w1_total_alkalinity']) * 1.22)); |
514 xmlwriter_text($xw, $row['w1_name']); |
257 field($xw, 'SULFATE', sprintf("%.2f",floatval($row['w1_sulfate']))); |
515 xmlwriter_end_element($xw); |
258 field($xw, 'CHLORIDE', sprintf("%.2f",floatval($row['w1_chloride']))); |
516 |
259 field($xw, 'SODIUM', sprintf("%.2f",floatval($row['w1_sodium']))); |
517 xmlwriter_start_element($xw, 'AMOUNT'); |
260 field($xw, 'PH', sprintf("%.1f",floatval($row['w1_ph']))); |
518 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_amount']))); |
261 field($xw, 'TOTAL_ALKALINITY', sprintf("%.2f",floatval($row['w1_total_alkalinity']))); |
519 xmlwriter_end_element($xw); |
|
520 |
|
521 xmlwriter_start_element($xw, 'CALCIUM'); |
|
522 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_calcium']))); |
|
523 xmlwriter_end_element($xw); |
|
524 |
|
525 xmlwriter_start_element($xw, 'MAGNESIUM'); |
|
526 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_magnesium']))); |
|
527 xmlwriter_end_element($xw); |
|
528 |
|
529 xmlwriter_start_element($xw, 'BICARBONATE'); |
|
530 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_total_alkalinity']) * 1.22)); |
|
531 xmlwriter_end_element($xw); |
|
532 |
|
533 xmlwriter_start_element($xw, 'SULFATE'); |
|
534 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_sulfate']))); |
|
535 xmlwriter_end_element($xw); |
|
536 |
|
537 xmlwriter_start_element($xw, 'CHLORIDE'); |
|
538 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_chloride']))); |
|
539 xmlwriter_end_element($xw); |
|
540 |
|
541 xmlwriter_start_element($xw, 'SODIUM'); |
|
542 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_sodium']))); |
|
543 xmlwriter_end_element($xw); |
|
544 |
|
545 xmlwriter_start_element($xw, 'PH'); |
|
546 xmlwriter_text($xw, sprintf("%.1f",floatval($row['w1_ph']))); |
|
547 xmlwriter_end_element($xw); |
|
548 |
|
549 xmlwriter_start_element($xw, 'TOTAL_ALKALINITY'); |
|
550 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w1_total_alkalinity']))); |
|
551 xmlwriter_end_element($xw); |
|
552 |
|
553 xmlwriter_end_element($xw); // WATER |
262 xmlwriter_end_element($xw); // WATER |
554 |
263 |
555 if (strlen($row['w2_name'])) { |
264 if (strlen($row['w2_name'])) { |
556 xmlwriter_start_element($xw, 'WATER'); // Source 2 |
265 xmlwriter_start_element($xw, 'WATER'); // Source 2 |
557 |
266 field($xw, 'VERSION', '1'); |
558 xmlwriter_start_element($xw, 'VERSION'); |
267 field($xw, 'NAME', $item['w2_name']); |
559 xmlwriter_text($xw, '1'); |
268 field($xw, 'AMOUNT', sprintf("%.2f",floatval($row['w2_amount']))); |
560 xmlwriter_end_element($xw); |
269 field($xw, 'CALCIUM', sprintf("%.2f",floatval($row['w2_calcium']))); |
561 |
270 field($xw, 'MAGNESIUM', sprintf("%.2f",floatval($row['w2_magnesium']))); |
562 xmlwriter_start_element($xw, 'NAME'); |
271 field($xw, 'BICARBONATE', sprintf("%.2f",floatval($row['w2_total_alkalinity']) * 1.22)); |
563 xmlwriter_text($xw, $row['w2_name']); |
272 field($xw, 'SULFATE', sprintf("%.2f",floatval($row['w2_sulfate']))); |
564 xmlwriter_end_element($xw); |
273 field($xw, 'CHLORIDE', sprintf("%.2f",floatval($row['w2_chloride']))); |
565 |
274 field($xw, 'SODIUM', sprintf("%.2f",floatval($row['w2_sodium']))); |
566 xmlwriter_start_element($xw, 'AMOUNT'); |
275 field($xw, 'PH', sprintf("%.1f",floatval($row['w2_ph']))); |
567 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_amount']))); |
276 field($xw, 'TOTAL_ALKALINITY', sprintf("%.2f",floatval($row['w2_total_alkalinity']))); |
568 xmlwriter_end_element($xw); |
|
569 |
|
570 xmlwriter_start_element($xw, 'CALCIUM'); |
|
571 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_calcium']))); |
|
572 xmlwriter_end_element($xw); |
|
573 |
|
574 xmlwriter_start_element($xw, 'MAGNESIUM'); |
|
575 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_magnesium']))); |
|
576 xmlwriter_end_element($xw); |
|
577 |
|
578 xmlwriter_start_element($xw, 'BICARBONATE'); |
|
579 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_total_alkalinity']) * 1.22)); |
|
580 xmlwriter_end_element($xw); |
|
581 |
|
582 xmlwriter_start_element($xw, 'SULFATE'); |
|
583 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_sulfate']))); |
|
584 xmlwriter_end_element($xw); |
|
585 |
|
586 xmlwriter_start_element($xw, 'CHLORIDE'); |
|
587 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_chloride']))); |
|
588 xmlwriter_end_element($xw); |
|
589 |
|
590 xmlwriter_start_element($xw, 'SODIUM'); |
|
591 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_sodium']))); |
|
592 xmlwriter_end_element($xw); |
|
593 |
|
594 xmlwriter_start_element($xw, 'PH'); |
|
595 xmlwriter_text($xw, sprintf("%.1f",floatval($row['w2_ph']))); |
|
596 xmlwriter_end_element($xw); |
|
597 |
|
598 xmlwriter_start_element($xw, 'TOTAL_ALKALINITY'); |
|
599 xmlwriter_text($xw, sprintf("%.2f",floatval($row['w2_total_alkalinity']))); |
|
600 xmlwriter_end_element($xw); |
|
601 |
|
602 xmlwriter_end_element($xw); // WATER |
277 xmlwriter_end_element($xw); // WATER |
603 } |
278 } |
604 xmlwriter_end_element($xw); // WATERS |
279 xmlwriter_end_element($xw); // WATERS |
605 |
280 |
606 xmlwriter_start_element($xw, 'MASH'); |
281 xmlwriter_start_element($xw, 'MASH'); |
607 |
282 field($xw, 'VERSION', '1'); |
608 xmlwriter_start_element($xw, 'VERSION'); |
283 field($xw, 'NAME', $item['mash_name']); |
609 xmlwriter_text($xw, '1'); |
284 field($xw, 'GRAIN_TEMP', '10.0'); |
610 xmlwriter_end_element($xw); |
285 field($xw, 'PH', sprintf("%.1f",floatval($row['sparge_ph']))); |
611 |
286 field($xw, 'SPARGE_TEMP', sprintf("%.1f",floatval($row['sparge_temp']))); |
612 xmlwriter_start_element($xw, 'NAME'); |
|
613 xmlwriter_text($xw, $row['mash_name']); |
|
614 xmlwriter_end_element($xw); |
|
615 |
|
616 xmlwriter_start_element($xw, 'GRAIN_TEMP'); |
|
617 xmlwriter_text($xw, '10.0'); |
|
618 xmlwriter_end_element($xw); |
|
619 |
|
620 xmlwriter_start_element($xw, 'PH'); |
|
621 xmlwriter_text($xw, sprintf("%.1f",floatval($row['sparge_ph']))); |
|
622 xmlwriter_end_element($xw); |
|
623 |
|
624 xmlwriter_start_element($xw, 'SPARGE_TEMP'); |
|
625 xmlwriter_text($xw, sprintf("%.1f",floatval($row['sparge_temp']))); |
|
626 xmlwriter_end_element($xw); |
|
627 |
|
628 xmlwriter_start_element($xw, 'MASH_STEPS'); |
287 xmlwriter_start_element($xw, 'MASH_STEPS'); |
629 $arr = json_decode($row['json_mashs'], true); |
288 $arr = json_decode($row['json_mashs'], true); |
630 foreach($arr as $item) { //foreach element in $arr |
289 foreach($arr as $item) { //foreach element in $arr |
631 xmlwriter_start_element($xw, 'MASH_STEP'); |
290 xmlwriter_start_element($xw, 'MASH_STEP'); |
632 |
291 field($xw, 'VERSION', '1'); |
633 xmlwriter_start_element($xw, 'VERSION'); |
292 field($xw, 'NAME', $item['step_name']); |
634 xmlwriter_text($xw, '1'); |
293 field($xw, 'TYPE', $mashsteptype[$item['step_type']]); |
635 xmlwriter_end_element($xw); |
294 if ($item['step_type'] == 0) |
636 |
295 field($xw, 'INFUSE_AMOUNT', sprintf("%.1f",floatval($item['step_infuse_amount']))); |
637 xmlwriter_start_element($xw, 'NAME'); |
296 field($xw, 'STEP_TEMP', sprintf("%.1f",floatval($item['step_temp']))); |
638 xmlwriter_text($xw, $item['step_name']); |
297 field($xw, 'STEP_TIME', sprintf("%.1f",floatval($item['step_time']))); |
639 xmlwriter_end_element($xw); |
298 field($xw, 'RAMP_TIME', sprintf("%.1f",floatval($item['ramp_time']))); |
640 |
299 field($xw, 'END_TEMP', sprintf("%.1f",floatval($item['end_temp']))); |
641 xmlwriter_start_element($xw, 'TYPE'); |
300 field($xw, 'PH', sprintf("%.1f",floatval($row['mash_ph']))); |
642 xmlwriter_text($xw, $mashsteptype[$item['step_type']]); |
|
643 xmlwriter_end_element($xw); |
|
644 |
|
645 if ($item['step_type'] == 0) { |
|
646 xmlwriter_start_element($xw, 'INFUSE_AMOUNT'); |
|
647 xmlwriter_text($xw, sprintf("%.1f",floatval($item['step_infuse_amount']))); |
|
648 xmlwriter_end_element($xw); |
|
649 } |
|
650 |
|
651 xmlwriter_start_element($xw, 'STEP_TEMP'); |
|
652 xmlwriter_text($xw, sprintf("%.1f",floatval($item['step_temp']))); |
|
653 xmlwriter_end_element($xw); |
|
654 |
|
655 xmlwriter_start_element($xw, 'STEP_TIME'); |
|
656 xmlwriter_text($xw, sprintf("%.1f",floatval($item['step_time']))); |
|
657 xmlwriter_end_element($xw); |
|
658 |
|
659 xmlwriter_start_element($xw, 'RAMP_TIME'); |
|
660 xmlwriter_text($xw, sprintf("%.1f",floatval($item['ramp_time']))); |
|
661 xmlwriter_end_element($xw); |
|
662 |
|
663 xmlwriter_start_element($xw, 'END_TEMP'); |
|
664 xmlwriter_text($xw, sprintf("%.1f",floatval($item['end_temp']))); |
|
665 xmlwriter_end_element($xw); |
|
666 |
|
667 xmlwriter_start_element($xw, 'PH'); |
|
668 xmlwriter_text($xw, sprintf("%.1f",floatval($row['mash_ph']))); |
|
669 xmlwriter_end_element($xw); |
|
670 |
|
671 xmlwriter_end_element($xw); // MASH_STEP |
301 xmlwriter_end_element($xw); // MASH_STEP |
672 } |
302 } |
673 xmlwriter_end_element($xw); // MASH_STEPS |
303 xmlwriter_end_element($xw); // MASH_STEPS |
674 xmlwriter_end_element($xw); // MASH |
304 xmlwriter_end_element($xw); // MASH |
675 xmlwriter_end_element($xw); // RECIPE |
305 xmlwriter_end_element($xw); // RECIPE |