10 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); |
10 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); |
11 } |
11 } |
12 mysqli_set_charset($connect, "utf8" ); |
12 mysqli_set_charset($connect, "utf8" ); |
13 syslog(LOG_NOTICE, "crontasks.php started"); |
13 syslog(LOG_NOTICE, "crontasks.php started"); |
14 |
14 |
|
15 |
|
16 |
|
17 /* |
|
18 * Upgrade inventory_reduced value from old boolean to tiny integer value. |
|
19 */ |
|
20 $query = "UPDATE products SET inventory_reduced=stage WHERE inventory_reduced = 1"; |
|
21 $result = mysqli_query($connect, $query); |
|
22 $changed = mysqli_affected_rows($connect); |
|
23 if ($changed > 0) { |
|
24 syslog(LOG_NOTICE, "Updated ".$changed." products to new inventory_reduced value"); |
|
25 } |
|
26 |
|
27 |
|
28 |
|
29 /* |
|
30 * Automatic reduce inventory depending on the production stage. |
|
31 * Stage 3+, primary, reduce sugars(0-mash, 1-boil), hops(0-mash, 1-fwh, 2-boil, 3-aroma, 4-whirlpool), miscs(0-starter, 1-mash, 2-boil) |
|
32 * Stage 4+, Secondary, reduce sugars(2-fermention), yeasts(0-Primary), miscs(3-primary) |
|
33 * Stage 5+, Tertiary, reduce yeasts(1-Secondary) |
|
34 * Stage 6+, packaged, reduce sugars(3-lagering), hops(5-dry-hop), yeasts(2-Tertiary), miscs(4-secondary) |
|
35 * Stage 7+, carbonatiom, reduce sugars(4-bottle), yeasts(3-Bottle), miscs(5-bottling) |
|
36 */ |
|
37 $query = "SELECT * FROM products WHERE inventory_reduced < stage"; |
|
38 $result = mysqli_query($connect, $query); |
|
39 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { |
|
40 |
|
41 $savethis = 0; |
|
42 |
|
43 /* |
|
44 * If the brew is done, reduce the used ingredients. |
|
45 */ |
|
46 if (($row['stage'] >= 3) && ($row['inventory_reduced'] < 3)) { |
|
47 syslog(LOG_NOTICE, "Reduce brew inventory from " . $row['code'] . " " . $row['name']); |
|
48 |
|
49 $fermentables = json_decode($row['json_fermentables'], true); |
|
50 for ($i = 0; $i < count($fermentables); $i++) { |
|
51 if ($fermentables[$i]['f_added'] <= 1) { // Mash, Boil |
|
52 $sql2 = "UPDATE inventory_fermentables SET inventory = inventory - " . $fermentables[$i]['f_amount']; |
|
53 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_name']); |
|
54 $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_origin']); |
|
55 $sql2 .= "' AND supplier='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_supplier']); |
|
56 $sql2 .= "' AND inventory >= " . $fermentables[$i]['f_amount']; |
|
57 $sql2 .= " LIMIT 1;"; |
|
58 $result2 = mysqli_query($connect, $sql2); |
|
59 $ar = mysqli_affected_rows($connect); |
|
60 if ($ar == 1) { |
|
61 syslog(LOG_NOTICE, "Reduced fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' with ".$fermentables[$i]['f_amount']." kg"); |
|
62 } else if ($ar == 0) { |
|
63 $sql2 = "UPDATE inventory_fermentables SET inventory = 0"; |
|
64 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_name']); |
|
65 $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_origin']); |
|
66 $sql2 .= "' AND supplier='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_supplier']); |
|
67 $sql2 .= "' AND inventory < " . $fermentables[$i]['f_amount']; |
|
68 $sql2 .= " LIMIT 1;"; |
|
69 $result2 = mysqli_query($connect, $sql2); |
|
70 $ar = mysqli_affected_rows($connect); |
|
71 if ($ar == 1) { |
|
72 syslog(LOG_NOTICE, "Reduced fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' to 0 kg"); |
|
73 } else if ($ar == 0) { |
|
74 syslog(LOG_NOTICE, "Reduce fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' failed"); |
|
75 } |
|
76 } |
|
77 } |
|
78 } |
|
79 |
|
80 $hops = json_decode($row['json_hops'], true); |
|
81 for ($i = 0; $i < count($hops); $i++) { |
|
82 if ($hops[$i]['h_useat'] <= 4) { // Mash, FWH, Boil, Flameout, Whirlpool |
|
83 $sql2 = "UPDATE inventory_hops SET inventory = inventory - " . $hops[$i]['h_amount']; |
|
84 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $hops[$i]['h_name']); |
|
85 $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $hops[$i]['h_origin']); |
|
86 $sql2 .= "' AND form=" . $hops[$i]['h_form']; |
|
87 $sql2 .= " AND inventory >= " . $hops[$i]['h_amount'] . " LIMIT 1;"; |
|
88 $result2 = mysqli_query($connect, $sql2); |
|
89 $ar = mysqli_affected_rows($connect); |
|
90 if ($ar == 1) { |
|
91 syslog(LOG_NOTICE, "Reduced hop `".$hops[$i]['h_name']."' from `".$hops[$i]['h_origin']."' with ".$hops[$i]['h_amount']." kg"); |
|
92 } else if ($ar == 0) { |
|
93 $sql2 = "UPDATE inventory_hops SET inventory = 0"; |
|
94 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $hops[$i]['h_name']); |
|
95 $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $hops[$i]['h_origin']); |
|
96 $sql2 .= "' AND form=" . $hops[$i]['h_form']; |
|
97 $sql2 .= " AND inventory < " . $hops[$i]['h_amount'] . " LIMIT 1;"; |
|
98 $result2 = mysqli_query($connect, $sql2); |
|
99 $ar = mysqli_affected_rows($connect); |
|
100 if ($ar == 1) { |
|
101 syslog(LOG_NOTICE, "Reduced hop `".$hops[$i]['h_name']."' from `".$hops[$i]['h_origin']."' to 0 kg"); |
|
102 } else if ($ar == 0) { |
|
103 syslog(LOG_NOTICE, "Reduce hop `".$hops[$i]['h_name']."' from `".$hops[$i]['h_origin']."' failed"); |
|
104 } |
|
105 } |
|
106 } |
|
107 } |
|
108 |
|
109 $miscs = json_decode($row['json_miscs'], true); |
|
110 for ($i = 0; $i < count($miscs); $i++) { |
|
111 if ($miscs[$i]['m_use_use'] <= 2) { // Starter, Mash, Boil |
|
112 $sql2 = "UPDATE inventory_miscs SET inventory = inventory - " . $miscs[$i]['m_amount']; |
|
113 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $miscs[$i]['m_name']); |
|
114 $sql2 .= "' AND inventory >= " . $miscs[$i]['m_amount'] . " LIMIT 1;"; |
|
115 $result2 = mysqli_query($connect, $sql2); |
|
116 $ar = mysqli_affected_rows($connect); |
|
117 if ($ar == 1) { |
|
118 syslog(LOG_NOTICE, "Reduced misc `".$miscs[$i]['m_name']."' with ".$miscs[$i]['m_amount']); |
|
119 } else if ($ar == 0) { |
|
120 $sql2 = "UPDATE inventory_miscs SET inventory = 0"; |
|
121 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $miscs[$i]['m_name']); |
|
122 $sql2 .= "' AND inventory < " . $miscs[$i]['m_amount'] . " LIMIT 1;"; |
|
123 $result2 = mysqli_query($connect, $sql2); |
|
124 $ar = mysqli_affected_rows($connect); |
|
125 if ($ar == 1) { |
|
126 syslog(LOG_NOTICE, "Reduced misc `".$miscs[$i]['m_name']."' to 0"); |
|
127 } else if ($ar == 0) { |
|
128 syslog(LOG_NOTICE, "Reduce misc `".$miscs[$i]['m_name']."' failed"); |
|
129 } |
|
130 } |
|
131 } |
|
132 } |
|
133 |
|
134 if ($row['w1_name'] != '') { |
|
135 $sql2 = "UPDATE inventory_waters SET inventory = inventory - ".$row['w1_amount']; |
|
136 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $row['w1_name']); |
|
137 $sql2 .= "' AND unlimited_stock=0 AND inventory >= ".$row['w1_amount']." LIMIT 1;"; |
|
138 $result2 = mysqli_query($connect, $sql2); |
|
139 $ar = mysqli_affected_rows($connect); |
|
140 if ($ar == 1) { |
|
141 syslog(LOG_NOTICE, "Reduced water `".$row['w1_name']."' with ".$row['w1_amount']." liter"); |
|
142 } else if ($ar == 0) { |
|
143 $sql2 = "UPDATE inventory_waters SET inventory = 0"; |
|
144 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $row['w1_name']); |
|
145 $sql2 .= "' AND unlimited_stock=0 AND inventory < ".$row['w1_amount']." LIMIT 1;"; |
|
146 $result2 = mysqli_query($connect, $sql2); |
|
147 $ar = mysqli_affected_rows($connect); |
|
148 if ($ar == 1) { |
|
149 syslog(LOG_NOTICE, "Reduced water `".$row['w1_name']."' to 0 liters"); |
|
150 } else { |
|
151 syslog(LOG_NOTICE, "Reduce water `".$row['w1_name']."' not reduced is maybe tapwater"); |
|
152 } |
|
153 } |
|
154 } |
|
155 if ($row['w2_name'] != '') { |
|
156 $sql2 = "UPDATE inventory_waters SET inventory = inventory - ".$row['w2_amount']; |
|
157 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $row['w2_name']); |
|
158 $sql2 .= "' AND unlimited_stock=0 AND inventory >= ".$row['w2_amount']." LIMIT 1;"; |
|
159 $result2 = mysqli_query($connect, $sql2); |
|
160 $ar = mysqli_affected_rows($connect); |
|
161 if ($ar == 1) { |
|
162 syslog(LOG_NOTICE, "Reduced water `".$row['w2_name']."' with ".$row['w2_amount']." liter"); |
|
163 } else if ($ar == 0) { |
|
164 $sql2 = "UPDATE inventory_waters SET inventory = 0"; |
|
165 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $row['w2_name']); |
|
166 $sql2 .= "' AND unlimited_stock=0 AND inventory < ".$row['w2_amount']." LIMIT 1;"; |
|
167 $result2 = mysqli_query($connect, $sql2); |
|
168 $ar = mysqli_affected_rows($connect); |
|
169 if ($ar == 1) { |
|
170 syslog(LOG_NOTICE, "Reduced water `".$row['w2_name']."' to 0 liters"); |
|
171 } else { |
|
172 syslog(LOG_NOTICE, "Reduce water `".$row['w2_name']."' failed"); |
|
173 } |
|
174 } |
|
175 } |
|
176 |
|
177 $row['inventory_reduced'] = '3'; |
|
178 $savethis = 1; |
|
179 } |
|
180 |
|
181 |
|
182 /* |
|
183 * After the Primary fermentation |
|
184 */ |
|
185 if (($row['stage'] >= 4) && ($row['inventory_reduced'] < 4)) { |
|
186 syslog(LOG_NOTICE, "Reduce Primary inventory from " . $row['code'] . " " . $row['name']); |
|
187 |
|
188 $fermentables = json_decode($row['json_fermentables'], true); |
|
189 for ($i = 0; $i < count($fermentables); $i++) { |
|
190 if ($fermentables[$i]['f_added'] == 2) { // Fermentation |
|
191 $sql2 = "UPDATE inventory_fermentables SET inventory = inventory - " . $fermentables[$i]['f_amount']; |
|
192 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_name']); |
|
193 $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_origin']); |
|
194 $sql2 .= "' AND supplier='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_supplier']); |
|
195 $sql2 .= "' AND inventory >= " . $fermentables[$i]['f_amount']; |
|
196 $sql2 .= " LIMIT 1;"; |
|
197 $result2 = mysqli_query($connect, $sql2); |
|
198 $ar = mysqli_affected_rows($connect); |
|
199 if ($ar == 1) { |
|
200 syslog(LOG_NOTICE, "Reduced fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' with ".$fermentables[$i]['f_amount']." kg"); |
|
201 } else if ($ar == 0) { |
|
202 $sql2 = "UPDATE inventory_fermentables SET inventory = 0"; |
|
203 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_name']); |
|
204 $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_origin']); |
|
205 $sql2 .= "' AND supplier='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_supplier']); |
|
206 $sql2 .= "' AND inventory < " . $fermentables[$i]['f_amount']; |
|
207 $sql2 .= " LIMIT 1;"; |
|
208 $result2 = mysqli_query($connect, $sql2); |
|
209 $ar = mysqli_affected_rows($connect); |
|
210 if ($ar == 1) { |
|
211 syslog(LOG_NOTICE, "Reduced fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' to 0 kg"); |
|
212 } else if ($ar == 0) { |
|
213 syslog(LOG_NOTICE, "Reduce fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' failed"); |
|
214 } |
|
215 } |
|
216 } |
|
217 } |
|
218 |
|
219 $miscs = json_decode($row['json_miscs'], true); |
|
220 for ($i = 0; $i < count($miscs); $i++) { |
|
221 if ($miscs[$i]['m_use_use'] == 3) { // Fermentation |
|
222 $sql2 = "UPDATE inventory_miscs SET inventory = inventory - " . $miscs[$i]['m_amount']; |
|
223 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $miscs[$i]['m_name']); |
|
224 $sql2 .= "' AND inventory >= " . $miscs[$i]['m_amount'] . " LIMIT 1;"; |
|
225 $result2 = mysqli_query($connect, $sql2); |
|
226 $ar = mysqli_affected_rows($connect); |
|
227 if ($ar == 1) { |
|
228 syslog(LOG_NOTICE, "Reduced misc `".$miscs[$i]['m_name']."' with ".$miscs[$i]['m_amount']); |
|
229 } else if ($ar == 0) { |
|
230 $sql2 = "UPDATE inventory_miscs SET inventory = 0"; |
|
231 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $miscs[$i]['m_name']); |
|
232 $sql2 .= "' AND inventory < " . $miscs[$i]['m_amount'] . " LIMIT 1;"; |
|
233 $result2 = mysqli_query($connect, $sql2); |
|
234 $ar = mysqli_affected_rows($connect); |
|
235 if ($ar == 1) { |
|
236 syslog(LOG_NOTICE, "Reduced misc `".$miscs[$i]['m_name']."' to 0"); |
|
237 } else if ($ar == 0) { |
|
238 syslog(LOG_NOTICE, "Reduce misc `".$miscs[$i]['m_name']."' failed"); |
|
239 } |
|
240 } |
|
241 } |
|
242 } |
|
243 |
|
244 $yeasts = json_decode($row['json_yeasts'], true); |
|
245 for ($i = 0; $i < count($yeasts); $i++) { |
|
246 if ($yeasts[$i]['y_use'] == 0) { // Primary |
|
247 $sql2 = "UPDATE inventory_yeasts SET inventory = inventory - " . $yeasts[$i]['y_amount']; |
|
248 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_name']); |
|
249 $sql2 .= "' AND laboratory='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_laboratory']); |
|
250 $sql2 .= "' AND product_id='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_product_id']); |
|
251 $sql2 .= "' AND form=" . $yeasts[$i]['y_form']; |
|
252 $sql2 .= " AND inventory >= " . $yeasts[$i]['y_amount'] . " LIMIT 1;"; |
|
253 $result2 = mysqli_query($connect, $sql2); |
|
254 $ar = mysqli_affected_rows($connect); |
|
255 if ($ar == 1) { |
|
256 syslog(LOG_NOTICE, "Reduced yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' with ".$yeasts[$i]['y_amount']); |
|
257 } else if ($ar == 0) { |
|
258 $sql2 = "UPDATE inventory_yeasts SET inventory = 0"; |
|
259 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_name']); |
|
260 $sql2 .= "' AND laboratory='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_laboratory']); |
|
261 $sql2 .= "' AND product_id='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_product_id']); |
|
262 $sql2 .= "' AND form=" . $yeasts[$i]['y_form']; |
|
263 $sql2 .= " AND inventory < " . $yeasts[$i]['y_amount'] . " LIMIT 1;"; |
|
264 $result2 = mysqli_query($connect, $sql2); |
|
265 $ar = mysqli_affected_rows($connect); |
|
266 if ($ar == 1) { |
|
267 syslog(LOG_NOTICE, "Reduced yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' to 0"); |
|
268 } else if ($ar == 0) { |
|
269 syslog(LOG_NOTICE, "Reduce yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' failed"); |
|
270 } |
|
271 } |
|
272 } |
|
273 } |
|
274 |
|
275 $row['inventory_reduced'] = '4'; |
|
276 $savethis = 1; |
|
277 } |
|
278 |
|
279 |
|
280 /* |
|
281 * After the Seconday fermentation |
|
282 */ |
|
283 if (($row['stage'] >= 5) && ($row['inventory_reduced'] < 5)) { |
|
284 syslog(LOG_NOTICE, "Reduce Secondary inventory from " . $row['code'] . " " . $row['name']); |
|
285 |
|
286 $yeasts = json_decode($row['json_yeasts'], true); |
|
287 for ($i = 0; $i < count($yeasts); $i++) { |
|
288 if ($yeasts[$i]['y_use'] == 1) { // Secondary |
|
289 $sql2 = "UPDATE inventory_yeasts SET inventory = inventory - " . $yeasts[$i]['y_amount']; |
|
290 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_name']); |
|
291 $sql2 .= "' AND laboratory='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_laboratory']); |
|
292 $sql2 .= "' AND product_id='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_product_id']); |
|
293 $sql2 .= "' AND form=" . $yeasts[$i]['y_form']; |
|
294 $sql2 .= " AND inventory >= " . $yeasts[$i]['y_amount'] . " LIMIT 1;"; |
|
295 $result2 = mysqli_query($connect, $sql2); |
|
296 $ar = mysqli_affected_rows($connect); |
|
297 if ($ar == 1) { |
|
298 syslog(LOG_NOTICE, "Reduced yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' with ".$yeasts[$i]['y_amount']); |
|
299 } else if ($ar == 0) { |
|
300 $sql2 = "UPDATE inventory_yeasts SET inventory = 0"; |
|
301 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_name']); |
|
302 $sql2 .= "' AND laboratory='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_laboratory']); |
|
303 $sql2 .= "' AND product_id='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_product_id']); |
|
304 $sql2 .= "' AND form=" . $yeasts[$i]['y_form']; |
|
305 $sql2 .= " AND inventory < " . $yeasts[$i]['y_amount'] . " LIMIT 1;"; |
|
306 $result2 = mysqli_query($connect, $sql2); |
|
307 $ar = mysqli_affected_rows($connect); |
|
308 if ($ar == 1) { |
|
309 syslog(LOG_NOTICE, "Reduced yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' to 0"); |
|
310 } else if ($ar == 0) { |
|
311 syslog(LOG_NOTICE, "Reduce yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' failed"); |
|
312 } |
|
313 } |
|
314 } |
|
315 } |
|
316 $row['inventory_reduced'] = '5'; |
|
317 $savethis = 1; |
|
318 } |
|
319 |
|
320 |
|
321 /* |
|
322 * After the Tertiary fermentation |
|
323 */ |
|
324 if (($row['stage'] >= 6) && ($row['inventory_reduced'] < 6)) { |
|
325 syslog(LOG_NOTICE, "Reduce Tertiary inventory from " . $row['code'] . " " . $row['name']); |
|
326 |
|
327 $fermentables = json_decode($row['json_fermentables'], true); |
|
328 for ($i = 0; $i < count($fermentables); $i++) { |
|
329 if ($fermentables[$i]['f_added'] == 3) { // Lagering |
|
330 $sql2 = "UPDATE inventory_fermentables SET inventory = inventory - " . $fermentables[$i]['f_amount']; |
|
331 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_name']); |
|
332 $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_origin']); |
|
333 $sql2 .= "' AND supplier='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_supplier']); |
|
334 $sql2 .= "' AND inventory >= " . $fermentables[$i]['f_amount']; |
|
335 $sql2 .= " LIMIT 1;"; |
|
336 $result2 = mysqli_query($connect, $sql2); |
|
337 $ar = mysqli_affected_rows($connect); |
|
338 if ($ar == 1) { |
|
339 syslog(LOG_NOTICE, "Reduced fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' with ".$fermentables[$i]['f_amount']." kg"); |
|
340 } else if ($ar == 0) { |
|
341 $sql2 = "UPDATE inventory_fermentables SET inventory = 0"; |
|
342 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_name']); |
|
343 $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_origin']); |
|
344 $sql2 .= "' AND supplier='" . mysqli_real_escape_string($connect, $fermentables[$i]['f_supplier']); |
|
345 $sql2 .= "' AND inventory < " . $fermentables[$i]['f_amount']; |
|
346 $sql2 .= " LIMIT 1;"; |
|
347 $result2 = mysqli_query($connect, $sql2); |
|
348 $ar = mysqli_affected_rows($connect); |
|
349 if ($ar == 1) { |
|
350 syslog(LOG_NOTICE, "Reduced fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' to 0 kg"); |
|
351 } else if ($ar == 0) { |
|
352 syslog(LOG_NOTICE, "Reduce fermentable `".$fermentables[$i]['f_name']."' from `".$fermentables[$i]['f_supplier']."' failed"); |
|
353 } |
|
354 } |
|
355 } |
|
356 } |
|
357 |
|
358 $hops = json_decode($row['json_hops'], true); |
|
359 for ($i = 0; $i < count($hops); $i++) { |
|
360 if ($hops[$i]['h_useat'] == 5) { // Dry hop |
|
361 $sql2 = "UPDATE inventory_hops SET inventory = inventory - " . $hops[$i]['h_amount']; |
|
362 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $hops[$i]['h_name']); |
|
363 $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $hops[$i]['h_origin']); |
|
364 $sql2 .= "' AND form=" . $hops[$i]['h_form']; |
|
365 $sql2 .= " AND inventory >= " . $hops[$i]['h_amount'] . " LIMIT 1;"; |
|
366 $result2 = mysqli_query($connect, $sql2); |
|
367 $ar = mysqli_affected_rows($connect); |
|
368 if ($ar == 1) { |
|
369 syslog(LOG_NOTICE, "Reduced hop `".$hops[$i]['h_name']."' from `".$hops[$i]['h_origin']."' with ".$hops[$i]['h_amount']." kg"); |
|
370 } else if ($ar == 0) { |
|
371 $sql2 = "UPDATE inventory_hops SET inventory = 0"; |
|
372 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $hops[$i]['h_name']); |
|
373 $sql2 .= "' AND origin='" . mysqli_real_escape_string($connect, $hops[$i]['h_origin']); |
|
374 $sql2 .= "' AND form=" . $hops[$i]['h_form']; |
|
375 $sql2 .= " AND inventory < " . $hops[$i]['h_amount'] . " LIMIT 1;"; |
|
376 $result2 = mysqli_query($connect, $sql2); |
|
377 $ar = mysqli_affected_rows($connect); |
|
378 if ($ar == 1) { |
|
379 syslog(LOG_NOTICE, "Reduced hop `".$hops[$i]['h_name']."' from `".$hops[$i]['h_origin']."' to 0 kg"); |
|
380 } else if ($ar == 0) { |
|
381 syslog(LOG_NOTICE, "Reduce hop `".$hops[$i]['h_name']."' from `".$hops[$i]['h_origin']."' failed"); |
|
382 } |
|
383 } |
|
384 } |
|
385 } |
|
386 |
|
387 $yeasts = json_decode($row['json_yeasts'], true); |
|
388 for ($i = 0; $i < count($yeasts); $i++) { |
|
389 if ($yeasts[$i]['y_use'] == 2) { // Tertiary |
|
390 $sql2 = "UPDATE inventory_yeasts SET inventory = inventory - " . $yeasts[$i]['y_amount']; |
|
391 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_name']); |
|
392 $sql2 .= "' AND laboratory='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_laboratory']); |
|
393 $sql2 .= "' AND product_id='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_product_id']); |
|
394 $sql2 .= "' AND form=" . $yeasts[$i]['y_form']; |
|
395 $sql2 .= " AND inventory >= " . $yeasts[$i]['y_amount'] . " LIMIT 1;"; |
|
396 $result2 = mysqli_query($connect, $sql2); |
|
397 $ar = mysqli_affected_rows($connect); |
|
398 if ($ar == 1) { |
|
399 syslog(LOG_NOTICE, "Reduced yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' with ".$yeasts[$i]['y_amount']); |
|
400 } else if ($ar == 0) { |
|
401 $sql2 = "UPDATE inventory_yeasts SET inventory = 0"; |
|
402 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_name']); |
|
403 $sql2 .= "' AND laboratory='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_laboratory']); |
|
404 $sql2 .= "' AND product_id='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_product_id']); |
|
405 $sql2 .= "' AND form=" . $yeasts[$i]['y_form']; |
|
406 $sql2 .= " AND inventory < " . $yeasts[$i]['y_amount'] . " LIMIT 1;"; |
|
407 $result2 = mysqli_query($connect, $sql2); |
|
408 $ar = mysqli_affected_rows($connect); |
|
409 if ($ar == 1) { |
|
410 syslog(LOG_NOTICE, "Reduced yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' to 0"); |
|
411 } else if ($ar == 0) { |
|
412 syslog(LOG_NOTICE, "Reduce yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' failed"); |
|
413 } |
|
414 } |
|
415 } |
|
416 } |
|
417 |
|
418 $miscs = json_decode($row['json_miscs'], true); |
|
419 for ($i = 0; $i < count($miscs); $i++) { |
|
420 if ($miscs[$i]['m_use_use'] == 4) { // Secondary or Tertiary |
|
421 $sql2 = "UPDATE inventory_miscs SET inventory = inventory - " . $miscs[$i]['m_amount']; |
|
422 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $miscs[$i]['m_name']); |
|
423 $sql2 .= "' AND inventory >= " . $miscs[$i]['m_amount'] . " LIMIT 1;"; |
|
424 $result2 = mysqli_query($connect, $sql2); |
|
425 $ar = mysqli_affected_rows($connect); |
|
426 if ($ar == 1) { |
|
427 syslog(LOG_NOTICE, "Reduced misc `".$miscs[$i]['m_name']."' with ".$miscs[$i]['m_amount']); |
|
428 } else if ($ar == 0) { |
|
429 $sql2 = "UPDATE inventory_miscs SET inventory = 0"; |
|
430 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $miscs[$i]['m_name']); |
|
431 $sql2 .= "' AND inventory < " . $miscs[$i]['m_amount'] . " LIMIT 1;"; |
|
432 $result2 = mysqli_query($connect, $sql2); |
|
433 $ar = mysqli_affected_rows($connect); |
|
434 if ($ar == 1) { |
|
435 syslog(LOG_NOTICE, "Reduced misc `".$miscs[$i]['m_name']."' to 0"); |
|
436 } else if ($ar == 0) { |
|
437 syslog(LOG_NOTICE, "Reduce misc `".$miscs[$i]['m_name']."' failed"); |
|
438 } |
|
439 } |
|
440 } |
|
441 } |
|
442 |
|
443 $row['inventory_reduced'] = '6'; |
|
444 $savethis = 1; |
|
445 } |
|
446 |
|
447 |
|
448 /* |
|
449 * After packaging |
|
450 * reduce sugars(4-bottle), yeasts(3-Bottle), miscs(5-bottling) |
|
451 */ |
|
452 if (($row['stage'] >= 7) && ($row['inventory_reduced'] < 7)) { |
|
453 syslog(LOG_NOTICE, "Reduce Packaging inventory from " . $row['code'] . " " . $row['name']); |
|
454 |
|
455 // Bottle sugar, how? |
|
456 |
|
457 $yeasts = json_decode($row['json_yeasts'], true); |
|
458 for ($i = 0; $i < count($yeasts); $i++) { |
|
459 if ($yeasts[$i]['y_use'] == 3) { // Bottle |
|
460 $sql2 = "UPDATE inventory_yeasts SET inventory = inventory - " . $yeasts[$i]['y_amount']; |
|
461 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_name']); |
|
462 $sql2 .= "' AND laboratory='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_laboratory']); |
|
463 $sql2 .= "' AND product_id='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_product_id']); |
|
464 $sql2 .= "' AND form=" . $yeasts[$i]['y_form']; |
|
465 $sql2 .= " AND inventory >= " . $yeasts[$i]['y_amount'] . " LIMIT 1;"; |
|
466 $result2 = mysqli_query($connect, $sql2); |
|
467 $ar = mysqli_affected_rows($connect); |
|
468 if ($ar == 1) { |
|
469 syslog(LOG_NOTICE, "Reduced yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' with ".$yeasts[$i]['y_amount']); |
|
470 } else if ($ar == 0) { |
|
471 $sql2 = "UPDATE inventory_yeasts SET inventory = 0"; |
|
472 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_name']); |
|
473 $sql2 .= "' AND laboratory='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_laboratory']); |
|
474 $sql2 .= "' AND product_id='" . mysqli_real_escape_string($connect, $yeasts[$i]['y_product_id']); |
|
475 $sql2 .= "' AND form=" . $yeasts[$i]['y_form']; |
|
476 $sql2 .= " AND inventory < " . $yeasts[$i]['y_amount'] . " LIMIT 1;"; |
|
477 $result2 = mysqli_query($connect, $sql2); |
|
478 $ar = mysqli_affected_rows($connect); |
|
479 if ($ar == 1) { |
|
480 syslog(LOG_NOTICE, "Reduced yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' to 0"); |
|
481 } else if ($ar == 0) { |
|
482 syslog(LOG_NOTICE, "Reduce yeast `".$yeasts[$i]['y_product_id'].' '.$yeasts[$i]['y_name']."' from `".$yeasts[$i]['y_laboratory']."' failed"); |
|
483 } |
|
484 } |
|
485 } |
|
486 } |
|
487 |
|
488 $miscs = json_decode($row['json_miscs'], true); |
|
489 for ($i = 0; $i < count($miscs); $i++) { |
|
490 if ($miscs[$i]['m_use_use'] == 5) { // Bottle |
|
491 $sql2 = "UPDATE inventory_miscs SET inventory = inventory - " . $miscs[$i]['m_amount']; |
|
492 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $miscs[$i]['m_name']); |
|
493 $sql2 .= "' AND inventory >= " . $miscs[$i]['m_amount'] . " LIMIT 1;"; |
|
494 $result2 = mysqli_query($connect, $sql2); |
|
495 $ar = mysqli_affected_rows($connect); |
|
496 if ($ar == 1) { |
|
497 syslog(LOG_NOTICE, "Reduced misc `".$miscs[$i]['m_name']."' with ".$miscs[$i]['m_amount']); |
|
498 } else if ($ar == 0) { |
|
499 $sql2 = "UPDATE inventory_miscs SET inventory = 0"; |
|
500 $sql2 .= " WHERE name='" . mysqli_real_escape_string($connect, $miscs[$i]['m_name']); |
|
501 $sql2 .= "' AND inventory < " . $miscs[$i]['m_amount'] . " LIMIT 1;"; |
|
502 $result2 = mysqli_query($connect, $sql2); |
|
503 $ar = mysqli_affected_rows($connect); |
|
504 if ($ar == 1) { |
|
505 syslog(LOG_NOTICE, "Reduced misc `".$miscs[$i]['m_name']."' to 0"); |
|
506 } else if ($ar == 0) { |
|
507 syslog(LOG_NOTICE, "Reduce misc `".$miscs[$i]['m_name']."' failed"); |
|
508 } |
|
509 } |
|
510 } |
|
511 } |
|
512 |
|
513 $row['inventory_reduced'] = $row['stage']; |
|
514 $savethis = 1; |
|
515 } |
|
516 |
|
517 /* |
|
518 * Save only if something was reduced. |
|
519 */ |
|
520 if ($savethis == 1) { |
|
521 $sql2 = "UPDATE products SET inventory_reduced=".$row['inventory_reduced']." WHERE uuid = '" . $row['uuid'] . "';"; |
|
522 // syslog(LOG_NOTICE, $sql2); |
|
523 $result2 = mysqli_query($connect, $sql2); |
|
524 $ar = mysqli_affected_rows($connect); |
|
525 if ($ar != 1) { |
|
526 syslog(LOG_NOTICE, $sql2." error, affected rows: ".$ar); |
|
527 } |
|
528 } |
|
529 } |
|
530 |
|
531 |
|
532 |
|
533 /* |
|
534 * Update stages after packaging depending on the age. |
|
535 */ |
15 $query = "UPDATE products SET stage=7 WHERE stage = 6 AND DATEDIFF(CURDATE(), package_date) > 0"; |
536 $query = "UPDATE products SET stage=7 WHERE stage = 6 AND DATEDIFF(CURDATE(), package_date) > 0"; |
16 $result = mysqli_query($connect, $query); |
537 $result = mysqli_query($connect, $query); |
17 $changed = mysqli_affected_rows($connect); |
538 $changed = mysqli_affected_rows($connect); |
18 if ($changed > 0) { |
539 if ($changed > 0) { |
19 syslog(LOG_NOTICE, "Updated ".$changed." products to stage 7 (Carbonation)"); |
540 syslog(LOG_NOTICE, "Updated ".$changed." products to stage 7 (Carbonation)"); |