Bernd Wurst commited on 2023-08-05 10:58:24
Zeige 11 geänderte Dateien mit 260 Einfügungen und 157 Löschungen.
... | ... |
@@ -10,21 +10,17 @@ if (!isset($_SESSION['phone']) || (!isset($_SESSION['name']) && !isset($_SESSION |
10 | 10 |
|
11 | 11 |
|
12 | 12 |
$content = ''; |
13 |
-$kunde = null; |
|
14 |
-if (isset($_SESSION['name'])) { |
|
15 |
- $kunde = suche_kunde($_SESSION['name'], $_SESSION['phone']); |
|
13 |
+$_SESSION['lname'] = ucwords($_SESSION['name']); |
|
14 |
+if (strpos($_SESSION['name'], ' ') !== false) { |
|
15 |
+ $parts = explode(" ", ucwords($_SESSION['name'])); |
|
16 |
+ $_SESSION['lname'] = array_pop($parts); |
|
17 |
+ $_SESSION['fname'] = implode(" ", $parts); |
|
16 | 18 |
} |
19 |
+if (isset($_SESSION['name']) && !isset($_SESSION['kundennr'])) { |
|
20 |
+ $kunde = suche_kunde($_SESSION['name'], $_SESSION['phone']); |
|
17 | 21 |
if ($kunde) { |
18 |
- $fields = array("kundennr" => "kundennr", "firma" => "firma", "fname" => "vorname", "lname" => "nachname", "address" => "adresse", "zip" => "plz", "city" => "ort"); |
|
19 |
- foreach ($fields as $sesskey => $arrkey) { |
|
20 |
- if (isset($_SESSION[$sesskey]) && $_SESSION[$sesskey] != '' && $_SESSION[$sesskey] != 'bekannt') { |
|
21 |
- $kunde[$arrkey] = $_SESSION[$sesskey]; |
|
22 |
+ $_SESSION['kundennr'] = $kunde['id']; |
|
22 | 23 |
} |
23 |
- if (isset($kunde[$arrkey])) { |
|
24 |
- $_SESSION[$sesskey] = $kunde[$arrkey]; |
|
25 |
- } |
|
26 |
- } |
|
27 |
- unset($_SESSION['name']); |
|
28 | 24 |
} |
29 | 25 |
|
30 | 26 |
if (isset($_REQUEST['error'])) { |
... | ... |
@@ -34,36 +30,30 @@ if (isset($_REQUEST['error'])) { |
34 | 30 |
</div>'; |
35 | 31 |
} |
36 | 32 |
|
37 |
-if (!$kunde) { |
|
38 |
- $kunde = array('kundennr' => '', 'firma' => '', 'nachname' => '', 'vorname' => '', 'adresse' => '', 'plz' => '', 'ort' => ''); |
|
39 |
- $fields = array("kundennr" => "kundennr", "firma" => "firma", "fname" => "vorname", "lname" => "nachname", "address" => "adresse", "zip" => "plz", "city" => "ort"); |
|
40 | 33 |
|
41 |
- foreach ($fields as $sesskey => $arrkey) { |
|
42 |
- if (isset($_SESSION[$sesskey])) { |
|
43 |
- $kunde[$arrkey] = $_SESSION[$sesskey]; |
|
44 |
- } |
|
45 |
- } |
|
46 |
- if (isset($_SESSION['name'])) { |
|
47 |
- $kunde['nachname'] = ucwords($_SESSION['name']); |
|
48 |
- if (strpos($_SESSION['name'], ' ') !== false) { |
|
49 |
- $parts = explode(" ", ucwords($_SESSION['name'])); |
|
50 |
- $kunde['nachname'] = array_pop($parts); |
|
51 |
- $kunde['vorname'] = implode(" ", $parts); |
|
52 |
- |
|
53 |
- } |
|
54 |
- } |
|
55 |
-} |
|
56 | 34 |
$headline = 'Adresse eingeben'; |
57 |
-if ($kunde['kundennr']) { |
|
35 |
+if (isset($_SESSION['kundennr']) and $_SESSION['kundennr']) { |
|
58 | 36 |
$headline = 'Willkommen zurück!'; |
59 | 37 |
$content .= ' |
60 |
- <p>Schön, wir kennen uns ja schon! Wenn sich an Ihrer Adresse seit Ihrem letztem Besuch etwas geändert hat, ändern Sie es bitte hier. Ansonsten können Sie die Felder so lassen. Aus Datenschutzgründen werden die gespeicherten Daten hier nicht angezeigt.</p> |
|
38 |
+ <p>Schön, wir kennen uns ja schon! Aus Datenschutzgründen wird Ihre Adresse hier nicht angezeigt. Sofern Sie Änderungen an Ihren Kundendaten wünschen, sprechen Sie uns bitte vor Ort darauf an.</p>'; |
|
39 |
+ $content .= ' |
|
40 |
+ <form class="form" action="save.php" method="post"> |
|
41 |
+ <input type="hidden" name="form" value="address">'; |
|
42 |
+ $content .= '<input name="fname" type="hidden" value="'.$_SESSION['fname'].'"> |
|
43 |
+ <input name="lname" type="hidden" value="'.$_SESSION['lname'].'"> |
|
44 |
+ <div class="form-group form-group-lg"> |
|
45 |
+ <div><input class="btn btn-primary btn-lg" type="submit" value="Weiter >"></div> |
|
46 |
+ </div> |
|
47 |
+ </form> |
|
48 |
+ |
|
61 | 49 |
'; |
50 |
+ |
|
51 |
+ |
|
62 | 52 |
} else { |
63 | 53 |
$content .= ' |
64 | 54 |
<p>Bitte geben Sie in diesem Schritt Ihre Adresse ein.</p> |
65 | 55 |
'; |
66 |
-} |
|
56 |
+ |
|
67 | 57 |
|
68 | 58 |
$fields = array("vorname" => "Vorname", |
69 | 59 |
"nachname" => "Nachname", |
... | ... |
@@ -87,15 +77,15 @@ foreach ($fields as $field => $label) { |
87 | 77 |
$content .= ' |
88 | 78 |
<form class="form" action="save.php" method="post"> |
89 | 79 |
<input type="hidden" name="form" value="address">'; |
90 |
-if (isset($kunde['firma']) && $kunde['firma'] != '') { |
|
80 |
+ /*if (isset($kunde['firma']) && $kunde['firma'] != '') { |
|
91 | 81 |
$content .= ' |
92 | 82 |
<div class="form-group form-group-lg row"> |
93 | 83 |
<div class="col-sm-12"><input class="form-control" id="address" name="address" type="text" placeholder="'.$placeholders['firma'].'" autocomplete="street-address" value="'.$contents['firma'].'"></div> |
94 | 84 |
</div>'; |
95 |
-} |
|
85 |
+ }*/ |
|
96 | 86 |
$content .= ' <div class="form-group form-group-lg row"> |
97 |
- <div class="col-sm-6"><input class="form-control" id="fname" name="fname" type="text" placeholder="'.$placeholders['vorname'].'" autocomplete="given-name" value="'.$contents['vorname'].'"></div> |
|
98 |
- <div class="col-sm-6"><input class="form-control" id="lname" name="lname" type="text" placeholder="'.$placeholders['nachname'].'" autocomplete="family-name" value="'.$contents['nachname'].'"></div> |
|
87 |
+ <div class="col-sm-6"><input class="form-control" id="fname" name="fname" type="text" placeholder="'.$placeholders['vorname'].'" autocomplete="given-name" value="'.$_SESSION['fname'].'"></div> |
|
88 |
+ <div class="col-sm-6"><input class="form-control" id="lname" name="lname" type="text" placeholder="'.$placeholders['nachname'].'" autocomplete="family-name" value="'.$_SESSION['lname'].'"></div> |
|
99 | 89 |
</div> |
100 | 90 |
<div class="form-group form-group-lg row"> |
101 | 91 |
<div class="col-sm-12"><input class="form-control" id="address" name="address" type="text" placeholder="'.$placeholders['adresse'].'" autocomplete="street-address" value="'.$contents['adresse'].'"></div> |
... | ... |
@@ -110,6 +100,6 @@ $content .= ' <div class="form-group form-group-lg row"> |
110 | 100 |
</form> |
111 | 101 |
|
112 | 102 |
'; |
113 |
- |
|
103 |
+} |
|
114 | 104 |
|
115 | 105 |
include("template.php"); |
... | ... |
@@ -8,6 +8,10 @@ $(function () { |
8 | 8 |
$('#btn-frischsaftja').addClass('btn-primary'); |
9 | 9 |
$('#details-frischsaft').show(); |
10 | 10 |
$('#frischsaft').focus(); |
11 |
+ val = parseInt($('#frischaft').val(), 10); |
|
12 |
+ if (val > 0 && val <= 150) { |
|
13 |
+ $('#submit').prop('disabled', false); |
|
14 |
+ } |
|
11 | 15 |
event.preventDefault(); |
12 | 16 |
}); |
13 | 17 |
|
... | ... |
@@ -42,8 +42,9 @@ $content .= ' |
42 | 42 |
<p>Welche Karton-Größen sollen wir für Sie herstellen?</p> |
43 | 43 |
|
44 | 44 |
<div class="form-group form-group-lg row"> |
45 |
- <div class="col-sm-6"><input type="submit" class="btn btn-block btn-lg btn-light" id="btn-5er" name="5er" value="'.$gebrauchte.'5er"></div> |
|
46 |
- <div class="col-sm-6"><input type="submit" class="btn btn-block btn-lg btn-light" id="btn-10er" name="10er" value="'.$gebrauchte.'10er"></div> |
|
45 |
+ <div class="col-sm-4 col-xs-12"><input type="submit" class="btn btn-block btn-lg btn-light" id="btn-3er" name="3er" value="'.$gebrauchte.'3er"></div> |
|
46 |
+ <div class="col-sm-4 col-xs-12"><input type="submit" class="btn btn-block btn-lg btn-light" id="btn-5er" name="5er" value="'.$gebrauchte.'5er"></div> |
|
47 |
+ <div class="col-sm-4 col-xs-12"><input type="submit" class="btn btn-block btn-lg btn-light" id="btn-10er" name="10er" value="'.$gebrauchte.'10er"></div> |
|
47 | 48 |
</div> |
48 | 49 |
<div class="form-group form-group-lg"> |
49 | 50 |
<label for="sonstiges">Falls obiges nicht zutrifft, beschreiben Sie bitte hier Ihren Wunsch.</label> |
... | ... |
@@ -18,7 +18,11 @@ $number = format_number($_SESSION['phone']); |
18 | 18 |
|
19 | 19 |
|
20 | 20 |
$headline = 'Vielen Dank für Ihren Auftrag!'; |
21 |
-$url = 'https://auftrag.mosterei-wurst.de/view/'.$_REQUEST['handle']; |
|
21 |
+if (isset($_SESSION['orderid']) && $_SESSION['orderid'] > 0) { |
|
22 |
+ $content = '<p>Ihr Auftrag ist vollständig bei uns eingegangen.</p>'; |
|
23 |
+ $content .= '<p>Die Auftragsnummer lautet: '.$_SESSION['orderid'].'</p>'; |
|
24 |
+} |
|
25 |
+/*$url = 'https://auftrag.mosterei-wurst.de/view/'.$_REQUEST['handle']; |
|
22 | 26 |
if (!(isset($_SESSION['mode']) && $_SESSION['mode'] == 'local')) { |
23 | 27 |
$url = '<a href="'.$url.'">'.$url.'</a>'; |
24 | 28 |
} |
... | ... |
@@ -34,7 +38,7 @@ if (substr($number, 0, 5) == '+49 1' && isset($_SESSION['mode']) && $_SESSION['m |
34 | 38 |
<div><a class="btn btn-outline-secondary btn-lg" href="smsauftrag.php?handle='.$_REQUEST['handle'].'">Diesen Link per SMS erhalten</a></div> |
35 | 39 |
</div> |
36 | 40 |
'; |
37 |
-} |
|
41 |
+}*/ |
|
38 | 42 |
$content .=' <div class="form-group form-group-lg"> |
39 | 43 |
<div><a class="btn btn-primary btn-lg" href="clear.php">Zurück zum Anfang</a></div> |
40 | 44 |
</div> |
... | ... |
@@ -51,7 +51,7 @@ $content .= ' |
51 | 51 |
<div class="form-group form-group-lg"> |
52 | 52 |
<label for="frischsaft">Welche Menge an frischem (nicht pasteurisiertem) Saft sollen wir in Ihr Gefäß einfüllen?</label> |
53 | 53 |
<div class="row justify-content-center"> |
54 |
- <div class="col-6 col-sm-2"><input class="form-control" type="number" name="frischsaft" id="frischsaft"></div> |
|
54 |
+ <div class="col-6 col-sm-2"><input class="form-control" type="number" name="frischsaft" id="frischsaft" value="'.(isset($_SESSION['frischsaft']) ? $_SESSION['frischsaft'] : '').'"></div> |
|
55 | 55 |
<div class="col-6 col-sm-8" style="text-align: left; font-size: 18px; padding-top: 0.5em;" class="form-control">Liter</div> |
56 | 56 |
</div> |
57 | 57 |
</div> |
... | ... |
@@ -1,52 +1,66 @@ |
1 | 1 |
<?php |
2 | 2 |
|
3 |
-require_once dirname(__DIR__).'/config.php'; |
|
3 |
+require_once("config.php"); |
|
4 | 4 |
|
5 |
-$config['debug'] = false; |
|
6 |
-//$config['debug'] = true; |
|
5 |
+$jwt_token = null; |
|
6 |
+$jwt_refresh_token = null; |
|
7 | 7 |
|
8 |
-$curl = curl_init(); |
|
8 |
+# init API |
|
9 |
+$base_url = $config['api_url']; |
|
10 |
+$url = $base_url . 'login'; |
|
11 |
+$data = [ |
|
12 |
+ "username" => $config['api_username'], |
|
13 |
+ "password" => $config['api_password'] |
|
14 |
+]; |
|
15 |
+$options = array( |
|
16 |
+ 'http' => array( |
|
17 |
+ 'method' => 'POST', |
|
18 |
+ 'content' => json_encode( $data ), |
|
19 |
+ 'header'=> "Content-Type: application/json\r\n" . |
|
20 |
+ "Accept: application/json\r\n" |
|
21 |
+ ) |
|
22 |
+); |
|
9 | 23 |
|
10 |
-curl_setopt_array($curl, array( |
|
11 |
- CURLOPT_RETURNTRANSFER => true, |
|
12 |
- CURLOPT_ENCODING => "", |
|
13 |
- CURLOPT_MAXREDIRS => 10, |
|
14 |
- CURLOPT_TIMEOUT => 30, |
|
15 |
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, |
|
16 |
- CURLOPT_HTTPHEADER => array("Content-Type: application/json"), |
|
17 |
- CURLOPT_CUSTOMREQUEST => "POST")); |
|
24 |
+$context = stream_context_create( $options ); |
|
25 |
+$result = file_get_contents( $url, false, $context ); |
|
26 |
+$response = json_decode( $result, true); |
|
18 | 27 |
|
28 |
+$jwt_token = $response["token"]; |
|
29 |
+$jwt_refresh_token = $response["refresh_token"]; |
|
19 | 30 |
|
20 |
-function api_call($path, $data) |
|
21 |
-{ |
|
22 |
- global $curl; |
|
23 |
- global $config; |
|
24 | 31 |
|
25 |
- if ($config['debug']) { |
|
26 |
- echo '<pre>API-Call: '.$config['api_url'].$path."\n"; |
|
27 |
- print_r($data); |
|
28 |
- echo '</pre>'; |
|
29 |
- } |
|
32 |
+function api_call($method, $url, $content = []) { |
|
33 |
+ global $jwt_token; |
|
34 |
+ global $base_url; |
|
35 |
+ $url = $base_url . $url; |
|
36 |
+ $options = array( |
|
37 |
+ 'http' => array( |
|
38 |
+ 'method' => strtoupper($method), |
|
39 |
+ 'content' => json_encode( $content ), |
|
40 |
+ 'header'=> "Content-Type: application/json\r\n" . |
|
41 |
+ "Accept: application/json\r\n" . |
|
42 |
+ "Authorization: Bearer ".$jwt_token."\r\n" |
|
43 |
+ ) |
|
44 |
+ ); |
|
30 | 45 |
|
31 |
- $data['authtoken'] = $config['api_token']; |
|
32 |
- curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); |
|
33 |
- curl_setopt($curl, CURLOPT_URL, $config['api_url'].$path.($config['debug'] ? '?debug' : '')); |
|
46 |
+ $context = stream_context_create( $options ); |
|
47 |
+ $result = file_get_contents( $url, false, $context ); |
|
48 |
+ $response = json_decode( $result, true ); |
|
49 |
+ return $response; |
|
50 |
+} |
|
34 | 51 |
|
35 |
- $response = curl_exec($curl); |
|
36 |
- $err = curl_error($curl); |
|
52 |
+require_once('vendor/autoload.php'); |
|
37 | 53 |
|
38 |
- $ret = @json_decode($response, true); |
|
39 |
- if ($config['debug'] && $ret) { |
|
40 |
- echo '<pre>API response'; |
|
41 |
- print_r($ret); |
|
42 |
- echo '</pre>'; |
|
54 |
+function format_number_api($number) { |
|
55 |
+ $phoneNumberUtil = \libphonenumber\PhoneNumberUtil::getInstance(); |
|
56 |
+ try { |
|
57 |
+ $phoneNumber = $phoneNumberUtil->parse($number, 'DE'); |
|
58 |
+ } catch (Exception $e) { |
|
59 |
+ return NULL; |
|
43 | 60 |
} |
44 |
- if ($config['debug'] && (!isset($ret['status']) || $ret['status'] == 'error')) { |
|
45 |
- echo '<pre>API-Error-Response:'; |
|
46 |
- echo $response; |
|
47 |
- echo '</pre>'; |
|
61 |
+ if ($phoneNumberUtil->isValidNumber($phoneNumber)) { |
|
62 |
+ return $phoneNumberUtil->format($phoneNumber, \libphonenumber\PhoneNumberFormat::E164); |
|
48 | 63 |
} |
49 |
- return $ret; |
|
64 |
+ return NULL; |
|
50 | 65 |
} |
51 | 66 |
|
52 |
- |
... | ... |
@@ -1,27 +1,55 @@ |
1 | 1 |
<?php |
2 |
- |
|
2 |
+require_once('api.php'); |
|
3 | 3 |
|
4 | 4 |
function suche_kunde($name, $number) { |
5 | 5 |
global $content; |
6 | 6 |
if (! $number) { |
7 | 7 |
return NULL; |
8 | 8 |
} |
9 |
- $data = array("name" => $name, "telefon" => $number); |
|
10 |
- |
|
11 |
- $ret = api_call('kunde/pruefen', $data); |
|
9 |
+ $ret = api_call('GET', 'customerContacts/search/'.format_number_api($number)); |
|
12 | 10 |
|
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>'; |
|
11 |
+ if (count($ret) > 0) { |
|
12 |
+ $name = strtolower($name); |
|
13 |
+ foreach ($ret as $item) { |
|
14 |
+ $cust = $item['customer']; |
|
15 |
+ if ($name == strtolower($cust['lastname']) || |
|
16 |
+ $name == strtolower($cust['firstname']) || |
|
17 |
+ $name == strtolower($cust['firstname'] .' '. $cust['lastname']) |
|
18 |
+ ) { |
|
19 |
+ return $cust; |
|
20 |
+ } |
|
21 |
+ } |
|
19 | 22 |
} |
20 | 23 |
return null; |
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; |
|
21 | 31 |
} |
22 |
- return $ret; |
|
32 |
+ } |
|
33 |
+ } |
|
34 |
+ */ |
|
23 | 35 |
} |
24 | 36 |
|
37 |
+function erstelle_kunde($daten) { |
|
38 |
+ $json = [ |
|
39 |
+ "firstname" => $daten['fname'], |
|
40 |
+ "lastname" => $daten['lname'], |
|
41 |
+ "phone" => format_number_api($daten['phone']), |
|
42 |
+ "street" => $daten['address'], |
|
43 |
+ "zip" => $daten['zip'], |
|
44 |
+ "city" => $daten['city'], |
|
45 |
+ "contacts" => []]; |
|
46 |
+ $ret = api_call('POST', 'customers', $json); |
|
47 |
+ if (isset($ret['id'])) { |
|
48 |
+ return $ret['id']; |
|
49 |
+ } else { |
|
50 |
+ return null; |
|
51 |
+ } |
|
52 |
+} |
|
25 | 53 |
|
26 | 54 |
require_once('vendor/autoload.php'); |
27 | 55 |
|
... | ... |
@@ -0,0 +1,34 @@ |
1 |
+<?php |
|
2 |
+session_start(); |
|
3 |
+// Quitte ist erst ab 10.10. erlaubt |
|
4 |
+if (date('m-d') < '10-10') { |
|
5 |
+ $_SESSION['obstart'] = 'Apfel'; |
|
6 |
+ header("Location: gebrauchte.php"); |
|
7 |
+ die(); |
|
8 |
+} |
|
9 |
+ |
|
10 |
+require_once('lib/api.php'); |
|
11 |
+$ret = api_call('GET', 'fruitTypes'); |
|
12 |
+print_r($ret); |
|
13 |
+$headline = 'Obstart'; |
|
14 |
+$content = ''; |
|
15 |
+ |
|
16 |
+$content .= ' |
|
17 |
+ <form class="form" action="save.php" method="post"> |
|
18 |
+ <input type="hidden" name="form" value="obstart"> |
|
19 |
+ <p>Um welche Fruchtart handelt es sich bei Ihrem Obst (überwiegend)?</p>'; |
|
20 |
+ |
|
21 |
+foreach ($ret as $fruit) { |
|
22 |
+ $content .= ' |
|
23 |
+ <div class="form-group form-group-lg"> |
|
24 |
+ <input type="submit" class="btn btn-block btn-lg btn-primary" id="btn-ja" name="obstart" value="'.$fruit['label'].'"> |
|
25 |
+ </div> |
|
26 |
+ |
|
27 |
+'; |
|
28 |
+} |
|
29 |
+$content .= ' |
|
30 |
+ </form> |
|
31 |
+ '; |
|
32 |
+ |
|
33 |
+ |
|
34 |
+include("template.php"); |
... | ... |
@@ -61,6 +61,10 @@ if (isset($_REQUEST['form'])) { |
61 | 61 |
$redirect = 'address.php?error'; |
62 | 62 |
break; |
63 | 63 |
} |
64 |
+ if (!isset($_SESSION['kundennr']) || !$_SESSION['kundennr']) { |
|
65 |
+ $_SESSION['kundennr'] = erstelle_kunde($_SESSION); |
|
66 |
+ } |
|
67 |
+ |
|
64 | 68 |
if ($_SESSION['mode'] == 'local') { |
65 | 69 |
$_SESSION['angeliefert'] = true; |
66 | 70 |
$redirect = 'gitterbox.php'; |
... | ... |
@@ -100,9 +104,13 @@ if (isset($_REQUEST['form'])) { |
100 | 104 |
} |
101 | 105 |
} |
102 | 106 |
} |
103 |
- $redirect = 'gebrauchte.php'; |
|
107 |
+ $redirect = 'obstart.php'; |
|
104 | 108 |
break; |
105 | 109 |
|
110 |
+ case 'obstart': |
|
111 |
+ $_SESSION['obstart'] = $_REQUEST['obstart']; |
|
112 |
+ $redirect = 'gebrauchte.php'; |
|
113 |
+ |
|
106 | 114 |
case 'gebrauchte': |
107 | 115 |
if (isset($_REQUEST['kartonsja'])) { |
108 | 116 |
$_SESSION['kartons'] = true; |
... | ... |
@@ -114,6 +122,9 @@ if (isset($_REQUEST['form'])) { |
114 | 122 |
$redirect = 'auftrag.php'; |
115 | 123 |
break; |
116 | 124 |
case 'auftrag': |
125 |
+ if (isset($_REQUEST['3er'])) { |
|
126 |
+ $_SESSION['neue'] = '3er'; |
|
127 |
+ } |
|
117 | 128 |
if (isset($_REQUEST['5er'])) { |
118 | 129 |
$_SESSION['neue'] = '5er'; |
119 | 130 |
} |
... | ... |
@@ -144,96 +155,105 @@ if (isset($_REQUEST['form'])) { |
144 | 155 |
} |
145 | 156 |
|
146 | 157 |
$_SESSION['complete'] = true; |
147 |
- $redirect = 'finish.php?handle='.$_SESSION['handle']; |
|
158 |
+ $redirect = 'finish.php'; |
|
148 | 159 |
break; |
149 | 160 |
|
150 | 161 |
} |
151 | 162 |
} |
152 | 163 |
|
153 |
-$data = array("handle" => $_SESSION['handle']); |
|
154 |
- |
|
155 |
-$ret = api_call('auftrag/lesen', $data); |
|
156 |
- |
|
157 |
-if (!isset($ret['auftrag'])) { |
|
158 |
- echo 'Es gibt ein Problem beim Speichern der Auftragsdaten. Bitte wenden Sie sich persönlich an uns oder verwenden Sie einen Papierauftrag.'; |
|
159 |
- die(); |
|
160 |
-} |
|
161 |
- |
|
162 |
- |
|
163 |
-$auftrag = $ret['auftrag']; |
|
164 |
- |
|
164 |
+/* |
|
165 |
+ * Um das Speichern in der API kümmern wir uns, wenn Kundendaten, Obstart und grundsätzliche Auftragsdaten feststehen |
|
166 |
+ */ |
|
167 |
+if (isset($_SESSION['neue'])) { |
|
168 |
+ // Bevor dieses Datenfeld vorhanden ist, macht Speichern keinen Sinn |
|
169 |
+ $auftrag = []; |
|
170 |
+ /* Herunterladen bringt nichts, da wir einfach immer unsere bekannten Daten rein schieben. Parallelität ist nicht gewünscht |
|
171 |
+ * if (isset($auftrag['id'])) { |
|
172 |
+ // Auftrag ist schon in der API, aktuellen Stand herunter laden |
|
173 |
+ $auftrag = api_call('GET', 'orders/'.$auftrag['id']); |
|
174 |
+ }*/ |
|
165 | 175 |
|
176 |
+ // customer |
|
166 | 177 |
if (isset($_SESSION['kundennr'])) { |
167 |
- $auftrag['kundennr'] = $_SESSION['kundennr']; |
|
178 |
+ $auftrag['customer'] = $_SESSION['kundennr']; |
|
179 |
+ $auftrag['notification_name'] = $_SESSION['name']; |
|
168 | 180 |
} |
169 |
-$addrfields = array("kundennr" => "kundennr", "firma" => "firma", "fname" => "vorname", "lname" => "nachname", "address" => "adresse", "zip" => "plz", "city" => "ort", "phone" => "telefon"); |
|
170 |
-foreach ($addrfields as $sesskey => $apikey) { |
|
171 |
- if (isset($_SESSION[$sesskey]) && $_SESSION[$sesskey] != 'bekannt') { |
|
172 |
- $auftrag['kundendaten'][$apikey] = $_SESSION[$sesskey]; |
|
181 |
+ // fruitType |
|
182 |
+ $ret = api_call('GET', 'fruitTypes'); |
|
183 |
+ foreach ($ret as $fruit) { |
|
184 |
+ if ($_SESSION['obstart'] == $fruit['label']) { |
|
185 |
+ $auftrag['fruitType'] = $fruit['id']; |
|
173 | 186 |
} |
174 | 187 |
} |
175 |
-$auftrag['kundendaten']['telefon'] = format_number($auftrag['kundendaten']['telefon']); |
|
176 |
- |
|
177 |
-if (count($auftrag['bestellung']) > 1) { |
|
178 |
- echo 'Diese Bestellung wurde auf anderem Wege an uns übermittelt und kann mit dieser Oberfläche leider nicht verändert werden'; |
|
179 |
- die(); |
|
180 |
-} |
|
181 |
- |
|
188 |
+ // containers |
|
182 | 189 |
if (isset($_SESSION['lieferart']) && $_SESSION['lieferart'] == 'gitterbox' && isset($_SESSION['gbcount']) && $_SESSION['gbcount'] > 0) { |
183 |
- if ($_SESSION['gbcount'] < count($auftrag['bestellung'][0]["gitterbox"])) { |
|
184 |
- $auftrag['bestellung'][0]["gitterbox"] = array(); |
|
185 |
- } |
|
186 |
- while (count($auftrag['bestellung'][0]["gitterbox"]) < $_SESSION['gbcount']) { |
|
187 |
- $auftrag['bestellung'][0]["gitterbox"][] = array("id" => null); |
|
190 |
+ $auftrag['containers'] = array_fill(0, $_SESSION['gbcount'], [ "type" => "box", "weight" => 400 ]); |
|
188 | 191 |
} |
189 |
-} else { |
|
190 |
- $auftrag['bestellung'][0]["gitterbox"] = array(); |
|
191 |
-} |
|
192 |
- |
|
193 | 192 |
if (isset($_SESSION['lieferart']) && $_SESSION['lieferart'] == 'anhaenger') { |
194 |
- $auftrag['bestellung'][0]['anhaenger'] = array(array("kennz" => null)); |
|
195 |
- if (isset($_SESSION['kennz']) && $_SESSION['kennz'] != '') { |
|
196 |
- $auftrag['bestellung'][0]['anhaenger'][0]["kennz"] = $_SESSION['kennz']; |
|
193 |
+ if (!isset($_SESSION['kennz'])) { |
|
194 |
+ $_SESSION['kennz'] = null; |
|
197 | 195 |
} |
196 |
+ $auftrag['containers'] = [ |
|
197 |
+ ["type" => "trailer", |
|
198 |
+ "weight" => 0, |
|
199 |
+ "label" => $_SESSION['kennz']] |
|
200 |
+ ]; |
|
198 | 201 |
} |
199 |
- |
|
200 |
-if (isset($_SESSION['kartons']) && $_SESSION['kartons']) { |
|
201 |
- $auftrag['bestellung'][0]['gebrauchte'] = true; |
|
202 |
-} else { |
|
203 |
- $auftrag['bestellung'][0]['gebrauchte'] = false; |
|
202 |
+ // usedPackages |
|
203 |
+ if (isset($_SESSION['kartons'])) { |
|
204 |
+ $auftrag['usedPackages'] = (bool) $_SESSION['kartons']; |
|
204 | 205 |
} |
205 | 206 |
|
206 |
-$auftrag['bestellung'][0]['neue'] = array(); |
|
207 |
-if (isset($_SESSION['neue']) && $_SESSION['neue'] == 'sonstiges') { |
|
208 |
- $auftrag['bestellung'][0]['neue']["sonstiges"] = $_SESSION["sonstiges"]; |
|
209 |
-} elseif (isset($_SESSION['neue']) && $_SESSION['neue'] == '10er') { |
|
210 |
- $auftrag['bestellung'][0]['neue']["10er"] = "100%"; |
|
207 |
+ // plannedPackagings |
|
208 |
+ if (isset($_SESSION['neue'])) { |
|
209 |
+ if ($_SESSION['neue'] == 'sonstiges') { |
|
210 |
+ $auftrag['notes'] = (isset($_SESSION['anmerkungen']) ? $_SESSION['anmerkungen'] . "\n\n" : '') . $_SESSION["sonstiges"]; |
|
211 | 211 |
} else { |
212 |
- $auftrag['bestellung'][0]['neue']["5er"] = "100%"; |
|
212 |
+ $plan = []; |
|
213 |
+ $ret = api_call('GET', 'packageTypes'); |
|
214 |
+ foreach ($ret as $pt) { |
|
215 |
+ if ($pt['label'] == $_SESSION['neue']) { |
|
216 |
+ $plan[] = [ "packageType" => $pt['id'], |
|
217 |
+ "rest" => true ]; |
|
218 |
+ } |
|
219 |
+ if ($pt['label'] == 'frischsaft' && isset($_SESSION['frischsaft']) && $_SESSION['frischsaft'] > 0) { |
|
220 |
+ $plan[] = [ "packageType" => $pt['id'], |
|
221 |
+ "count" => $_SESSION['frischsaft']]; |
|
222 |
+ } |
|
223 |
+ } |
|
224 |
+ $auftrag['plannedPackagings'] = $plan; |
|
213 | 225 |
} |
214 |
- |
|
215 |
-if (isset($_SESSION['frischsaft']) && $_SESSION['frischsaft'] > 0) { |
|
216 |
- $auftrag['bestellung'][0]['frischsaft'] = $_SESSION['frischsaft']; |
|
217 |
-} else { |
|
218 |
- $auftrag['bestellung'][0]['frischsaft'] = null; |
|
219 | 226 |
} |
220 | 227 |
|
221 | 228 |
|
229 |
+ // notes |
|
222 | 230 |
if (isset($_SESSION['anmerkungen']) && $_SESSION['anmerkungen'] != '') { |
223 |
- $auftrag['bestellung'][0]['anmerkungen'] = $_SESSION['anmerkungen']; |
|
231 |
+ $auftrag['notes'] = $_SESSION['anmerkungen']; |
|
232 |
+ $auftrag['notes'] = $_SESSION['anmerkungen'] . (isset($_SESSION["sonstiges"]) ? "\n\n" . $_SESSION["sonstiges"] : ''); |
|
224 | 233 |
} |
225 | 234 |
|
226 |
-if (isset($_SESSION['complete']) && $_SESSION['complete'] == true && !$auftrag['status']['bestellt']) { |
|
227 |
- $auftrag['status']['bestellt'] = time(); |
|
235 |
+ if (isset($_SESSION['orderid']) && $_SESSION['orderid']) { |
|
236 |
+ // update |
|
237 |
+ $ret = api_call('PUT', 'orders/'.$_SESSION['orderid'], $auftrag); |
|
238 |
+ } else { |
|
239 |
+ // neu |
|
240 |
+ $ret = api_call('POST', 'orders', $auftrag); |
|
241 |
+ if (!isset($ret['id'])) { |
|
242 |
+ echo "Es gabe einen Fehler beim Abspeichern des Auftrags. Wir bitten dies zu entschuldigen und einen Papierauftrag auszufüllen."; |
|
243 |
+ file_put_contents("../error.log", |
|
244 |
+ date("Y-m-d H:i:s") . ': '.json_encode($auftrag). |
|
245 |
+ print_r($ret, true).'\n', FILE_APPEND | LOCK_EX); |
|
246 |
+ die(); |
|
247 |
+ } |
|
248 |
+ $_SESSION['orderid'] = $ret['id']; |
|
228 | 249 |
} |
229 | 250 |
|
230 |
-$ret = api_call('auftrag/anlieferung', $auftrag); |
|
231 |
- |
|
251 |
+ /* |
|
232 | 252 |
if ($ret['status'] == 'error') { |
233 | 253 |
echo 'Es gibt ein Problem beim Speichern des Auftrags. Bitte verwenden Sie diesmal einen Papier-Auftrag.'; |
234 | 254 |
die(); |
235 | 255 |
} |
236 |
- |
|
237 |
- |
|
256 |
+ */ |
|
257 |
+} |
|
238 | 258 |
|
239 | 259 |
header('Location: '.$redirect); |
... | ... |
@@ -60,7 +60,13 @@ if ($_SESSION['lieferart'] == 'anhaenger') { |
60 | 60 |
} |
61 | 61 |
|
62 | 62 |
$abfuellung = ''; |
63 |
-if ($_SESSION['neue'] == '5er') { |
|
63 |
+if ($_SESSION['neue'] == '3er') { |
|
64 |
+ if ($_SESSION['kartons']) { |
|
65 |
+ $abfuellung = 'Wir füllen zunächst Ihre gebrauchten Kartons (wenn vorhanden zuerst 3er, dann 5er, dann 10er) und falls noch Saft übrig ist, füllen wir diesen in <strong>3-Liter-Kartons</strong>.'; |
|
66 |
+ } else { |
|
67 |
+ $abfuellung = 'Wir füllen Ihren Saft in <strong>3-Liter-Kartons</strong>.'; |
|
68 |
+ } |
|
69 |
+} elseif ($_SESSION['neue'] == '5er') { |
|
64 | 70 |
if ($_SESSION['kartons']) { |
65 | 71 |
$abfuellung = 'Wir füllen zunächst Ihre gebrauchten Kartons (wenn vorhanden zuerst 5er, dann 10er) und falls noch Saft übrig ist, füllen wir diesen in <strong>5-Liter-Kartons</strong>.'; |
66 | 72 |
} else { |
... | ... |
@@ -1,12 +1,14 @@ |
1 | 1 |
<?php |
2 |
+//print_r($_SESSION); |
|
2 | 3 |
$pages = array( |
3 | 4 |
1 => 'index.php', |
4 | 5 |
2 => 'address.php', |
5 | 6 |
3 => 'gitterbox.php', |
6 |
- 4 => 'gebrauchte.php', |
|
7 |
- 5 => 'auftrag.php', |
|
8 |
- 6 => 'frischsaft.php', |
|
9 |
- 7 => 'summary.php'); |
|
7 |
+ 4 => 'obstart.php', |
|
8 |
+ 5 => 'gebrauchte.php', |
|
9 |
+ 6 => 'auftrag.php', |
|
10 |
+ 7 => 'frischsaft.php', |
|
11 |
+ 8 => 'summary.php'); |
|
10 | 12 |
|
11 | 13 |
$previous = array_search(basename($_SERVER['PHP_SELF']), $pages) - 1; |
12 | 14 |
if ($previous > 0) { |
13 | 15 |