bf06c0f1240304300d3ac88db982e8949f36092b
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

1) <?php
Bernd Wurst API-Authtoken, Idle-Warnung...

Bernd Wurst authored 4 years ago

2) require_once "lib/api.php";
3) require_once "lib/auftrag.php";
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

4) session_start();
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

5) $_SESSION['warnings'] = [];
6) 
7) $_SESSION['angeliefert'] = true;
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

8) 
Bernd Wurst API-Authtoken, Idle-Warnung...

Bernd Wurst authored 4 years ago

9) $handle_length = 8;
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

10) if (! isset($_SESSION['handle']) || !$_SESSION['handle']) {
11)     $random = base64_encode(md5(microtime()));
Bernd Wurst API-Authtoken, Idle-Warnung...

Bernd Wurst authored 4 years ago

12)     $_SESSION['handle'] = substr(str_replace(array('+', '=', '/'), '', $random), 0, $handle_length);
Bernd Wurst Änderungen Stand 2019

Bernd Wurst authored 4 years ago

13)     $_SESSION['date'] = date('Y-m-d H:i:s.v');
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

14)     $_SESSION['complete'] = false;
15) }
16) 
Bernd Wurst Änderungen Stand 2019

Bernd Wurst authored 4 years ago

17) 
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

18) function showError()
19) {
20)     switch ($_REQUEST['form']) {
21)         case 'start':
22)                 $redirect = 'index.php?error&num='.urlencode($number).'&name='.urlencode($name);
23)                 break;
24)         case 'address':
25)                 $redirect = 'address.php?error';
26)                 break;
27)         case 'anlieferung':
28)                 $redirect = 'anlieferung.php?error';
29)                 break;
30)         case 'gitterbox':
31)             $redirect = 'gitterbox.php?error';
32)             break;
33)         case 'obstart':
34)             $redirect = 'obstart.php?error';
35)             break;
36)         case 'gebrauchte':
37)             $redirect = 'gebrauchte.php?error';
38)             break;
39)         case 'auftrag':
40)             $redirect = 'auftrag.php?error';
41)             break;
42)          case 'frischsaft':
43)             $redirect = 'frischsaft.php?error';
44)             break;
45)         case 'summary':
46)             $redirect = 'summary.php?error';
47)             break;
48)     }
49)     header('Location: '.$redirect);
50)     die();
51) }
52) 
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

53) $redirect = NULL;
54) if (isset($_REQUEST['form'])) {
55)     switch ($_REQUEST['form']) {
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

56)         case 'start':
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

57)             $number = '';
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

58)             if (isset($_REQUEST['phone']) && trim($_REQUEST['phone']) != '') {
Bernd Wurst Ergänze lokale Vorwahl bei...

Bernd Wurst authored 6 years ago

59)                 $number = trim($_REQUEST['phone']);
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

60)             }
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

61)             $name = '';
62)             if (isset($_REQUEST['name']) && trim($_REQUEST['name']) != '') {
63)                 $name = trim($_REQUEST['name']);
64)             }
65) 
Bernd Wurst Änderungen Stand 2019

Bernd Wurst authored 4 years ago

66)             if (substr($number, 0, 1) != 0 && substr($number, 0, 3) != '+49') {
Bernd Wurst Ergänze lokale Vorwahl bei...

Bernd Wurst authored 6 years ago

67)                 $number = '07192'.$number;
68)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

69) 
Bernd Wurst Fange ungültige Telefonnumm...

Bernd Wurst authored 1 year ago

70)             $number = format_number_national($number);
71) 
72)             if (! $number || !$name || !format_number_api($number)) {
73)                 $redirect = 'index.php?error&num='.urlencode($number).'&name='.urlencode($name);
74)                 break;
75)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

76) 
Bernd Wurst bestehende Kunden über die...

Bernd Wurst authored 4 years ago

77)             $_SESSION['name'] = htmlspecialchars($name);
Bernd Wurst anmerkungen ermöglicht

Bernd Wurst authored 6 years ago

78)             $_SESSION['phone'] = htmlspecialchars($number);
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

79)             if (isset($_REQUEST['save']) && $_REQUEST['save'] == 'yes' && $_SESSION['mode'] != 'local') {
Bernd Wurst bestehende Kunden über die...

Bernd Wurst authored 4 years ago

80)                 setcookie('NAME', $name, time() + 24*3600*500, "");
Bernd Wurst Cookie löschbar, Datenschut...

