www/includes/db_product.php

changeset 111
8c4ba91adf58
child 112
7ef48396f705
equal deleted inserted replaced
110:0f128201a031 111:8c4ba91adf58
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 ?>

mercurial