|
1 <?php |
|
2 |
|
3 require($_SERVER['DOCUMENT_ROOT']."/config.php"); |
|
4 require($_SERVER['DOCUMENT_ROOT']."/version.php"); |
|
5 |
|
6 #Connect to the database |
|
7 $connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME); |
|
8 if (! $connect) { |
|
9 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); |
|
10 } |
|
11 mysqli_set_charset($connect, "utf8" ); |
|
12 |
|
13 syslog(LOG_NOTICE, "db_product: start"); |
|
14 |
|
15 $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c"); |
|
16 $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b"); |
|
17 $rescapers = array("'"); |
|
18 $rreplacements = array("\\'"); |
|
19 $disallowed = array('visibleindex','uniqueid','boundindex','uid'); |
|
20 |
|
21 |
|
22 if (isset($_POST['insert']) || isset($_POST['update'])) { |
|
23 if (isset($_POST['insert'])) { |
|
24 // INSERT COMMAND |
|
25 $sql = "INSERT INTO `prod_main` SET "; |
|
26 } |
|
27 if (isset($_POST['update'])) { |
|
28 // UPDATE COMMAND |
|
29 $sql = "UPDATE `prod_main` SET "; |
|
30 } |
|
31 // Basic settings |
|
32 $sql .= "uuid='" . $_POST['uuid']; |
|
33 $sql .= "', name='" . mysqli_real_escape_string($connect, $_POST['name']); |
|
34 $sql .= "', birth='" . $_POST['birth']; |
|
35 $sql .= "', stage='" . $_POST['stage']; |
|
36 $sql .= "', notes='" . mysqli_real_escape_string($connect, $_POST['notes']); |
|
37 ($_POST['log_brew'] == 'true') ? $sql .= "', log_brew='1" : $sql .= "', log_brew='0"; |
|
38 ($_POST['log_fermentation'] == 'true') ? $sql .= "', log_fermentation='1" : $sql .= "', log_fermentation='0"; |
|
39 ($_POST['inventory_reduced'] == 'true') ? $sql .= "', inventory_reduced='1" : $sql .= "', inventory_reduced='0"; |
|
40 ($_POST['locked'] == 'true') ? $sql .= "', locked='1" : $sql .= "', locked='0"; |
|
41 // Equipment |
|
42 $sql .= "', eq_name='" . mysqli_real_escape_string($connect, $_POST['eq_name']); |
|
43 $sql .= "', eq_boil_size='" . $_POST['eq_boil_size']; |
|
44 $sql .= "', eq_batch_size='" . $_POST['eq_batch_size']; |
|
45 $sql .= "', eq_tun_volume='" . $_POST['eq_tun_volume']; |
|
46 $sql .= "', eq_tun_weight='" . $_POST['eq_tun_weight']; |
|
47 $sql .= "', eq_tun_specific_heat='" . $_POST['eq_tun_specific_heat']; |
|
48 $sql .= "', eq_tun_material='" . $_POST['eq_tun_material']; |
|
49 $sql .= "', eq_tun_height='" . $_POST['eq_tun_height']; |
|
50 $sql .= "', eq_top_up_water='" . $_POST['eq_top_up_water']; |
|
51 $sql .= "', eq_trub_chiller_loss='" . $_POST['eq_trub_chiller_loss']; |
|
52 $sql .= "', eq_evap_rate='" . $_POST['eq_evap_rate']; |
|
53 $sql .= "', eq_boil_time='" . $_POST['eq_boil_time']; |
|
54 $sql .= "', eq_calc_boil_volume='" . $_POST['eq_calc_boil_volume']; |
|
55 $sql .= "', eq_top_up_kettle='" . $_POST['eq_top_up_kettle']; |
|
56 $sql .= "', eq_hop_utilization='" . $_POST['eq_hop_utilization']; |
|
57 $sql .= "', eq_lauter_volume='" . $_POST['eq_lauter_volume']; |
|
58 $sql .= "', eq_lauter_height='" . $_POST['eq_lauter_height']; |
|
59 $sql .= "', eq_lauter_deadspace='" . $_POST['eq_lauter_deadspace']; |
|
60 $sql .= "', eq_kettle_volume='" . $_POST['eq_kettle_volume']; |
|
61 $sql .= "', eq_kettle_height='" . $_POST['eq_kettle_height']; |
|
62 $sql .= "', eq_mash_volume='" . $_POST['eq_mash_volume']; |
|
63 $sql .= "', eq_efficiency='" . $_POST['eq_efficiency']; |
|
64 |
|
65 |
|
66 syslog(LOG_NOTICE, $sql); |
|
67 if (isset($_POST['insert'])) { |
|
68 $sql .= "';"; |
|
69 } |
|
70 if (isset($_POST['update'])) { |
|
71 $sql .= "' WHERE record='" . $_POST['record'] . "';"; |
|
72 } |
|
73 |
|
74 $result = mysqli_query($connect, $sql); |
|
75 if (! $result) { |
|
76 syslog(LOG_NOTICE, "db_product: result: ".mysqli_error($connect)); |
|
77 } else { |
|
78 if (isset($_POST['update'])) { |
|
79 syslog(LOG_NOTICE, "db_product: updated record ".$_POST['record']); |
|
80 } else { |
|
81 $lastid = mysqli_insert_id($connect); |
|
82 syslog(LOG_NOTICE, "db_product: inserted record ".$lastid); |
|
83 } |
|
84 } |
|
85 echo $result; |
|
86 |
|
87 } else if (isset($_POST['delete'])) { |
|
88 // DELETE COMMAND |
|
89 $sql = "DELETE FROM `brews` WHERE record='".$_POST['record']."';"; |
|
90 $result = mysqli_query($connect, $sql); |
|
91 if (! $result) { |
|
92 syslog(LOG_NOTICE, "db_product: result: ".mysqli_error($connect)); |
|
93 } else { |
|
94 syslog(LOG_NOTICE, "db_product: deleted record ".$_POST['record']); |
|
95 } |
|
96 echo $result; |
|
97 |
|
98 } else { |
|
99 // syslog(LOG_NOTICE, "db_product: select"); |
|
100 // if (isset($_GET['select'])) { |
|
101 // syslog(LOG_NOTICE, "db_product: select isset ".$_GET['select']); |
|
102 // } |
|
103 // SELECT COMMAND |
|
104 if (isset($_GET['select']) && ($_GET['select'] == "inprod")) { |
|
105 $query = "SELECT record,name,code,birth,stage FROM prod_main WHERE stage != 'Closed' ORDER BY birth,code;"; |
|
106 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); |
|
107 $brews = '['; |
|
108 $comma = FALSE; |
|
109 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { |
|
110 // Manual encode to JSON. |
|
111 if ($comma) |
|
112 $brews .= ','; |
|
113 $comma = TRUE; |
|
114 $brews .= '{"record":' . $row['record']; |
|
115 $brews .= ',"name":"' . str_replace($escapers, $replacements, $row['name']); |
|
116 $brews .= '","code":"' . str_replace($escapers, $replacements, $row['code']); |
|
117 $brews .= '","birth":"' . str_replace($escapers, $replacements, $row['birth']); |
|
118 $brews .= '","stage":"' . str_replace($escapers, $replacements, $row['stage']); |
|
119 $brews .= '"}'; |
|
120 } |
|
121 $brews .= ']'; |
|
122 header("Content-type: application/json"); |
|
123 echo $brews; |
|
124 return; |
|
125 } |
|
126 |
|
127 /* |
|
128 * Default, select all |
|
129 */ |
|
130 $query = "SELECT * FROM prod_main ORDER BY birth,code;"; |
|
131 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); |
|
132 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { |
|
133 $brews[] = array( |
|
134 'record' => $row['record'], |
|
135 'uuid' => $row['uuid'], |
|
136 'name' => $row['name'], |
|
137 'code' => $row['code'], |
|
138 'birth' => $row['birth'], |
|
139 'stage' => $row['stage'], |
|
140 'notes' => $row['notes'], |
|
141 'log_brew' => $row['log_brew'], |
|
142 'log_fermentation' => $row['log_fermentation'], |
|
143 'inventory_reduced' => $row['inventory_reduced'], |
|
144 'locked' => $row['locked'], |
|
145 'eq_name' => $row['eq_name'], |
|
146 'eq_notes' => $row['eq_notes'], |
|
147 'eq_boil_size' => $row['eq_boil_size'], |
|
148 'eq_batch_size' => $row['eq_batch_size'], |
|
149 'eq_tun_volume' => $row['eq_tun_volume'], |
|
150 'eq_tun_weight' => $row['eq_tun_weight'], |
|
151 'eq_tun_specific_heat' => $row['eq_tun_specific_heat'], |
|
152 'eq_tun_material' => $row['eq_tun_material'], |
|
153 'eq_tun_height' => $row['eq_tun_height'], |
|
154 'eq_top_up_water' => $row['eq_top_up_water'], |
|
155 'eq_trub_chiller_loss' => $row['eq_trub_chiller_loss'], |
|
156 'eq_evap_rate' => $row['eq_evap_rate'], |
|
157 'eq_boil_time' => $row['eq_boil_time'], |
|
158 'eq_calc_boil_volume' => $row['eq_calc_boil_volume'], |
|
159 'eq_top_up_kettle' => $row['eq_top_up_kettle'], |
|
160 'eq_hop_utilization' => $row['eq_hop_utilization'], |
|
161 'eq_lauter_volume' => $row['eq_lauter_volume'], |
|
162 'eq_lauter_height' => $row['eq_lauter_height'], |
|
163 'eq_lauter_deadspace' => $row['eq_lauter_deadspace'], |
|
164 'eq_kettle_volume' => $row['eq_kettle_volume'], |
|
165 'eq_kettle_height' => $row['eq_kettle_height'], |
|
166 'eq_mash_volume' => $row['eq_mash_volume'], |
|
167 'eq_efficiency' => $row['eq_efficiency'], |
|
168 'brew_date_start' => $row['brew_date_start'], |
|
169 'brew_mash_ph' => $row['brew_mash_ph'], |
|
170 'brew_mash_sg' => $row['brew_mash_sg'], |
|
171 'brew_sparge_temperature' => $row['brew_sparge_temperature'], |
|
172 'brew_sparge_volume' => $row['brew_sparge_volume'], |
|
173 'brew_preboil_volume' => $row['brew_preboil_volume'], |
|
174 'brew_preboil_sg' => $row['brew_preboil_sg'], |
|
175 'brew_preboil_ph' => $row['brew_preboil_ph'], |
|
176 'brew_aboil_volume' => $row['brew_aboil_volume'], |
|
177 'brew_aboil_sg' => $row['brew_aboil_sg'], |
|
178 'brew_aboil_ph' => $row['brew_aboil_ph'], |
|
179 'brew_aboil_efficiency' => $row['brew_aboil_efficiency'], |
|
180 'brew_cooling_method' => $row['brew_cooling_method'], |
|
181 'brew_cooling_time' => $row['brew_cooling_time'], |
|
182 'brew_cooling_to' => $row['brew_cooling_to'], |
|
183 'brew_whirlpool9' => $row['brew_whirlpool9'], |
|
184 'brew_whirlpool7' => $row['brew_whirlpool7'], |
|
185 'brew_whirlpool6' => $row['brew_whirlpool6'], |
|
186 'brew_whirlpool2' => $row['brew_whirlpool2'], |
|
187 'brew_fermenter_volume' => $row['brew_fermenter_volume'], |
|
188 'brew_fermenter_extrawater' => $row['brew_fermenter_extrawater'], |
|
189 'brew_aeration_time' => $row['brew_aeration_time'], |
|
190 'brew_aeration_speed' => $row['brew_aeration_speed'], |
|
191 'brew_aeration_type' => $row['brew_aeration_type'], |
|
192 'brew_fermenter_sg' => $row['brew_fermenter_sg'], |
|
193 'brew_fermenter_ibu' => $row['brew_fermenter_ibu'], |
|
194 'brew_date_end' => $row['brew_date_end'], |
|
195 'brew_log_available' => $row['brew_log_available'], |
|
196 'primary_start_temp' => $row['primary_start_temp'], |
|
197 'primary_max_temp' => $row['primary_max_temp'], |
|
198 'primary_end_temp' => $row['primary_end_temp'], |
|
199 'primary_end_sg' => $row['primary_end_sg'], |
|
200 'primary_end_date' => $row['primary_end_date'], |
|
201 'secondary_temp' => $row['secondary_temp'], |
|
202 'secondary_end_date' => $row['secondary_end_date'], |
|
203 'tertiary_temp' => $row['tertiary_temp'], |
|
204 'package_date' => $row['package_date'], |
|
205 'bottle_amount' => $row['bottle_amount'], |
|
206 'bottle_carbonation' => $row['bottle_carbonation'], |
|
207 'bottle_priming_sugar' => $row['bottle_priming_sugar'], |
|
208 'bottle_priming_amount' => $row['bottle_priming_amount'], |
|
209 'bottle_carbonation_temp' => $row['bottle_carbonation_temp'], |
|
210 'keg_amount' => $row['keg_amount'], |
|
211 'keg_carbonation' => $row['keg_carbonation'], |
|
212 'keg_priming_sugar' => $row['keg_priming_sugar'], |
|
213 'keg_priming_amount' => $row['keg_priming_amount'], |
|
214 'keg_carbonation_temp' => $row['keg_carbonation_temp'], |
|
215 'keg_forced_carb' => $row['keg_forced_carb'], |
|
216 'keg_pressure' => $row['keg_pressure'], |
|
217 'keg_priming_factor' => $row['keg_priming_factor'], |
|
218 'taste_notes' => $row['taste_notes'], |
|
219 'taste_rate' => $row['taste_rate'], |
|
220 'taste_date' => $row['taste_date'], |
|
221 'taste_color' => $row['taste_color'], |
|
222 'taste_transparency' => $row['taste_transparency'], |
|
223 'taste_head' => $row['taste_head'], |
|
224 'taste_aroma' => $row['taste_aroma'], |
|
225 'taste_taste' => $row['taste_taste'], |
|
226 'taste_mouthfeel' => $row['taste_mouthfeel'], |
|
227 'taste_aftertaste' => $row['taste_aftertaste'] |
|
228 ); |
|
229 } |
|
230 // syslog(LOG_NOTICE, json_encode($brews)); |
|
231 echo json_encode($brews); |
|
232 } |
|
233 ?> |