www/crontasks.php

changeset 356
36c72e368948
parent 354
2e372eeba04b
child 379
2aa6addc1853
equal deleted inserted replaced
355:64d6f3c857d7 356:36c72e368948
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)");
32 if ($changed > 0) { 553 if ($changed > 0) {
33 syslog(LOG_NOTICE, "Updated ".$changed." products to stage 9 (Taste)"); 554 syslog(LOG_NOTICE, "Updated ".$changed." products to stage 9 (Taste)");
34 } 555 }
35 556
36 557
558 /*
559 * Check fementation logs.
560 */
37 $query = "SELECT record,code,name,log_brew,log_fermentation FROM products;"; 561 $query = "SELECT record,code,name,log_brew,log_fermentation FROM products;";
38 $result = mysqli_query($connect, $query); 562 $result = mysqli_query($connect, $query);
39 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 563 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
40 $logfile = "log/fermentation/" . $row['code'] . " " . $row['name'] . ".log"; 564 $logfile = "log/fermentation/" . $row['code'] . " " . $row['name'] . ".log";
41 if (file_exists($logfile)) 565 if (file_exists($logfile))

mercurial