Bernd Wurst commited on 2020-06-07 07:15:34
Zeige 12 geänderte Dateien mit 158 Einfügungen und 92 Löschungen.
... | ... |
@@ -1,4 +1,6 @@ |
1 | 1 |
<?php |
2 |
+require_once "lib/api.php"; |
|
3 |
+require_once "lib/auftrag.php"; |
|
2 | 4 |
session_start(); |
3 | 5 |
|
4 | 6 |
if (!isset($_SESSION['phone']) || (!isset($_SESSION['name']) && !isset($_SESSION['firma']) && !isset($_SESSION['lname']))) { |
... | ... |
@@ -6,55 +8,6 @@ if (!isset($_SESSION['phone']) || (!isset($_SESSION['name']) && !isset($_SESSION |
6 | 8 |
die(); |
7 | 9 |
} |
8 | 10 |
|
9 |
-function suche_kunde($name, $number) { |
|
10 |
- global $content; |
|
11 |
- if (! $number) { |
|
12 |
- return NULL; |
|
13 |
- } |
|
14 |
- $data = array("name" => $name, "telefon" => $number); |
|
15 |
- |
|
16 |
- $curl = curl_init(); |
|
17 |
- |
|
18 |
- curl_setopt_array($curl, array( |
|
19 |
- CURLOPT_URL => "https://api.mosterei-wurst.de/api/v1/kunde/pruefen", |
|
20 |
- CURLOPT_RETURNTRANSFER => true, |
|
21 |
- CURLOPT_ENCODING => "", |
|
22 |
- CURLOPT_MAXREDIRS => 10, |
|
23 |
- CURLOPT_TIMEOUT => 30, |
|
24 |
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, |
|
25 |
- CURLOPT_HTTPHEADER => array("Content-Type: application/json"), |
|
26 |
- CURLOPT_CUSTOMREQUEST => "POST")); |
|
27 |
- |
|
28 |
- curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); |
|
29 |
- |
|
30 |
- $response = curl_exec($curl); |
|
31 |
- $err = curl_error($curl); |
|
32 |
- |
|
33 |
- $ret = @json_decode($response, true); |
|
34 |
- if (!$ret || $ret["status"] == 'error' || !$ret["kundennr"]) { |
|
35 |
- if (isset($ret["errno"]) && $ret["errno"] == "429") { |
|
36 |
- $content .= '<div class="card text-white bg-danger mb-3"> |
|
37 |
- <div class="card-header">Fehler</div> |
|
38 |
- <div class="card-body">Die Suche anhand der Telefonnummer wurde verweigert, weil zu viele Zugriffe auf diese Funktion vorgenommen wurden. Bitte geben Sie Ihre Daten neu ein oder versuchen Sie es in wenigen Minuten noch einmal.</div> |
|
39 |
- </div>'; |
|
40 |
- } |
|
41 |
- return null; |
|
42 |
- } |
|
43 |
- |
|
44 |
- return $ret; |
|
45 |
- |
|
46 |
- /* |
|
47 |
- $kundenliste = json_decode(file_get_contents('../kunden.json'), TRUE); |
|
48 |
- foreach ($kundenliste as $k) { |
|
49 |
- foreach ($k['kontakt'] as $kon) { |
|
50 |
- if ($kon['wert'] == $number) { |
|
51 |
- return $k; |
|
52 |
- } |
|
53 |
- } |
|
54 |
- } |
|
55 |
- */ |
|
56 |
-} |
|
57 |
- |
|
58 | 11 |
|
59 | 12 |
$content = ''; |
60 | 13 |
$kunde = null; |
... | ... |
@@ -64,6 +17,9 @@ if (isset($_SESSION['name'])) { |
64 | 17 |
if ($kunde) { |
65 | 18 |
$fields = array("kundennr" => "kundennr", "firma" => "firma", "fname" => "vorname", "lname" => "nachname", "address" => "adresse", "zip" => "plz", "city" => "ort"); |
66 | 19 |
foreach ($fields as $sesskey => $arrkey) { |
20 |
+ if (isset($_SESSION[$sesskey]) && $_SESSION[$sesskey] != '' && $_SESSION[$sesskey] != 'bekannt') { |
|
21 |
+ $kunde[$arrkey] = $_SESSION[$sesskey]; |
|
22 |
+ } |
|
67 | 23 |
if (isset($kunde[$arrkey])) { |
68 | 24 |
$_SESSION[$sesskey] = $kunde[$arrkey]; |
69 | 25 |
} |
... | ... |
@@ -4,6 +4,11 @@ if (isset($_SESSION['mode']) && $_SESSION['mode'] == 'local') { |
4 | 4 |
header("Location: gitterbox.php"); |
5 | 5 |
die(); |
6 | 6 |
} |
7 |
+// hardcoded, Vorabanmeldung ist momentan nicht vorgesehen |
|
8 |
+header("Location: gitterbox.php"); |
|
9 |
+die(); |
|
10 |
+ |
|
11 |
+ |
|
7 | 12 |
|
8 | 13 |
$headline = 'Anlieferung'; |
9 | 14 |
$content = ''; |
... | ... |
@@ -1,9 +1,24 @@ |
1 |
+var idleTimeout = 2*60*1000; // 2 minuten |
|
2 |
+ |
|
1 | 3 |
$( function () { |
2 | 4 |
$('#allesloeschen-dialog').on('show.bs.modal', function(e) { |
3 | 5 |
$(this).find('.btn-ok').attr('href', $(e.relatedTarget).prop('href')); |
4 | 6 |
}); |
5 | 7 |
}); |
8 |
+ |
|
9 |
+function idleAlert() { |
|
10 |
+ $('#idle-dialog').modal({ show: true}); |
|
11 |
+ // Der Dialog wird nur angezeigt. Automatischer Reset passiert dann über den Kiosk-Browser |
|
12 |
+} |
|
13 |
+ |
|
6 | 14 |
$(document).ready( function () { |
7 | 15 |
$('body').fadeIn(200); |
8 | 16 |
document.body.scrollIntoView(); |
17 |
+ if ($('input[name=form]').val() != 'start') { |
|
18 |
+ // Wenn nicht auf der Startseite, dann nach der Wartezeit fragen wie man weiter machen möchte. |
|
19 |
+ setTimeout(idleAlert, idleTimeout); |
|
20 |
+ } |
|
21 |
+ $('#dismiss-idle').click( function() { |
|
22 |
+ setTimeout(idleAlert, idleTimeout); |
|
23 |
+ }); |
|
9 | 24 |
}); |
... | ... |
@@ -31,7 +31,7 @@ $content = '<p>Der Verarbeitungscode lautet: '.$_REQUEST['handle'].'</p> |
31 | 31 |
if (substr($number, 0, 5) == '+49 1') { |
32 | 32 |
$content .= '<p>Wenn Sie möchten, können Sie den Link auch per SMS erhalten.</p> |
33 | 33 |
<div class="form-group form-group-lg"> |
34 |
- <div><a class="btn btn-outline-secondary btn-lg" href="smsauftrag.php">Diesen Link per SMS erhalten</a></div> |
|
34 |
+ <div><a class="btn btn-outline-secondary btn-lg" href="smsauftrag.php?handle='.$_REQUEST['handle'].'">Diesen Link per SMS erhalten</a></div> |
|
35 | 35 |
</div> |
36 | 36 |
'; |
37 | 37 |
} |
... | ... |
@@ -0,0 +1 @@ |
1 |
+Require all denied |
... | ... |
@@ -0,0 +1,36 @@ |
1 |
+<?php |
|
2 |
+ |
|
3 |
+require_once dirname(__DIR__).'/config.php'; |
|
4 |
+ |
|
5 |
+$curl = curl_init(); |
|
6 |
+ |
|
7 |
+curl_setopt_array($curl, array( |
|
8 |
+ CURLOPT_RETURNTRANSFER => true, |
|
9 |
+ CURLOPT_ENCODING => "", |
|
10 |
+ CURLOPT_MAXREDIRS => 10, |
|
11 |
+ CURLOPT_TIMEOUT => 30, |
|
12 |
+ CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, |
|
13 |
+ CURLOPT_HTTPHEADER => array("Content-Type: application/json"), |
|
14 |
+ CURLOPT_CUSTOMREQUEST => "POST")); |
|
15 |
+ |
|
16 |
+ |
|
17 |
+function api_call($path, $data) |
|
18 |
+{ |
|
19 |
+ global $curl; |
|
20 |
+ global $config; |
|
21 |
+ |
|
22 |
+ $data['authtoken'] = $config['api_token']; |
|
23 |
+ curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); |
|
24 |
+ curl_setopt($curl, CURLOPT_URL, $config['api_url'].$path); |
|
25 |
+ |
|
26 |
+ $response = curl_exec($curl); |
|
27 |
+ $err = curl_error($curl); |
|
28 |
+ |
|
29 |
+ $ret = @json_decode($response, true); |
|
30 |
+ if (!isset($ret['status']) || $ret['status'] == 'error') { |
|
31 |
+ echo $response; |
|
32 |
+ } |
|
33 |
+ return $ret; |
|
34 |
+} |
|
35 |
+ |
|
36 |
+ |
... | ... |
@@ -0,0 +1,65 @@ |
1 |
+<?php |
|
2 |
+ |
|
3 |
+ |
|
4 |
+function suche_kunde($name, $number) { |
|
5 |
+ global $content; |
|
6 |
+ if (! $number) { |
|
7 |
+ return NULL; |
|
8 |
+ } |
|
9 |
+ $data = array("name" => $name, "telefon" => $number); |
|
10 |
+ |
|
11 |
+ $ret = api_call('kunde/pruefen', $data); |
|
12 |
+ |
|
13 |
+ if (!$ret || $ret["status"] == 'error' || !$ret["kundennr"]) { |
|
14 |
+ if (isset($ret["errno"]) && $ret["errno"] == "429") { |
|
15 |
+ $content .= '<div class="card text-white bg-danger mb-3"> |
|
16 |
+ <div class="card-header">Fehler</div> |
|
17 |
+ <div class="card-body">Die Suche anhand der Telefonnummer wurde verweigert, weil zu viele Zugriffe auf diese Funktion vorgenommen wurden. Bitte geben Sie Ihre Daten neu ein oder versuchen Sie es in wenigen Minuten noch einmal.</div> |
|
18 |
+ </div>'; |
|
19 |
+ } |
|
20 |
+ return null; |
|
21 |
+ } |
|
22 |
+ |
|
23 |
+ return $ret; |
|
24 |
+ |
|
25 |
+ /* |
|
26 |
+ $kundenliste = json_decode(file_get_contents('../kunden.json'), TRUE); |
|
27 |
+ foreach ($kundenliste as $k) { |
|
28 |
+ foreach ($k['kontakt'] as $kon) { |
|
29 |
+ if ($kon['wert'] == $number) { |
|
30 |
+ return $k; |
|
31 |
+ } |
|
32 |
+ } |
|
33 |
+ } |
|
34 |
+ */ |
|
35 |
+} |
|
36 |
+ |
|
37 |
+ |
|
38 |
+require_once('vendor/autoload.php'); |
|
39 |
+ |
|
40 |
+function format_number_national($number) { |
|
41 |
+ $phoneNumberUtil = \libphonenumber\PhoneNumberUtil::getInstance(); |
|
42 |
+ try { |
|
43 |
+ $phoneNumber = $phoneNumberUtil->parse($number, 'DE'); |
|
44 |
+ } catch (Exception $e) { |
|
45 |
+ return NULL; |
|
46 |
+ } |
|
47 |
+ if ($phoneNumberUtil->isValidNumber($phoneNumber)) { |
|
48 |
+ return $phoneNumberUtil->format($phoneNumber, \libphonenumber\PhoneNumberFormat::NATIONAL); |
|
49 |
+ } |
|
50 |
+ return NULL; |
|
51 |
+} |
|
52 |
+ |
|
53 |
+function format_number($number) { |
|
54 |
+ $phoneNumberUtil = \libphonenumber\PhoneNumberUtil::getInstance(); |
|
55 |
+ try { |
|
56 |
+ $phoneNumber = $phoneNumberUtil->parse($number, 'DE'); |
|
57 |
+ } catch (Exception $e) { |
|
58 |
+ return NULL; |
|
59 |
+ } |
|
60 |
+ if ($phoneNumberUtil->isValidNumber($phoneNumber)) { |
|
61 |
+ return $phoneNumberUtil->format($phoneNumber, \libphonenumber\PhoneNumberFormat::INTERNATIONAL); |
|
62 |
+ } |
|
63 |
+ return NULL; |
|
64 |
+} |
|
65 |
+ |
... | ... |
@@ -1,9 +1,12 @@ |
1 | 1 |
<?php |
2 |
+require_once "lib/api.php"; |
|
3 |
+require_once "lib/auftrag.php"; |
|
2 | 4 |
session_start(); |
3 | 5 |
|
6 |
+$handle_length = 8; |
|
4 | 7 |
if (! isset($_SESSION['handle']) || !$_SESSION['handle']) { |
5 | 8 |
$random = base64_encode(md5(microtime())); |
6 |
- $_SESSION['handle'] = substr(str_replace(array('+', '=', '/'), '', $random), 0, 5); |
|
9 |
+ $_SESSION['handle'] = substr(str_replace(array('+', '=', '/'), '', $random), 0, $handle_length); |
|
7 | 10 |
$_SESSION['date'] = date('Y-m-d H:i:s.v'); |
8 | 11 |
$_SESSION['complete'] = false; |
9 | 12 |
} |
... | ... |
@@ -31,21 +34,7 @@ if (isset($_REQUEST['form'])) { |
31 | 34 |
$number = '07192'.$number; |
32 | 35 |
} |
33 | 36 |
|
34 |
- require_once('vendor/autoload.php'); |
|
35 |
- |
|
36 |
- function format_number($number) { |
|
37 |
- $phoneNumberUtil = \libphonenumber\PhoneNumberUtil::getInstance(); |
|
38 |
- try { |
|
39 |
- $phoneNumber = $phoneNumberUtil->parse($number, 'DE'); |
|
40 |
- } catch (Exception $e) { |
|
41 |
- return NULL; |
|
42 |
- } |
|
43 |
- if ($phoneNumberUtil->isValidNumber($phoneNumber)) { |
|
44 |
- return $phoneNumberUtil->format($phoneNumber, \libphonenumber\PhoneNumberFormat::NATIONAL); |
|
45 |
- } |
|
46 |
- return NULL; |
|
47 |
- } |
|
48 |
- $number = format_number($number); |
|
37 |
+ $number = format_number_national($number); |
|
49 | 38 |
|
50 | 39 |
$_SESSION['name'] = htmlspecialchars($name); |
51 | 40 |
$_SESSION['phone'] = htmlspecialchars($number); |
... | ... |
@@ -163,24 +152,7 @@ if (isset($_REQUEST['form'])) { |
163 | 152 |
|
164 | 153 |
$data = array("handle" => $_SESSION['handle']); |
165 | 154 |
|
166 |
-$curl = curl_init(); |
|
167 |
- |
|
168 |
-curl_setopt_array($curl, array( |
|
169 |
- CURLOPT_URL => "https://api.mosterei-wurst.de/api/v1/auftrag/lesen", |
|
170 |
- CURLOPT_RETURNTRANSFER => true, |
|
171 |
- CURLOPT_ENCODING => "", |
|
172 |
- CURLOPT_MAXREDIRS => 10, |
|
173 |
- CURLOPT_TIMEOUT => 30, |
|
174 |
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, |
|
175 |
- CURLOPT_HTTPHEADER => array("Content-Type: application/json"), |
|
176 |
- CURLOPT_CUSTOMREQUEST => "POST")); |
|
177 |
- |
|
178 |
-curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); |
|
179 |
- |
|
180 |
-$response = curl_exec($curl); |
|
181 |
-$err = curl_error($curl); |
|
182 |
- |
|
183 |
-$ret = @json_decode($response, true); |
|
155 |
+$ret = api_call('auftrag/lesen', $data); |
|
184 | 156 |
|
185 | 157 |
if (!isset($ret['auftrag'])) { |
186 | 158 |
echo 'Es gibt ein Problem beim Speichern der Auftragsdaten. Bitte wenden Sie sich persönlich an uns oder verwenden Sie einen Papierauftrag.'; |
... | ... |
@@ -200,6 +172,7 @@ foreach ($addrfields as $sesskey => $apikey) { |
200 | 172 |
$auftrag['kundendaten'][$apikey] = $_SESSION[$sesskey]; |
201 | 173 |
} |
202 | 174 |
} |
175 |
+$auftrag['kundendate']['telefon'] = format_number($auftrag['kundendate']['telefon']); |
|
203 | 176 |
|
204 | 177 |
if (count($auftrag['bestellung']) > 1) { |
205 | 178 |
echo 'Diese Bestellung wurde auf anderem Wege an uns übermittelt und kann mit dieser Oberfläche leider nicht verändert werden'; |
... | ... |
@@ -254,13 +227,7 @@ if (isset($_SESSION['complete']) && $_SESSION['complete'] == true) { |
254 | 227 |
$auftrag['status'] = 'bestellt'; |
255 | 228 |
} |
256 | 229 |
|
257 |
-curl_setopt($curl, CURLOPT_URL, "https://api.mosterei-wurst.de/api/v1/auftrag/anlieferung"); |
|
258 |
-curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($auftrag)); |
|
259 |
- |
|
260 |
-$response = curl_exec($curl); |
|
261 |
-$err = curl_error($curl); |
|
262 |
- |
|
263 |
-$ret = @json_decode($response, true); |
|
230 |
+$ret = api_call('auftrag/anlieferung', $auftrag); |
|
264 | 231 |
|
265 | 232 |
if ($ret['status'] == 'error') { |
266 | 233 |
echo 'Es gibt ein Problem beim Speichern des Auftrags. Bitte verwenden Sie diesmal einen Papier-Auftrag.'; |
... | ... |
@@ -80,7 +80,7 @@ $adresse = $_SESSION['fname'].' '.$_SESSION['lname']; |
80 | 80 |
if ($_SESSION['fname'] == 'bekannt') { |
81 | 81 |
$adresse = $_SESSION['lname']; |
82 | 82 |
} |
83 |
-if ($_SESSION['address'] == 'bekannt' || $_SESSION['city'] == 'bekannt') { |
|
83 |
+if ($_SESSION['address'] == 'bekannt' && $_SESSION['city'] == 'bekannt') { |
|
84 | 84 |
$adresse .= '<br><i>Adresse wie beim letzten Besuch</i>'; |
85 | 85 |
} else { |
86 | 86 |
$adresse .= '<br>'.$_SESSION['address'].'<br>'.$_SESSION['zip'].' '.$_SESSION['city']; |
... | ... |
@@ -89,6 +89,24 @@ if ($previous > 0) { |
89 | 89 |
<?php } /* if (basename($_SERVER['PHP_SELF']) != 'finish.php') */ ?> |
90 | 90 |
|
91 | 91 |
</div> |
92 |
+ <div class="modal fade" id="idle-dialog" tabindex="-1" role="dialog" aria-labelledby="Bestaetigung" aria-hidden="true"> |
|
93 |
+ <div class="modal-dialog"> |
|
94 |
+ <div class="modal-content"> |
|
95 |
+ <div class="modal-header"> |
|
96 |
+ <h4 class="modal-title">Weitermachen?</h4> |
|
97 |
+ </div> |
|
98 |
+ |
|
99 |
+ <div class="modal-body"> |
|
100 |
+ <p>An diesem Gerät wurde lange nichts eingegeben. Möchten Sie am laufenden Auftrag weiter machen oder neu beginnen?</p> |
|
101 |
+ </div> |
|
102 |
+ |
|
103 |
+ <div class="modal-footer"> |
|
104 |
+ <button type="button" class="btn btn-primary" data-dismiss="modal" id="dismiss-idle">Weiter machen!</button> |
|
105 |
+ <a class="btn btn-danger btn-ok" href="clear.php<?= (isset($_SESSION['mode']) ? '?mode='.$_SESSION['mode'] : '') ?>">Neu beginnen</a> |
|
106 |
+ </div> |
|
107 |
+ </div> |
|
108 |
+ </div> |
|
109 |
+ </div> |
|
92 | 110 |
|
93 | 111 |
</body> |
94 | 112 |
</html> |
95 | 113 |