cbb3ed9fb852507c932710af2f446ed5083b3517
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 3 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 3 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 3 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 frage E-Mail-Adresse ab

Bernd Wurst authored 8 months 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 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 frage E-Mail-Adresse ab

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

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

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

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

Bernd Wurst authored 3 years ago

226)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

230)     foreach ($ret as $fruit) {
231)         if ($_SESSION['obstart'] == $fruit['label']) {
232)             $auftrag['fruitType'] = $fruit['id'];
233)         }
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)     // containers
236)     if (isset($_SESSION['lieferart']) && $_SESSION['lieferart'] == 'gitterbox' && isset($_SESSION['gbcount']) && $_SESSION['gbcount'] > 0) {
237)         $auftrag['containers'] = array_fill(0, $_SESSION['gbcount'], [ "type" => "box", "weight" => 400 ]);
Bernd Wurst Erste Version, die über die...

Bernd Wurst authored 3 years ago

238)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 3 years ago

252)     }
253) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 3 years ago

275) 
276) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 3 years ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 3 years ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 9 months ago

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

Bernd Wurst authored 3 years ago

324) }
325)