78029a3ac56c6c50c35c651803ab9ef217df541c
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 kill idle sessions

Bernd Wurst authored 1 year ago

5) if (isset($_SESSION['last_activity']) && $_SESSION['last_activity'] < time()-(20*60)) {
6)     // Session seit 20 Minuten nicht benutzt
7)     if (isset($_SESSION['kundennr']) || isset($_SESSION['orderid'])) {
8)         // Session hat Inhalt
9)         // Auftrag lokal speichern
10)         $filename = "../data/".date('Y').'/canceledsession-'.time().'.json';
11)         if (isset($_SESSION['orderid'])) {
12)             $filename = "../data/".date('Y').'/canceledsession-'.$_SESSION['orderid'].'-'.time().'.json';
13)         }
14)         @file_put_contents($filename, json_encode($_SESSION));
15)         session_destroy();
16)         session_start();
17)     }
18) }
19) $_SESSION['last_activity'] = time();
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

20) $_SESSION['warnings'] = [];
21) 
22) $_SESSION['angeliefert'] = true;
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 6 years ago

29)     $_SESSION['complete'] = false;
30) }
31) 
Bernd Wurst Änderungen Stand 2019

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 1 year ago

33) function showError()
34) {
35)     switch ($_REQUEST['form']) {
36)         case 'start':
37)                 $redirect = 'index.php?error&num='.urlencode($number).'&name='.urlencode($name);
38)                 break;
39)         case 'address':
40)                 $redirect = 'address.php?error';
41)                 break;
42)         case 'anlieferung':
43)                 $redirect = 'anlieferung.php?error';
44)                 break;
45)         case 'gitterbox':
46)             $redirect = 'gitterbox.php?error';
47)             break;
48)         case 'obstart':
49)             $redirect = 'obstart.php?error';
50)             break;
51)         case 'gebrauchte':
52)             $redirect = 'gebrauchte.php?error';
53)             break;
54)         case 'auftrag':
55)             $redirect = 'auftrag.php?error';
56)             break;
57)          case 'frischsaft':
58)             $redirect = 'frischsaft.php?error';
59)             break;
60)         case 'summary':
61)             $redirect = 'summary.php?error';
62)             break;
63)     }
64)     header('Location: '.$redirect);
65)     die();
66) }
67) 
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

68) $redirect = NULL;
69) if (isset($_REQUEST['form'])) {
70)     switch ($_REQUEST['form']) {
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 4 years ago

76)             $name = '';
77)             if (isset($_REQUEST['name']) && trim($_REQUEST['name']) != '') {
78)                 $name = trim($_REQUEST['name']);
79)             }
80) 
Bernd Wurst Änderungen Stand 2019

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 6 years ago

82)                 $number = '07192'.$number;
83)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 1 year ago

85)             $number = format_number_national($number);
86) 
87)             if (! $number || !$name || !format_number_api($number)) {
88)                 $redirect = 'index.php?error&num='.urlencode($number).'&name='.urlencode($name);
89)                 break;
90)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

98) 
Bernd Wurst Dateinamen geändert

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

100)             break;
101) 
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

107)                 } else {
108)                     if (! isset($_SESSION[$f])) {
109)                         $_SESSION[$f] = '';
110)                     }
111)                 }
112)             }
Bernd Wurst Fehlermeldungen auf BS4 por...

Bernd Wurst authored 6 years ago

113)             if ($_SESSION['lname'] == '') {
114)                 $redirect = 'address.php?error';
115)                 break;
116)             }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 1 year ago

119)                 if (!$_SESSION['kundennr']) {
120)                     showError();
121)                     }
Bernd Wurst frage E-Mail-Adresse ab

Bernd Wurst authored 1 year ago

122)             } else {
123)                 if (isset($_SESSION['email']) && $_SESSION['email']) {
124)                     update_kunde($_SESSION['kundennr'], ['email' => $_SESSION['email']]);
125)                 }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

126)             }
127) 
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

128)             if ($_SESSION['mode'] == 'local') {
129)                 $_SESSION['angeliefert'] = true;
130)                 $redirect = 'gitterbox.php';
131)             } elseif (isset($_SESSION['angeliefert'])) {
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

132)                 if ($_SESSION['angeliefert']) {
133)                     $redirect = 'gitterbox.php';
134)                 } else {
135)                     $redirect = 'gitterbox_spaeter.php';
136)                 }
137)             } else {
138)                 $redirect = 'anlieferung.php';
139)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

