www/includes/db_divides.php

branch
divide
changeset 533
be8691b7d634
parent 500
8d53ad389204
child 602
10b61aacb1c1
equal deleted inserted replaced
532:d8f4ca915468 533:be8691b7d634
2 2
3 require($_SERVER['DOCUMENT_ROOT']."/config.php"); 3 require($_SERVER['DOCUMENT_ROOT']."/config.php");
4 require($_SERVER['DOCUMENT_ROOT']."/version.php"); 4 require($_SERVER['DOCUMENT_ROOT']."/version.php");
5 5
6 #Connect to the database 6 #Connect to the database
7 $connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME); 7 $link = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME);
8 if (! $connect) { 8 if (! $link) {
9 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); 9 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
10 } 10 }
11 mysqli_set_charset($connect, "utf8" ); 11 mysqli_set_charset($link, "utf8" );
12 12
13 13 $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c");
14 if (isset($_POST['insert']) || isset($_POST['update'])) { 14 $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b");
15 if (isset($_POST['insert'])) { 15 $rescapers = array("'");
16 $sql = "INSERT INTO `divides` SET "; 16 $rreplacements = array("\\'");
17 } 17 $disallowed = array('visibleindex','uniqueid','boundindex','uid','h_weight','m_weight');
18 if (isset($_POST['update'])) { 18
19 $sql = "UPDATE `divides` SET "; 19 /*
20 } 20 * Server side split batch. Parameters:
21 21 * record = original record.
22 $sql .= "divide_from='" . mysqli_real_escape_string($connect, $_POST['divide_from']); 22 * divide_type = divide moment.
23 $sql .= "', divide_type='" . $_POST['divide_type']; 23 * divide parts = number of divisions
24 $sql .= "', divide_size='" . $_POST['divide_size']; 24 * divide_data = array with { size, factor, part, name, code } where index 0 is original
25 $sql .= "', divide_part='" . $_POST['divide_part']; 25 *
26 $sql .= "', name='" . mysqli_real_escape_string($connect, $_POST['name']); 26 * generate the new records and modify the original record.
27 $sql .= "', code='" . mysqli_real_escape_string($connect, $_POST['code']); 27 * rollback if something goes wrong.
28 if (isset($_POST['insert'])) { 28 * return ok or error
29 $sql .= "';"; 29 */
30 } 30
31 if (isset($_POST['update'])) { 31 if (isset($_POST['record']) && isset($_POST['divide_type']) && isset($_POST['divide_parts']) && isset($_POST['divide_data'])) {
32 $sql .= "' WHERE record='" . $_POST['record'] . "';"; 32
33 } 33 $rc = 0;
34 syslog(LOG_NOTICE, $sql); 34 $record = $_POST['record'];
35 35 $divide_parts = $_POST['divide_parts'];
36 $result = mysqli_query($connect, $sql); 36 $divide_type = $_POST['divide_type'];
37 $divide_data = array_reverse($_POST['divide_data'], true); // reverse the array so the master record is last.
38
39 syslog(LOG_NOTICE, "db_divide: record " . $record . " divide_type " . $divide_type . " parts " . $divide_parts);
40
41 foreach ($divide_data as $index => &$split) {
42 syslog(LOG_NOTICE, "db_divide: index " . $index);
43
44 foreach ($split as $key => &$value) {
45 syslog(LOG_NOTICE, "db_divide: index " . $index . " key " . $key . " value " . $value);
46 }
47
48 $result = mysqli_query($link, "SELECT * FROM products WHERE record='" . $record . "'");
37 if (! $result) { 49 if (! $result) {
38 syslog(LOG_NOTICE, "db_divides: ".$sql." result: ".mysqli_error($connect)); 50 syslog(LOG_NOTICE, "db_divide: result: ".mysqli_error($link));
51 }
52 $row = mysqli_fetch_array($result);
53 $factor = floatval($split['factor']);
54
55 if ($index == 0) {
56 /*
57 * Update the main record
58 */
59 $sql = "UPDATE `products` SET ";
60 $sql .= "brew_sparge_volume='" . sprintf("%.1f", $row['brew_sparge_volume'] * $factor);
61 $sql .= "', brew_sparge_est='" . sprintf("%.1f", $row['brew_sparge_est'] * $factor);
62 $sql .= "', brew_preboil_volume='" . sprintf("%.1f", $row['brew_preboil_volume'] * $factor);
63 $sql .= "', brew_aboil_volume='" . sprintf("%.1f", $row['brew_aboil_volume'] * $factor);
64 $sql .= "', brew_fermenter_volume='" . sprintf("%.1f", $row['brew_fermenter_volume'] * $factor);
65 $sql .= "', brew_fermenter_extrawater='" . sprintf("%.1f", $row['brew_fermenter_extrawater'] * $factor);
66 $sql .= "', brew_fermenter_tcloss='" . sprintf("%.1f", $row['brew_fermenter_tcloss'] * $factor);
67 $sql .= "', package_volume='" . sprintf("%.1f", $row['package_volume'] * $factor);
68 $sql .= "', package_infuse_amount='" . sprintf("%.1f", $row['package_infuse_amount'] * $factor);
69 $sql .= "', bottle_amount='" . sprintf("%.1f", $row['bottle_amount'] * $factor);
70 $sql .= "', bottle_priming_water='" . sprintf("%.3f", $row['bottle_priming_water'] * $factor);
71 $sql .= "', keg_amount='" . sprintf("%.1f", $row['keg_amount'] * $factor);
72 $sql .= "', keg_priming_water='" . sprintf("%.3f", $row['keg_priming_water'] * $factor);
73 $sql .= "', batch_size='" . sprintf("%.2f", $row['batch_size'] * $factor);
74 $sql .= "', boil_size='" . sprintf("%.2f", $row['boil_size'] * $factor);
75 $sql .= "', sparge_volume='" . sprintf("%.1f", $row['sparge_volume'] * $factor);
76 $sql .= "', sparge_acid_amount='" . sprintf("%.5f", $row['sparge_acid_amount'] * $factor);
77 $sql .= "', w1_amount='" . sprintf("%.2f", $row['w1_amount'] * $factor);
78 $sql .= "', w2_amount='" . sprintf("%.2f", $row['w2_amount'] * $factor);
79 $sql .= "', wg_amount='" . sprintf("%.2f", $row['wg_amount'] * $factor);
80 $sql .= "', prop1_volume='" . sprintf("%.3f", $row['prop1_volume'] * $factor);
81 $sql .= "', prop2_volume='" . sprintf("%.3f", $row['prop2_volume'] * $factor);
82 $sql .= "', prop3_volume='" . sprintf("%.3f", $row['prop3_volume'] * $factor);
83 $sql .= "', prop4_volume='" . sprintf("%.3f", $row['prop4_volume'] * $factor);
84 $sql .= "', divide_type='" . $divide_type;
85 $sql .= "', divide_parts='" . $divide_parts;
86 $sql .= "', divide_part='" . $index;
87 $sql .= "', divide_size='" . floatval($split['size']);
88 $sql .= "', divide_factor='". $factor;
89 syslog(LOG_NOTICE, "db_divide: index " . $index . " " . $sql);
90
39 } else { 91 } else {
40 if (isset($_POST['update'])) { 92 /*
41 syslog(LOG_NOTICE, "db_divides: updated record ".$_POST['record']); 93 * Insert splitted batches
42 } else { 94 */
43 $lastid = mysqli_insert_id($connect); 95 $sql = "INSERT INTO `products` SET ";
44 syslog(LOG_NOTICE, "db_divides: inserted record ".$lastid); 96 $sql .= "name='" . mysqli_real_escape_string($link, $split['name']);
45 } 97 $sql .= "', uuid='" . str_replace("\n", "", file_get_contents('/proc/sys/kernel/random/uuid'));
46 } 98 $sql .= "', code='" . mysqli_real_escape_string($link, $split['code']);
47 echo $result; 99 $sql .= "', birth='" . $row['birth'];
48 100 $sql .= "', stage='" . $row['stage'];
49 } else if (isset($_POST['delete'])) { 101 $sql .= "', notes='" . mysqli_real_escape_string($link, $row['notes']);
50 // DELETE COMMAND 102 $sql .= "', log_brew='" . $row['log_brew'];
51 $sql = "DELETE FROM `divides` WHERE record='".$_POST['record']."';"; 103 $sql .= "', log_fermentation='" . $row['log_fermentation'];
52 $result = mysqli_query($connect, $sql); 104 $sql .= "', inventory_reduced='" . $row['inventory_reduced'];;
53 if (! $result) { 105 $sql .= "', locked='" . $row['locked'];;
54 syslog(LOG_NOTICE, "db_divides: ".$sql." result: ".mysqli_error($connect)); 106 // Equipment
107 $sql .= "', eq_name='" . mysqli_real_escape_string($link, $row['eq_name']);
108 $sql .= "', eq_boil_size='" . $row['eq_boil_size'];
109 $sql .= "', eq_batch_size='" . $row['eq_batch_size'];
110 $sql .= "', eq_tun_volume='" . $row['eq_tun_volume'];
111 $sql .= "', eq_tun_weight='" . $row['eq_tun_weight'];
112 $sql .= "', eq_tun_specific_heat='" . $row['eq_tun_specific_heat'];
113 $sql .= "', eq_tun_material='" . $row['eq_tun_material'];
114 $sql .= "', eq_tun_height='" . $row['eq_tun_height'];
115 $sql .= "', eq_top_up_water='" . $row['eq_top_up_water'];
116 $sql .= "', eq_trub_chiller_loss='" . $row['eq_trub_chiller_loss'];
117 $sql .= "', eq_evap_rate='" . $row['eq_evap_rate'];
118 $sql .= "', eq_boil_time='" . $row['eq_boil_time'];
119 $sql .= "', eq_calc_boil_volume='" . $row['eq_calc_boil_volume'];
120 $sql .= "', eq_top_up_kettle='" . $row['eq_top_up_kettle'];
121 $sql .= "', eq_hop_utilization='" . $row['eq_hop_utilization'];
122 $sql .= "', eq_notes='" . mysqli_real_escape_string($link, $row['eq_notes']);
123 $sql .= "', eq_lauter_volume='" . $row['eq_lauter_volume'];
124 $sql .= "', eq_lauter_height='" . $row['eq_lauter_height'];
125 $sql .= "', eq_lauter_deadspace='" . $row['eq_lauter_deadspace'];
126 $sql .= "', eq_kettle_volume='" . $row['eq_kettle_volume'];
127 $sql .= "', eq_kettle_height='" . $row['eq_kettle_height'];
128 $sql .= "', eq_mash_volume='" . $row['eq_mash_volume'];
129 $sql .= "', eq_mash_max='" . $row['eq_mash_max'];
130 $sql .= "', eq_efficiency='" . $row['eq_efficiency'];
131 // brewdate
132 if (strlen($row['brew_date_start']))
133 $sql .= "', brew_date_start='" . $row['brew_date_start'] . "'";
134 else
135 $sql .= "', brew_date_start=NULL";
136 $sql .= ", brew_mash_ph='" . $row['brew_mash_ph'];
137 $sql .= "', brew_mash_sg='" . $row['brew_mash_sg'];
138 $sql .= "', brew_mash_efficiency='" . $row['brew_mash_efficiency'];
139 $sql .= "', brew_sparge_temperature='" . $row['brew_sparge_temperature'];
140 $sql .= "', brew_sparge_volume='" . sprintf("%.1f", $row['brew_sparge_volume'] * $factor);
141 $sql .= "', brew_sparge_est='" . sprintf("%.1f", $row['brew_sparge_est'] * $factor);
142 $sql .= "', brew_sparge_ph='" . $row['brew_sparge_ph'];
143 $sql .= "', brew_preboil_volume='" . sprintf("%.1f", $row['brew_preboil_volume'] * $factor);
144 $sql .= "', brew_preboil_sg='" . $row['brew_preboil_sg'];
145 $sql .= "', brew_preboil_ph='" . $row['brew_preboil_ph'];
146 $sql .= "', brew_preboil_efficiency='" . $row['brew_preboil_efficiency'];
147 $sql .= "', brew_aboil_volume='" . sprintf("%.1f", $row['brew_aboil_volume'] * $factor);
148 $sql .= "', brew_aboil_sg='" . $row['brew_aboil_sg'];
149 $sql .= "', brew_aboil_ph='" . $row['brew_aboil_ph'];
150 $sql .= "', brew_aboil_efficiency='" . $row['brew_aboil_efficiency'];
151 $sql .= "', brew_cooling_method='" . $row['brew_cooling_method'];
152 $sql .= "', brew_cooling_time='" . $row['brew_cooling_time'];
153 $sql .= "', brew_cooling_to='" . $row['brew_cooling_to'];
154 $sql .= "', brew_whirlpool9='" . $row['brew_whirlpool9'];
155 $sql .= "', brew_whirlpool7='" . $row['brew_whirlpool7'];
156 $sql .= "', brew_whirlpool6='" . $row['brew_whirlpool6'];
157 $sql .= "', brew_whirlpool2='" . $row['brew_whirlpool2'];
158 $sql .= "', brew_aeration_time='" . $row['brew_aeration_time'];
159 $sql .= "', brew_aeration_speed='" . $row['brew_aeration_speed'];
160 $sql .= "', brew_aeration_type='" . $row['brew_aeration_type'];
161 $sql .= "', brew_fermenter_volume='" . sprintf("%.1f", $row['brew_fermenter_volume'] * $factor);
162 $sql .= "', brew_fermenter_extrawater='" . sprintf("%.1f", $row['brew_fermenter_extrawater'] * $factor);
163 $sql .= "', brew_fermenter_tcloss='" . sprintf("%.1f", $row['brew_fermenter_tcloss'] * $factor);
164 $sql .= "', brew_fermenter_sg='" . $row['brew_fermenter_sg'];
165 $sql .= "', brew_fermenter_ibu='" . $row['brew_fermenter_ibu'];
166 $sql .= "', brew_fermenter_color='" . $row['brew_fermenter_color'];
167 if (strlen($row['brew_date_end']))
168 $sql .= "', brew_date_end='" . $row['brew_date_end'] . "'";
169 else
170 $sql .= "', brew_date_end=NULL";
171 $sql .= ", og='" . $row['og'];
172 $sql .= "', fg='" . $row['fg'];
173 $sql .= "', primary_start_temp='" . $row['primary_start_temp'];
174 $sql .= "', primary_max_temp='" . $row['primary_max_temp'];
175 $sql .= "', primary_end_temp='" . $row['primary_end_temp'];
176 if (strlen($row['primary_end_date']))
177 $sql .= "', primary_end_date='" . $row['primary_end_date'] . "'";
178 else
179 $sql .= "', primary_end_date=NULL";
180 $sql .= ", primary_end_sg='" . $row['primary_end_sg'];
181 $sql .= "', secondary_temp='" . $row['secondary_temp'];
182 $sql .= "', secondary_end_sg='" . $row['secondary_end_sg'];
183 if (strlen($row['secondary_end_date']))
184 $sql .= "', secondary_end_date='" . $row['secondary_end_date'] . "'";
185 else
186 $sql .= "', secondary_end_date=NULL";
187 $sql .= ", tertiary_temp='" . $row['tertiary_temp'];
188 if (strlen($row['package_date']))
189 $sql .= "', package_date='" . $row['package_date'] . "'";
190 else
191 $sql .= "', package_date=NULL";
192 $sql .= ", package_volume='" . sprintf("%.1f", $row['package_volume'] * $factor);
193 $sql .= "', package_infuse_amount='" . sprintf("%.1f", $row['package_infuse_amount'] * $factor);
194 $sql .= "', package_infuse_abv='" . $row['package_infuse_abv'];
195 $sql .= "', package_infuse_notes='" . mysqli_real_escape_string($link, $row['package_infuse_notes']);
196 $sql .= "', package_abv='" . $row['package_abv'];
197 $sql .= "', package_ph='" . $row['package_ph'];
198 $sql .= "', bottle_amount='" . sprintf("%.1f", $row['bottle_amount'] * $factor);
199 $sql .= "', bottle_carbonation='" . $row['bottle_carbonation'];
200 $sql .= "', bottle_priming_sugar='" . $row['bottle_priming_sugar'];
201 $sql .= "', bottle_priming_water='" . sprintf("%.3f", $row['bottle_priming_water'] * $factor);
202 $sql .= "', bottle_priming_amount='" . $row['bottle_priming_amount'];
203 $sql .= "', bottle_carbonation_temp='" . $row['bottle_carbonation_temp'];
204 $sql .= "', keg_amount='" . sprintf("%.1f", $row['keg_amount'] * $factor);
205 $sql .= "', keg_carbonation='" . $row['keg_carbonation'];
206 $sql .= "', keg_priming_sugar='" . $row['keg_priming_sugar'];
207 $sql .= "', keg_priming_water='" . sprintf("%.3f", $row['keg_priming_water'] * $factor);
208 $sql .= "', keg_priming_amount='" . $row['keg_priming_amount'];
209 $sql .= "', keg_carbonation_temp='" . $row['keg_carbonation_temp'];
210 $sql .= "', keg_forced_carb='" . $row['keg_forced_carb'];
211 $sql .= "', keg_pressure='" . $row['keg_pressure'];
212 $sql .= "', taste_notes='";
213 $sql .= "', taste_rate='0";
214 $sql .= "', taste_date=NULL";
215 $sql .= ", taste_color='";
216 $sql .= "', taste_transparency='";
217 $sql .= "', taste_head='";
218 $sql .= "', taste_aroma='";
219 $sql .= "', taste_taste='";
220 $sql .= "', taste_mouthfeel='";
221 $sql .= "', taste_aftertaste='";
222 // Style
223 $sql .= "', st_name='" . mysqli_real_escape_string($link, $row['st_name']);
224 $sql .= "', st_letter='" . mysqli_real_escape_string($link, $row['st_letter']);
225 $sql .= "', st_guide='" . mysqli_real_escape_string($link, $row['st_guide']);
226 $sql .= "', st_type='" . $row['st_type'];
227 $sql .= "', st_category='" . mysqli_real_escape_string($link, $row['st_category']);
228 $sql .= "', st_category_number='" . $row['st_category_number'];
229 $sql .= "', st_og_min='" . $row['st_og_min'];
230 $sql .= "', st_og_max='" . $row['st_og_max'];
231 $sql .= "', st_fg_min='" . $row['st_fg_min'];
232 $sql .= "', st_fg_max='" . $row['st_fg_max'];
233 $sql .= "', st_ibu_min='" . $row['st_ibu_min'];
234 $sql .= "', st_ibu_max='" . $row['st_ibu_max'];
235 $sql .= "', st_color_min='" . $row['st_color_min'];
236 $sql .= "', st_color_max='" . $row['st_color_max'];
237 $sql .= "', st_carb_min='" . $row['st_carb_min'];
238 $sql .= "', st_carb_max='" . $row['st_carb_max'];
239 $sql .= "', st_abv_min='" . $row['st_abv_min'];
240 $sql .= "', st_abv_max='" . $row['st_abv_max'];
241 $sql .= "', type='" . $row['type'];
242 $sql .= "', batch_size='" . sprintf("%.2f", $row['batch_size'] * $factor);
243 $sql .= "', boil_size='" . sprintf("%.2f", $row['boil_size'] * $factor);
244 $sql .= "', boil_time='" . $row['boil_time'];
245 $sql .= "', efficiency='" . $row['efficiency'];
246 $sql .= "', est_og='" . $row['est_og'];
247 $sql .= "', est_fg='" . $row['est_fg'];
248 $sql .= "', est_abv='" . $row['est_abv'];
249 $sql .= "', est_carb='" . $row['est_carb'];
250 $sql .= "', est_color='" . $row['est_color'];
251 $sql .= "', color_method='" . $row['color_method'];
252 $sql .= "', est_ibu='" . $row['est_ibu'];
253 $sql .= "', ibu_method='" . $row['ibu_method'];
254 $sql .= "', sparge_volume='" . sprintf("%.1f", $row['sparge_volume'] * $factor);
255 $sql .= "', sparge_acid_amount='" . sprintf("%.5f", $row['sparge_acid_amount'] * $factor);
256 $sql .= "', sparge_temp='" . $row['sparge_temp'];
257 $sql .= "', sparge_ph='" . $row['sparge_ph'];
258 $sql .= "', sparge_source='" . $row['sparge_source'];
259 $sql .= "', sparge_acid_type='" . $row['sparge_acid_type'];
260 $sql .= "', sparge_acid_perc='" . $row['sparge_acid_perc'];
261 $sql .= "', mash_ph='" . $row['mash_ph'];
262 $sql .= "', mash_name='" . $row['mash_name'];
263 $sql .= "', calc_acid='" . $row['calc_acid'];
264 $sql .= "', w1_name='" . mysqli_real_escape_string($link, $row['w1_name']);
265 $sql .= "', w1_amount='" . sprintf("%.2f", $row['w1_amount'] * $factor);
266 $sql .= "', w1_calcium='" . $row['w1_calcium'];
267 $sql .= "', w1_sulfate='" . $row['w1_sulfate'];
268 $sql .= "', w1_chloride='" . $row['w1_chloride'];
269 $sql .= "', w1_sodium='" . $row['w1_sodium'];
270 $sql .= "', w1_magnesium='" . $row['w1_magnesium'];
271 $sql .= "', w1_total_alkalinity='" . $row['w1_total_alkalinity'];
272 $sql .= "', w1_ph='" . $row['w1_ph'];
273 $sql .= "', w1_cost='" . $row['w1_cost'];
274 $sql .= "', w2_name='" . mysqli_real_escape_string($link, $row['w2_name']);
275 $sql .= "', w2_amount='" . sprintf("%.2f", $row['w2_amount'] * $factor);
276 $sql .= "', w2_calcium='" . $row['w2_calcium'];
277 $sql .= "', w2_sulfate='" . $row['w2_sulfate'];
278 $sql .= "', w2_chloride='" . $row['w2_chloride'];
279 $sql .= "', w2_sodium='" . $row['w2_sodium'];
280 $sql .= "', w2_magnesium='" . $row['w2_magnesium'];
281 $sql .= "', w2_total_alkalinity='" . $row['w2_total_alkalinity'];
282 $sql .= "', w2_ph='" . $row['w2_ph'];
283 $sql .= "', w2_cost='" . $row['w2_cost'];
284 $sql .= "', wg_amount='" . sprintf("%.2f", $row['wg_amount'] * $factor);
285 $sql .= "', wg_calcium='" . $row['wg_calcium'];
286 $sql .= "', wg_sulfate='" . $row['wg_sulfate'];
287 $sql .= "', wg_chloride='" . $row['wg_chloride'];
288 $sql .= "', wg_sodium='" . $row['wg_sodium'];
289 $sql .= "', wg_magnesium='" . $row['wg_magnesium'];
290 $sql .= "', wg_total_alkalinity='" . $row['wg_total_alkalinity'];
291 $sql .= "', wg_ph='" . $row['wg_ph'];
292 $sql .= "', wb_calcium='" . $row['wb_calcium'];
293 $sql .= "', wb_sulfate='" . $row['wb_sulfate'];
294 $sql .= "', wb_chloride='" . $row['wb_chloride'];
295 $sql .= "', wb_sodium='" . $row['wb_sodium'];
296 $sql .= "', wb_magnesium='" . $row['wb_magnesium'];
297 $sql .= "', wb_total_alkalinity='" . $row['wb_total_alkalinity'];
298 $sql .= "', wb_ph='" . $row['wb_ph'];
299 $sql .= "', wa_acid_name='" . $row['wa_acid_name'];
300 $sql .= "', wa_acid_perc='" . $row['wa_acid_perc'];
301 $sql .= "', wa_base_name='" . $row['wa_base_name'];
302 $sql .= "', starter_enable='" . $row['starter_enable'];
303 $sql .= "', starter_type='" . $row['starter_type'];
304 $sql .= "', starter_sg='" . $row['starter_sg'];
305 $sql .= "', starter_viability='" . $row['starter_viability'];
306 $sql .= "', prop1_type='" . $row['prop1_type'];
307 $sql .= "', prop2_type='" . $row['prop2_type'];
308 $sql .= "', prop3_type='" . $row['prop3_type'];
309 $sql .= "', prop4_type='" . $row['prop4_type'];
310 $sql .= "', prop1_volume='" . sprintf("%.3f", $row['prop1_volume'] * $factor);
311 $sql .= "', prop2_volume='" . sprintf("%.3f", $row['prop2_volume'] * $factor);
312 $sql .= "', prop3_volume='" . sprintf("%.3f", $row['prop3_volume'] * $factor);
313 $sql .= "', prop4_volume='" . sprintf("%.3f", $row['prop4_volume'] * $factor);
314 $sql .= "', divide_type='" . $divide_type;
315 $sql .= "', divide_parts='" . $divide_parts;
316 $sql .= "', divide_part='" . $index;
317 $sql .= "', divide_size='" . floatval($split['size']);
318 $sql .= "', divide_factor='". $factor;
319 syslog(LOG_NOTICE, "db_divide: index " . $index . " " . $sql);
320 }
321
322 $fermentables = json_decode($row['json_fermentables'], true);
323 for ($i = 0; $i < count($fermentables); $i++) {
324 $fermentables[$i]['f_amount'] = sprintf("%.5f", $fermentables[$i]['f_amount'] * $factor);
325 }
326 // syslog(LOG_NOTICE, "db_divide: " . str_replace($rescapers,$rreplacements,json_encode($fermentables, JSON_UNESCAPED_UNICODE)));
327 $sql .= "', json_fermentables='" . str_replace($rescapers,$rreplacements,json_encode($fermentables, JSON_UNESCAPED_UNICODE));
328
329 $hops = json_decode($row['json_hops'], true);
330 for ($i = 0; $i < count($hops); $i++) {
331 $hops[$i]['h_amount'] = sprintf("%.5f", $hops[$i]['h_amount'] * $factor);
332 }
333 // syslog(LOG_NOTICE, "db_divide: " . str_replace($rescapers,$rreplacements,json_encode($hops, JSON_UNESCAPED_UNICODE)));
334 $sql .= "', json_hops='" . str_replace($rescapers,$rreplacements,json_encode($hops, JSON_UNESCAPED_UNICODE));
335
336 $miscs = json_decode($row['json_miscs'], true);
337 for ($i = 0; $i < count($miscs); $i++) {
338 $miscs[$i]['m_amount'] = sprintf("%.5f", $miscs[$i]['m_amount'] * $factor);
339 }
340 // syslog(LOG_NOTICE, "db_divide: " . str_replace($rescapers,$rreplacements,json_encode($miscs, JSON_UNESCAPED_UNICODE)));
341 $sql .= "', json_miscs='" . str_replace($rescapers,$rreplacements,json_encode($miscs, JSON_UNESCAPED_UNICODE));
342
343 $yeasts = json_decode($row['json_yeasts'], true);
344 for ($i = 0; $i < count($yeasts); $i++) {
345 $yeasts[$i]['y_amount'] = sprintf("%.5f", $yeasts[$i]['y_amount'] * $factor);
346 }
347 // syslog(LOG_NOTICE, "db_divide: " . str_replace($rescapers,$rreplacements,json_encode($yeasts, JSON_UNESCAPED_UNICODE)));
348 $sql .= "', json_yeasts='" . str_replace($rescapers,$rreplacements,json_encode($yeasts, JSON_UNESCAPED_UNICODE));
349
350 $mashs = json_decode($row['json_mashs'], true);
351 for ($i = 0; $i < count($mashs); $i++) {
352 $mashs[$i]['step_infuse_amount'] = sprintf("%.5f", $mashs[$i]['step_infuse_amount'] * $factor);
353 }
354 syslog(LOG_NOTICE, "db_divide: " . str_replace($rescapers,$rreplacements,json_encode($mashs, JSON_UNESCAPED_UNICODE)));
355 $sql .= "', json_mashs='" . str_replace($rescapers,$rreplacements,json_encode($mashs, JSON_UNESCAPED_UNICODE));
356
357 if ($index == 0) {
358 $sql .= "' WHERE record='" . $record . "';";
359 $result2 = mysqli_query($link, $sql);
360 if (! $result2) {
361 syslog(LOG_NOTICE, "db_divide: result: ".mysqli_error($link));
362 $rc = 1;
363 break;
364 } else {
365 syslog(LOG_NOTICE, "db_divide: updated record ".$record." code ".$split['code']);
366 }
55 } else { 367 } else {
56 syslog(LOG_NOTICE, "db_divides: deleted record ".$_POST['record']); 368 $sql .= "';";
57 } 369 $result2 = mysqli_query($link, $sql);
58 echo $result; 370 if (! $result2) {
59 371 syslog(LOG_NOTICE, "db_divide: result: ".mysqli_error($link));
372 $rc = 1;
373 break;
374 } else {
375 $lastid = mysqli_insert_id($link);
376 syslog(LOG_NOTICE, "db_divide: inserted record ".$lastid." code ".$split['code']);
377 }
378 }
379
380 }
381 syslog(LOG_NOTICE, "db_divide: rc=".$rc);
382 echo $rc;
60 } else { 383 } else {
61 // SELECT COMMAND 384 syslog(LOG_NOTICE, "db_divide: missing arguments");
62 $query = "SELECT * FROM divides ORDER BY divide_from,divide_part"; 385 echo 1;
63 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect));
64 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
65 $divides[] = array(
66 'record' => $row['record'],
67 'divide_from' => $row['divide_from'],
68 'divide_type' => $row['divide_type'],
69 'divide_size' => $row['divide_size'],
70 'divide_part' => $row['divide_part'],
71 'name' => $row['name'],
72 'code' => $row['code']
73 );
74 }
75 header("Content-type: application/json");
76 echo json_encode($divides);
77 } 386 }
387
388
389
390
78 ?> 391 ?>

mercurial