Bernd Wurst authored 6 years ago

81)                 setcookie('NUMBER', $number, time() + 24*3600*500, "");
82)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

83) 
Bernd Wurst Dateinamen geändert

Bernd Wurst authored 6 years ago

84)             $redirect = 'address.php';
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

85)             break;
86) 
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

87)         case 'address':
Bernd Wurst frage E-Mail-Adresse ab

Bernd Wurst authored 1 year ago

88)             $fields = array("firma", "fname", "lname", "address", "zip", "city", "email");
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

89)             foreach ($fields as $f) {
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

90)                 if (isset($_REQUEST[$f]) && trim($_REQUEST[$f]) != '') {
Bernd Wurst anmerkungen ermöglicht

Bernd Wurst authored 6 years ago

91)                     $_SESSION[$f] = trim(htmlspecialchars($_REQUEST[$f]));
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

92)                 } else {
93)                     if (! isset($_SESSION[$f])) {
94)                         $_SESSION[$f] = '';
95)                     }
96)                 }
97)             }
Bernd Wurst Fehlermeldungen auf BS4 por...

Bernd Wurst authored 6 years ago

98)             if ($_SESSION['lname'] == '') {
99)                 $redirect = 'address.php?error';
100)                 break;
101)             }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

102)             if (!isset($_SESSION['kundennr']) || !$_SESSION['kundennr']) {
103)                 $_SESSION['kundennr'] = erstelle_kunde($_SESSION);
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

104)                 if (!$_SESSION['kundennr']) {
105)                     showError();
106)                     }
Bernd Wurst frage E-Mail-Adresse ab

Bernd Wurst authored 1 year ago

107)             } else {
108)                 if (isset($_SESSION['email']) && $_SESSION['email']) {
109)                     update_kunde($_SESSION['kundennr'], ['email' => $_SESSION['email']]);
110)                 }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

111)             }
112) 
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

113)             if ($_SESSION['mode'] == 'local') {
114)                 $_SESSION['angeliefert'] = true;
115)                 $redirect = 'gitterbox.php';
116)             } elseif (isset($_SESSION['angeliefert'])) {
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

117)                 if ($_SESSION['angeliefert']) {
118)                     $redirect = 'gitterbox.php';
119)                 } else {
120)                     $redirect = 'gitterbox_spaeter.php';
121)                 }
122)             } else {
123)                 $redirect = 'anlieferung.php';
124)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

125)             break;
126) 
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

127)         case 'anlieferung':
128)             if (isset($_REQUEST['schonda'])) {
129)                 $_SESSION['angeliefert'] = true;
130)                 $redirect = 'gitterbox.php';
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

131)             }
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

132)             if (isset($_REQUEST['kommtnoch'])) {
133)                 $_SESSION['angeliefert'] = false;
134)                 $redirect = 'gitterbox_spaeter.php';
135)             }
136)             break;
137)         case 'gitterbox':
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

138)             if (isset($_REQUEST['lieferart'])) {
139)                 if ($_REQUEST['lieferart'] == 'gitterbox') {
140)                     $_SESSION['lieferart'] = 'gitterbox';
Bernd Wurst anmerkungen ermöglicht

Bernd Wurst authored 6 years ago

141)                     $_SESSION['gbcount'] = htmlspecialchars($_REQUEST['gbcount']);
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

142)                 }
143)                 if ($_REQUEST['lieferart'] == 'anhaenger') {
144)                     $_SESSION['lieferart'] = 'anhaenger';
Bernd Wurst anmerkungen ermöglicht

Bernd Wurst authored 6 years ago

145)                     $_SESSION['kennz'] = htmlspecialchars($_REQUEST['kennz']);
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

146)                     if ($_SESSION['angeliefert'] === false && ! $_SESSION['kennz']) {
147)                         $redirect = 'gitterbox_spaeter.php?error';
148)                         break;
149)                     }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

150)                 }
151)             }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

152)             $redirect = 'obstart.php';
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

153)             break;
154) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

155)          case 'obstart':
156)             $_SESSION['obstart'] = $_REQUEST['obstart'];
157)             $redirect = 'gebrauchte.php';
158) 
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

159)          case 'gebrauchte':
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

160)             if (isset($_REQUEST['kartonsja'])) {
161)                 $_SESSION['kartons'] = true;
162)             } 
163)             if (isset($_REQUEST['kartonsnein'])) {
164)                 $_SESSION['kartons'] = false;
165)             }
166) 
Bernd Wurst Dateinamen geändert