140)             break;
141) 
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

142)         case 'anlieferung':
143)             if (isset($_REQUEST['schonda'])) {
144)                 $_SESSION['angeliefert'] = true;
145)                 $redirect = 'gitterbox.php';
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

146)             }
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

147)             if (isset($_REQUEST['kommtnoch'])) {
148)                 $_SESSION['angeliefert'] = false;
149)                 $redirect = 'gitterbox_spaeter.php';
150)             }
151)             break;
152)         case 'gitterbox':
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

153)             if (isset($_REQUEST['lieferart'])) {
154)                 if ($_REQUEST['lieferart'] == 'gitterbox') {
155)                     $_SESSION['lieferart'] = 'gitterbox';
Bernd Wurst anmerkungen ermöglicht

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

157)                 }
158)                 if ($_REQUEST['lieferart'] == 'anhaenger') {
159)                     $_SESSION['lieferart'] = 'anhaenger';
Bernd Wurst anmerkungen ermöglicht

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

161)                     if ($_SESSION['angeliefert'] === false && ! $_SESSION['kennz']) {
162)                         $redirect = 'gitterbox_spaeter.php?error';
163)                         break;
164)                     }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

165)                 }
166)             }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 6 years ago

168)             break;
169) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

170)          case 'obstart':
171)             $_SESSION['obstart'] = $_REQUEST['obstart'];
172)             $redirect = 'gebrauchte.php';
173) 
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

174)          case 'gebrauchte':
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

175)             if (isset($_REQUEST['kartonsja'])) {
176)                 $_SESSION['kartons'] = true;
177)             } 
178)             if (isset($_REQUEST['kartonsnein'])) {
179)                 $_SESSION['kartons'] = false;
180)             }
181) 
Bernd Wurst Dateinamen geändert

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

183)             break;
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 1 year ago

185)             if (isset($_REQUEST['3er'])) {
186)                 $_SESSION['neue'] = '3er';
187)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

188)             if (isset($_REQUEST['5er'])) {
189)                 $_SESSION['neue'] = '5er';
190)             }
191)             if (isset($_REQUEST['10er'])) {
192)                 $_SESSION['neue'] = '10er';
193)             }
194)             if (isset($_REQUEST['submit']) && isset($_REQUEST['sonstiges']) && $_REQUEST['sonstiges'] != '') {
195)                 $_SESSION['neue'] = 'sonstiges';
Bernd Wurst anmerkungen ermöglicht

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

197)             }
198) 
199) 
Bernd Wurst Dateinamen geändert

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

201)             break;
202) 
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

203)          case 'frischsaft':
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

208)             }
209) 
Bernd Wurst Dateinamen geändert

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

211)             break;
Bernd Wurst Spätere Anlieferung eingebaut

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

213)             if (isset($_REQUEST['anmerkungen'])) {
214)                 $_SESSION['anmerkungen'] = htmlspecialchars($_REQUEST['anmerkungen']);
215)             }
Bernd Wurst Initial commit

Bernd Wurst authored 6 years ago

216) 
217)             $_SESSION['complete'] = true;
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 6 years ago

219)             break;
220) 
221)     }
222) }
223) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

224) /*
225)  * Um das Speichern in der API kümmern wir uns, wenn Kundendaten, Obstart und grundsätzliche Auftragsdaten feststehen
226)  */
227) if (isset($_SESSION['neue'])) {
228)     // Bevor dieses Datenfeld vorhanden ist, macht Speichern keinen Sinn
229)     $auftrag = [];
230)     /* Herunterladen bringt nichts, da wir einfach immer unsere bekannten Daten rein schieben. Parallelität ist nicht gewünscht
231)      * if (isset($auftrag['id'])) {
232)         // Auftrag ist schon in der API, aktuellen Stand herunter laden
233)         $auftrag = api_call('GET', 'orders/'.$auftrag['id']);
234)     }*/
235) 
236)     // customer
237)     if (isset($_SESSION['kundennr'])) {
238)         $auftrag['customer'] = $_SESSION['kundennr'];
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 4 years ago

242)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 1 year ago

