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 ?> |