Bernd Wurst authored 6 years ago

167)             $redirect = 'auftrag.php';
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

168)             break;
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

169)          case 'auftrag':
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

170)             if (isset($_REQUEST['3er'])) {
171)                 $_SESSION['neue'] = '3er';
172)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

173)             if (isset($_REQUEST['5er'])) {
174)                 $_SESSION['neue'] = '5er';
175)             }
176)             if (isset($_REQUEST['10er'])) {
177)                 $_SESSION['neue'] = '10er';
178)             }
179)             if (isset($_REQUEST['submit']) && isset($_REQUEST['sonstiges']) && $_REQUEST['sonstiges'] != '') {
180)                 $_SESSION['neue'] = 'sonstiges';
Bernd Wurst anmerkungen ermöglicht

Bernd Wurst authored 6 years ago

181)                 $_SESSION['sonstiges'] = htmlspecialchars($_REQUEST['sonstiges']);
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

182)             }
183) 
184) 
Bernd Wurst Dateinamen geändert

Bernd Wurst authored 6 years ago

185)             $redirect = 'frischsaft.php';
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

186)             break;
187) 
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

188)          case 'frischsaft':
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

189)             if (isset($_REQUEST['frischsaftnein'])) {
190)                 $_SESSION['frischsaft'] = 0;
191)             } elseif (isset($_REQUEST['frischsaft'])) {
Bernd Wurst anmerkungen ermöglicht

Bernd Wurst authored 6 years ago

192)                 $_SESSION['frischsaft'] = htmlspecialchars($_REQUEST['frischsaft']);
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

193)             }
194) 
Bernd Wurst Dateinamen geändert

Bernd Wurst authored 6 years ago

195)             $redirect = 'summary.php';
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

196)             break;
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

197)         case 'summary':
Bernd Wurst anmerkungen ermöglicht

Bernd Wurst authored 6 years ago

198)             if (isset($_REQUEST['anmerkungen'])) {
199)                 $_SESSION['anmerkungen'] = htmlspecialchars($_REQUEST['anmerkungen']);
200)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

201) 
202)             $_SESSION['complete'] = true;
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

203)             $redirect = 'finish.php';
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

204)             break;
205) 
206)     }
207) }
208) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

209) /*
210)  * Um das Speichern in der API kümmern wir uns, wenn Kundendaten, Obstart und grundsätzliche Auftragsdaten feststehen
211)  */
212) if (isset($_SESSION['neue'])) {
213)     // Bevor dieses Datenfeld vorhanden ist, macht Speichern keinen Sinn
214)     $auftrag = [];
215)     /* Herunterladen bringt nichts, da wir einfach immer unsere bekannten Daten rein schieben. Parallelität ist nicht gewünscht
216)      * if (isset($auftrag['id'])) {
217)         // Auftrag ist schon in der API, aktuellen Stand herunter laden
218)         $auftrag = api_call('GET', 'orders/'.$auftrag['id']);
219)     }*/
220) 
221)     // customer
222)     if (isset($_SESSION['kundennr'])) {
223)         $auftrag['customer'] = $_SESSION['kundennr'];
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

224)         $auftrag['notificationName'] = $_SESSION['name'];
225)         $auftrag['notificationPhone'] = $_SESSION['phone'];
Bernd Wurst Speichere (neu eingegebene)...

Bernd Wurst authored 1 year ago

226)         $auftrag['notificationEmail'] = isset($_SESSION['email']) ? $_SESSION['email'] : null;
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

227)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

228)     // fruitType
229)     $ret = api_call('GET', 'fruitTypes');
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

230)     $ret = $ret['data'];
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

231)     foreach ($ret as $fruit) {
232)         if ($_SESSION['obstart'] == $fruit['label']) {
233)             $auftrag['fruitType'] = $fruit['id'];
234)         }
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

235)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

236)     // containers
237)     if (isset($_SESSION['lieferart']) && $_SESSION['lieferart'] == 'gitterbox' && isset($_SESSION['gbcount']) && $_SESSION['gbcount'] > 0) {
238)         $auftrag['containers'] = array_fill(0, $_SESSION['gbcount'], [ "type" => "box", "weight" => 400 ]);
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

239)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