246)     foreach ($ret as $fruit) {
247)         if ($_SESSION['obstart'] == $fruit['label']) {
248)             $auftrag['fruitType'] = $fruit['id'];
249)         }
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

250)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 4 years ago

254)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

255)     if (isset($_SESSION['lieferart']) && $_SESSION['lieferart'] == 'anhaenger') {
256)         if (!isset($_SESSION['kennz'])) {
257)             $_SESSION['kennz'] = null;
258)         }
259)         $auftrag['containers'] = [
260)             ["type" => "trailer",
261)             "weight" => 0,
262)             "label" => $_SESSION['kennz']]
263)         ];
264)     }
265)     // usedPackages
266)     if (isset($_SESSION['kartons'])) {
267)         $auftrag['usedPackages'] = (bool) $_SESSION['kartons'];
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

268)     }
269) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

270)     // plannedPackagings
271)     if (isset($_SESSION['neue'])) {
272)         if ($_SESSION['neue'] == 'sonstiges') {
273)             $auftrag['notes'] = (isset($_SESSION['anmerkungen']) ? $_SESSION['anmerkungen'] . "\n\n" : '') . $_SESSION["sonstiges"];
Bernd Wurst Bugfix: Frischsaft wurde ni...

Bernd Wurst authored 1 year ago

274)         }
275)         $plan = [];
276)         $ret = api_call('GET', 'packageTypes');
277)         $ret = $ret['data'];
278)         foreach ($ret as $pt) {
279)             if ($pt['label'] == $_SESSION['neue']) {
280)                 $plan[] = [ "packageType" => $pt['id'],
281)                             "rest" => true ];
282)             }
283)             if ($pt['label'] == 'frischsaft' && isset($_SESSION['frischsaft']) && $_SESSION['frischsaft'] > 0) {
284)                 $plan[] = [ "packageType" => $pt['id'],
285)                             "count" => $_SESSION['frischsaft']];
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

286)             }
287)         }
Bernd Wurst Bugfix: Frischsaft wurde ni...

Bernd Wurst authored 1 year ago

288)         $auftrag['plannedPackagings'] = $plan;
289)         
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 4 years ago

291) 
292) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

293)     // notes
294)     if (isset($_SESSION['anmerkungen']) && $_SESSION['anmerkungen'] != '') {
295)         $auftrag['notes'] = $_SESSION['anmerkungen'];
296)         $auftrag['notes'] = $_SESSION['anmerkungen'] . (isset($_SESSION["sonstiges"]) ? "\n\n" . $_SESSION["sonstiges"] : '');
297)     }
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 1 year ago

299)     // Auftrag lokal speichern
300)     $filename = "../data/".date('Y').'/'.time().'.json';
301)     if (isset($_SESSION['orderid'])) {
302)         $filename = "../data/".date('Y').'/'.$_SESSION['orderid'].'-'.time().'.json';
303)     }
304)     @file_put_contents($filename, json_encode($auftrag));
305)      if (isset($_SESSION['orderid']) && $_SESSION['orderid']) {
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

306)         // update
307)         $ret = api_call('PUT', 'orders/'.$_SESSION['orderid'], $auftrag);
308)     } else {
309)         // neu
310)         $ret = api_call('POST', 'orders', $auftrag);
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 4 years ago

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

Bernd Wurst authored 1 year ago

321)     if (!isset($ret['id'])) {
322)         echo "Es gabe einen Fehler beim Abspeichern des Auftrags. Wir bitten dies zu entschuldigen und einen Papierauftrag auszufüllen.";
323)         file_put_contents("../error.log", 
324)             date("Y-m-d H:i:s") . ': '.json_encode($auftrag).
325)             print_r($ret, true).'\n', FILE_APPEND | LOCK_EX);
326)         die();
327)     }
328) 
329)     // Auftrag lokal speichern
330)     if (isset($_SESSION['orderid'])) {
331)         $filename = "../data/".date('Y').'/'.$_SESSION['orderid'].'-'.time().'.json';
332)     }
333)     @file_put_contents($filename, json_encode($auftrag));
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

334)     /*
335)     if ($ret['status'] == 'error') {
336)         echo 'Es gibt ein Problem beim Speichern des Auftrags. Bitte verwenden Sie diesmal einen Papier-Auftrag.';
337)         die();
338)     }
339)     */
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 4 years ago

340) }
341)