3df422dd614c21e64c5fb46b5931f15af7ae0074
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 3 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 9 months 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 3 years ago

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

Bernd Wurst authored 3 years ago

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

Bernd Wurst authored 3 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 9 months 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 3 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 3 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 9 months 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 3 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 3 years ago

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

Bernd Wurst authored 3 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 Erste Version, die über die...

Bernd Wurst authored 3 years ago

88)             $fields = array("firma", "fname", "lname", "address", "zip", "city");
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 3 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 9 months ago

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

Bernd Wurst authored 9 months ago

104)                 if (!$_SESSION['kundennr']) {
105)                     showError();
106)                     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

107)             }
108) 
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 3 years ago

109)             if ($_SESSION['mode'] == 'local') {
110)                 $_SESSION['angeliefert'] = true;
111)                 $redirect = 'gitterbox.php';
112)             } elseif (isset($_SESSION['angeliefert'])) {
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

113)                 if ($_SESSION['angeliefert']) {
114)                     $redirect = 'gitterbox.php';
115)                 } else {
116)                     $redirect = 'gitterbox_spaeter.php';
117)                 }
118)             } else {
119)                 $redirect = 'anlieferung.php';
120)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

121)             break;
122) 
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

123)         case 'anlieferung':
124)             if (isset($_REQUEST['schonda'])) {
125)                 $_SESSION['angeliefert'] = true;
126)                 $redirect = 'gitterbox.php';
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

127)             }
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

128)             if (isset($_REQUEST['kommtnoch'])) {
129)                 $_SESSION['angeliefert'] = false;
130)                 $redirect = 'gitterbox_spaeter.php';
131)             }
132)             break;
133)         case 'gitterbox':
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

134)             if (isset($_REQUEST['lieferart'])) {
135)                 if ($_REQUEST['lieferart'] == 'gitterbox') {
136)                     $_SESSION['lieferart'] = 'gitterbox';
Bernd Wurst anmerkungen ermöglicht

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

142)                     if ($_SESSION['angeliefert'] === false && ! $_SESSION['kennz']) {
143)                         $redirect = 'gitterbox_spaeter.php?error';
144)                         break;
145)                     }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

146)                 }
147)             }
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 6 years ago

149)             break;
150) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

151)          case 'obstart':
152)             $_SESSION['obstart'] = $_REQUEST['obstart'];
153)             $redirect = 'gebrauchte.php';
154) 
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

155)          case 'gebrauchte':
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

156)             if (isset($_REQUEST['kartonsja'])) {
157)                 $_SESSION['kartons'] = true;
158)             } 
159)             if (isset($_REQUEST['kartonsnein'])) {
160)                 $_SESSION['kartons'] = false;
161)             }
162) 
Bernd Wurst Dateinamen geändert

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

164)             break;
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 9 months ago

166)             if (isset($_REQUEST['3er'])) {
167)                 $_SESSION['neue'] = '3er';
168)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

178)             }
179) 
180) 
Bernd Wurst Dateinamen geändert

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

182)             break;
183) 
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

184)          case 'frischsaft':
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

189)             }
190) 
Bernd Wurst Dateinamen geändert

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

192)             break;
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

194)             if (isset($_REQUEST['anmerkungen'])) {
195)                 $_SESSION['anmerkungen'] = htmlspecialchars($_REQUEST['anmerkungen']);
196)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

197) 
198)             $_SESSION['complete'] = true;
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 6 years ago

200)             break;
201) 
202)     }
203) }
204) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

220)         $auftrag['notificationName'] = $_SESSION['name'];
221)         $auftrag['notificationPhone'] = $_SESSION['phone'];
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 3 years ago

222)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

226)     foreach ($ret as $fruit) {
227)         if ($_SESSION['obstart'] == $fruit['label']) {
228)             $auftrag['fruitType'] = $fruit['id'];
229)         }
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 3 years ago

230)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 3 years ago

234)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 3 years ago

248)     }
249) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

250)     // plannedPackagings
251)     if (isset($_SESSION['neue'])) {
252)         if ($_SESSION['neue'] == 'sonstiges') {
253)             $auftrag['notes'] = (isset($_SESSION['anmerkungen']) ? $_SESSION['anmerkungen'] . "\n\n" : '') . $_SESSION["sonstiges"];
Bernd Wurst Bugfix: Frischsaft wurde ni...

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

266)             }
267)         }
Bernd Wurst Bugfix: Frischsaft wurde ni...

Bernd Wurst authored 9 months ago

268)         $auftrag['plannedPackagings'] = $plan;
269)         
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 3 years ago

271) 
272) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

273)     // notes
274)     if (isset($_SESSION['anmerkungen']) && $_SESSION['anmerkungen'] != '') {
275)         $auftrag['notes'] = $_SESSION['anmerkungen'];
276)         $auftrag['notes'] = $_SESSION['anmerkungen'] . (isset($_SESSION["sonstiges"]) ? "\n\n" . $_SESSION["sonstiges"] : '');
277)     }
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 3 years ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

286)         // update
287)         $ret = api_call('PUT', 'orders/'.$_SESSION['orderid'], $auftrag);
288)     } else {
289)         // neu
290)         $ret = api_call('POST', 'orders', $auftrag);
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 3 years ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 3 years ago

320) }
321)