240)     if (isset($_SESSION['lieferart']) && $_SESSION['lieferart'] == 'anhaenger') {
241)         if (!isset($_SESSION['kennz'])) {
242)             $_SESSION['kennz'] = null;
243)         }
244)         $auftrag['containers'] = [
245)             ["type" => "trailer",
246)             "weight" => 0,
247)             "label" => $_SESSION['kennz']]
248)         ];
249)     }
250)     // usedPackages
251)     if (isset($_SESSION['kartons'])) {
252)         $auftrag['usedPackages'] = (bool) $_SESSION['kartons'];
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

253)     }
254) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

255)     // plannedPackagings
256)     if (isset($_SESSION['neue'])) {
257)         if ($_SESSION['neue'] == 'sonstiges') {
258)             $auftrag['notes'] = (isset($_SESSION['anmerkungen']) ? $_SESSION['anmerkungen'] . "\n\n" : '') . $_SESSION["sonstiges"];
Bernd Wurst Bugfix: Frischsaft wurde ni...

Bernd Wurst authored 1 year ago

259)         }
260)         $plan = [];
261)         $ret = api_call('GET', 'packageTypes');
262)         $ret = $ret['data'];
263)         foreach ($ret as $pt) {
264)             if ($pt['label'] == $_SESSION['neue']) {
265)                 $plan[] = [ "packageType" => $pt['id'],
266)                             "rest" => true ];
267)             }
268)             if ($pt['label'] == 'frischsaft' && isset($_SESSION['frischsaft']) && $_SESSION['frischsaft'] > 0) {
269)                 $plan[] = [ "packageType" => $pt['id'],
270)                             "count" => $_SESSION['frischsaft']];
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

271)             }
272)         }
Bernd Wurst Bugfix: Frischsaft wurde ni...

Bernd Wurst authored 1 year ago

273)         $auftrag['plannedPackagings'] = $plan;
274)         
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

275)     }
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

276) 
277) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

278)     // notes
279)     if (isset($_SESSION['anmerkungen']) && $_SESSION['anmerkungen'] != '') {
280)         $auftrag['notes'] = $_SESSION['anmerkungen'];
281)         $auftrag['notes'] = $_SESSION['anmerkungen'] . (isset($_SESSION["sonstiges"]) ? "\n\n" . $_SESSION["sonstiges"] : '');
282)     }
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

283) 
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

284)     // Auftrag lokal speichern
285)     $filename = "../data/".date('Y').'/'.time().'.json';
286)     if (isset($_SESSION['orderid'])) {
287)         $filename = "../data/".date('Y').'/'.$_SESSION['orderid'].'-'.time().'.json';
288)     }
289)     @file_put_contents($filename, json_encode($auftrag));
290)      if (isset($_SESSION['orderid']) && $_SESSION['orderid']) {
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

291)         // update
292)         $ret = api_call('PUT', 'orders/'.$_SESSION['orderid'], $auftrag);
293)     } else {
294)         // neu
295)         $ret = api_call('POST', 'orders', $auftrag);
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

296)     }
297)     if ($ret['status_code'] >= 400) {
298)         foreach ($ret['data']['validation_errors'] as $item) {
Bernd Wurst Fange ungültige Telefonnumm...

Bernd Wurst authored 1 year ago

299)             $_SESSION['warnings'][] = $item['key'].': '.$item['message'];
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

300)         }
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

301)         return showError();
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

302)     }
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

303)     $ret = $ret['data'];
304)     $_SESSION['orderid'] = $ret['id'];
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

305) 
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

306)     if (!isset($ret['id'])) {
307)         echo "Es gabe einen Fehler beim Abspeichern des Auftrags. Wir bitten dies zu entschuldigen und einen Papierauftrag auszufüllen.";
308)         file_put_contents("../error.log", 
309)             date("Y-m-d H:i:s") . ': '.json_encode($auftrag).
310)             print_r($ret, true).'\n', FILE_APPEND | LOCK_EX);
311)         die();
312)     }
313) 
314)     // Auftrag lokal speichern
315)     if (isset($_SESSION['orderid'])) {
316)         $filename = "../data/".date('Y').'/'.$_SESSION['orderid'].'-'.time().'.json';
317)     }
318)     @file_put_contents($filename, json_encode($auftrag));
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

319)     /*
320)     if ($ret['status'] == 'error') {
321)         echo 'Es gibt ein Problem beim Speichern des Auftrags. Bitte verwenden Sie diesmal einen Papier-Auftrag.';
322)         die();
323)     }
324)     */
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

325) }
326)