Browse code

Erste Version, die über die API speichert

Bernd Wurst authored on06/06/2020 20:24:13
Showing16 changed files
... ...
@@ -1,8 +1,8 @@
1 1
 <?php
2 2
 session_start();
3 3
 
4
-if (!isset($_SESSION['phone'])) {
5
-    header('Location: index.php?error&num='.urlencode($_REQUEST['phone']));
4
+if (!isset($_SESSION['phone']) || (!isset($_SESSION['name']) && !isset($_SESSION['firma']) && !isset($_SESSION['lname']))) {
5
+    header('Location: index.php?error&num='.urlencode($_SESSION['phone']).'&name='.urlencode($_SESSION['name']));
6 6
     die();
7 7
 }
8 8
 
... ...
@@ -62,16 +62,13 @@ if (isset($_SESSION['name'])) {
62 62
     $kunde = suche_kunde($_SESSION['name'], $_SESSION['phone']);
63 63
 }
64 64
 if ($kunde) {
65
-    $_SESSION['kundennr'] = $kunde['kundennr'];
66
-    $fields = array("fname" => "vorname", "lname" => "nachname", "address" => "adresse", "zip" => "plz", "city" => "ort");
67
-
65
+    $fields = array("kundennr" => "kundennr", "firma" => "firma", "fname" => "vorname", "lname" => "nachname", "address" => "adresse", "zip" => "plz", "city" => "ort");
68 66
     foreach ($fields as $sesskey => $arrkey) {
69
-        $_SESSION[$sesskey] = $kunde[$arrkey];
67
+        if (isset($kunde[$arrkey])) {
68
+            $_SESSION[$sesskey] = $kunde[$arrkey];
69
+        }
70 70
     }
71 71
     unset($_SESSION['name']);
72
-
73
-} else {
74
-    unset($_SESSION['kundennr']);
75 72
 }
76 73
 
77 74
 if (isset($_REQUEST['error'])) {
... ...
@@ -81,6 +78,16 @@ if (isset($_REQUEST['error'])) {
81 78
     </div>';
82 79
 }
83 80
 
81
+if (!$kunde) {
82
+    $kunde = array('kundennr' => '', 'firma' => '', 'nachname' => '', 'vorname' => '', 'adresse' => '', 'plz' => '', 'ort' => '');
83
+    $fields = array("kundennr" => "kundennr", "firma" => "firma", "fname" => "vorname", "lname" => "nachname", "address" => "adresse", "zip" => "plz", "city" => "ort");
84
+
85
+    foreach ($fields as $sesskey => $arrkey) {
86
+        if (isset($_SESSION[$sesskey])) {
87
+            $kunde[$arrkey] = $_SESSION[$sesskey];
88
+        }
89
+    }
90
+}
84 91
 $headline = 'Adresse eingeben';
85 92
 if ($kunde) {
86 93
     $headline = 'Willkommen zurück!';
... ...
@@ -92,30 +99,45 @@ if ($kunde) {
92 99
         <p>Bitte geben Sie in diesem Schritt Ihre Adresse ein.</p>
93 100
     ';
94 101
 }
95
-if (!$kunde) {
96
-    $kunde = array('nachname' => '', 'vorname' => '', 'adresse' => '', 'plz' => '', 'ort' => '');
97
-    $fields = array("fname" => "vorname", "lname" => "nachname", "address" => "adresse", "zip" => "plz", "city" => "ort");
98 102
 
99
-    foreach ($fields as $sesskey => $arrkey) {
100
-        if (isset($_SESSION[$sesskey])) {
101
-            $kunde[$arrkey] = $_SESSION[$sesskey];
102
-        }
103
+$fields = array("vorname" => "Vorname",
104
+    "nachname" => "Nachname",
105
+    "firma" => "Firmenname",
106
+    "adresse" => "Adresse",
107
+    "plz" => "PLZ",
108
+    "ort" => "Ort");
109
+$placeholders = $fields;
110
+$contents = $kunde;
111
+foreach ($fields as $field => $label) {
112
+    if (isset($kunde[$field]) && $kunde[$field] == 'bekannt') {
113
+        $placeholders[$field] = $label.' wie beim letzten Besuch';
114
+        $contents[$field] = '';
115
+    } elseif (!isset($contents[$field])) {
116
+        $contents[$field] = '';
103 117
     }
118
+
104 119
 }
105 120
 
121
+
106 122
 $content .= '
107 123
     <form class="form" action="save.php" method="post">
108
-    <input type="hidden" name="form" value="address">
124
+    <input type="hidden" name="form" value="address">';
125
+if (isset($kunde['firma']) && $kunde['firma'] != '') {
126
+    $content .= '
109 127
     <div class="form-group form-group-lg row">
110
-        <div class="col-sm-6"><input class="form-control" id="fname" name="fname" type="text" placeholder="Vorname" autocomplete="given-name" value="'.$kunde['vorname'].'"></div>
111
-        <div class="col-sm-6"><input class="form-control" id="lname" name="lname" type="text" placeholder="Nachname" autocomplete="family-name" value="'.$kunde['nachname'].'"></div>
128
+        <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>
129
+    </div>';
130
+}
131
+$content .= '   <div class="form-group form-group-lg row">
132
+        <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>
133
+        <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>
112 134
     </div>
113 135
     <div class="form-group form-group-lg row">
114
-        <div class="col-sm-12"><input class="form-control" id="address" name="address" type="text" placeholder="Straße" autocomplete="street-address" value="'.$kunde['adresse'].'"></div>
136
+        <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>
115 137
     </div>
116 138
     <div class="form-group form-group-lg row">
117
-        <div class="col-sm-4"><input class="form-control" id="zip" name="zip" type="text" placeholder="PLZ" autocomplete="postal-code" value="'.$kunde['plz'].'"></div>
118
-        <div class="col-sm-8"><input class="form-control" id="city" name="city" type="text" placeholder="Ort" autocomplete="locality" value="'.$kunde['ort'].'"></div>
139
+        <div class="col-sm-4"><input class="form-control" id="zip" name="zip" type="text" placeholder="'.$placeholders['plz'].'" autocomplete="postal-code" value="'.$contents['plz'].'"></div>
140
+        <div class="col-sm-8"><input class="form-control" id="city" name="city" type="text" placeholder="'.$placeholders['ort'].'" autocomplete="locality" value="'.$contents['ort'].'"></div>
119 141
     </div>
120 142
       <div class="form-group form-group-lg">
121 143
         <div><input class="btn btn-primary btn-lg" type="submit" value="Weiter &gt;"></div>
... ...
@@ -1,5 +1,9 @@
1 1
 <?php
2 2
 session_start();
3
+if (isset($_SESSION['mode']) && $_SESSION['mode'] == 'local') {
4
+    header("Location: gitterbox.php");
5
+    die();
6
+}
3 7
 
4 8
 $headline = 'Anlieferung';
5 9
 $content = '';
... ...
@@ -3,11 +3,12 @@ $(function () {
3 3
     $('#details-frischsaft').hide();
4 4
     $('#submit').prop('disabled', true);
5 5
 
6
-    $('#btn-frischsaftja').click( function () {
6
+    $('#btn-frischsaftja').click( function ( event ) {
7 7
         $('#btn-frischsaftja').removeClass('btn-default');
8 8
         $('#btn-frischsaftja').addClass('btn-primary');
9 9
         $('#details-frischsaft').show();
10
-        $('#frischsaft').get(0).focus();
10
+        $('#frischsaft').focus();
11
+        event.preventDefault();
11 12
     });
12 13
 
13 14
     $('#frischsaft').on('input', function () {
... ...
@@ -12,6 +12,25 @@ function gitterbox_click( event ) {
12 12
          event.preventDefault();
13 13
 }
14 14
 
15
+function anhaenger_click( event ) {
16
+        $('#btn-anhaenger').removeClass('btn-default');
17
+        $('#btn-anhaenger').addClass('btn-primary');
18
+        $('#btn-gitterbox').removeClass('btn-primary');
19
+        $('#btn-gitterbox').addClass('btn-default');
20
+        //$('#modal-kennzeichen').modal("show");
21
+        $('#details-anhaenger').show();
22
+        $('#details-gitterbox').hide();
23
+        $('#lieferart').val('anhaenger');
24
+        $('#btn-submit').show();
25
+        $('#kennz').get(0).focus();
26
+        //$('#kennz-modal').focus();
27
+
28
+        event.preventDefault();
29
+ }
30
+
31
+
32
+
33
+
15 34
 $(function () {
16 35
     
17 36
     $('#details-gitterbox').hide();
... ...
@@ -23,21 +42,7 @@ $(function () {
23 42
    $('#btn-gitterbox').click(gitterbox_click);
24 43
    $('#gbcount').click(gitterbox_click);
25 44
 
26
-    $('#btn-anhaenger').click( function ( event ) {
27
-        $('#btn-anhaenger').removeClass('btn-default');
28
-        $('#btn-anhaenger').addClass('btn-primary');
29
-        $('#btn-gitterbox').removeClass('btn-primary');
30
-        $('#btn-gitterbox').addClass('btn-default');
31
-        $('#modal-kennzeichen').modal("show");
32
-        $('#kennz-modal').focus();
33
-         $('#details-anhaenger').show();
34
-        $('#details-gitterbox').hide();
35
-        $('#lieferart').val('anhaenger');
36
-        $('#btn-submit').show();
37
-        $('#kennz').get(0).focus();
38
-
39
-        event.preventDefault();
40
-    });
45
+    $('#btn-anhaenger').click(anhaenger_click);
41 46
 
42 47
     $('.btn-gbcount').each(function () {
43 48
             $(this).click(function () {
44 49
new file mode 100644
... ...
@@ -0,0 +1,43 @@
1
+<?xml version="1.0" encoding="iso-8859-1"?>
2
+<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
3
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+	 viewBox="0 0 492 492" style="enable-background:new 0 0 492 492;" xml:space="preserve">
5
+<g>
6
+	<g>
7
+		<path style="fill: #FFFFCC;" d="M198.608,246.104L382.664,62.04c5.068-5.056,7.856-11.816,7.856-19.024c0-7.212-2.788-13.968-7.856-19.032l-16.128-16.12
8
+			C361.476,2.792,354.712,0,347.504,0s-13.964,2.792-19.028,7.864L109.328,227.008c-5.084,5.08-7.868,11.868-7.848,19.084
9
+			c-0.02,7.248,2.76,14.028,7.848,19.112l218.944,218.932c5.064,5.072,11.82,7.864,19.032,7.864c7.208,0,13.964-2.792,19.032-7.864
10
+			l16.124-16.12c10.492-10.492,10.492-27.572,0-38.06L198.608,246.104z"/>
11
+	</g>
12
+</g>
13
+<g>
14
+</g>
15
+<g>
16
+</g>
17
+<g>
18
+</g>
19
+<g>
20
+</g>
21
+<g>
22
+</g>
23
+<g>
24
+</g>
25
+<g>
26
+</g>
27
+<g>
28
+</g>
29
+<g>
30
+</g>
31
+<g>
32
+</g>
33
+<g>
34
+</g>
35
+<g>
36
+</g>
37
+<g>
38
+</g>
39
+<g>
40
+</g>
41
+<g>
42
+</g>
43
+</svg>
... ...
@@ -3,3 +3,7 @@ $( function () {
3 3
             $(this).find('.btn-ok').attr('href', $(e.relatedTarget).prop('href'));
4 4
         });
5 5
 });
6
+$(document).ready( function () {
7
+    $('body').fadeIn(200);
8
+    document.body.scrollIntoView();
9
+});
... ...
@@ -13,6 +13,28 @@ body {
13 13
     padding: 0.5em;
14 14
 }
15 15
 
16
+
17
+#banner-back {
18
+    display: table-cell;
19
+    width: 65px;
20
+    text-align: left;
21
+}
22
+
23
+#banner-headline {
24
+    display: table-cell;
25
+    width: 100%;
26
+    height: 65px;
27
+    text-align: center;
28
+    color: #ffc;
29
+}
30
+
31
+#banner-logo {
32
+    display: table-cell;
33
+    width: 244px;
34
+    text-align: right;
35
+}
36
+
37
+
16 38
 h1, h2, h3 {
17 39
   font-family: "Caveat Brush";
18 40
 }
... ...
@@ -24,6 +46,9 @@ h1, h2, h3 {
24 46
     h1.termsheader {
25 47
         font-size: 200%;
26 48
     }   
49
+    .modal-dialog {
50
+        max-width: 700px;
51
+    }
27 52
 }
28 53
 
29 54
 .modal-body.terms {
... ...
@@ -32,6 +57,10 @@ h1, h2, h3 {
32 57
     overflow-y: auto;
33 58
 }
34 59
 
60
+input, textarea, .form-control {
61
+    font-size: 120%;
62
+}
63
+
35 64
 input.btn[type=submit] {
36 65
     white-space: normal !important;
37 66
     min-height: 5em;
... ...
@@ -41,6 +70,10 @@ input[type=submit] {
41 70
     width: 100%;
42 71
 }
43 72
 
73
+.btn {
74
+    font-size: 120%;
75
+}
76
+
44 77
 .btn-light, .btn-light:hover {
45 78
     border-color: black;
46 79
     margin-bottom: 0.5em;
... ...
@@ -54,6 +87,7 @@ input[type=submit] {
54 87
     background-position: center 10px;
55 88
 }
56 89
 
90
+
57 91
 #btn-anhaenger {
58 92
     min-width: 280px;
59 93
     padding-top: 170px;
... ...
@@ -1,8 +1,4 @@
1 1
 $(function () {
2
-    $('#submit').prop('disabled', true);
3
-    $('#agb').change( function () {
4
-        $('#submit').prop('disabled', ! $('#agb').prop('checked'));
5
-        });
6 2
     $('#terms-link').click(function () {
7 3
         $('#agbmodal').modal("show");
8 4
         return false;
... ...
@@ -1,13 +1,27 @@
1 1
 <?php
2 2
 session_start();
3
-$filename = '../data/'.date('Y').'/'.$_SESSION['handle'].'.json';
4
-if (file_exists($filename)) {
5
-    unlink($filename);
3
+$mode = null;
4
+if (isset($_SESSION['mode'])) {
5
+    $mode = $_SESSION['mode'];
6
+}
7
+if (isset($_REQUEST['mode'])) {
8
+    $mode = $_REQUEST['mode'];
9
+}
10
+if (isset($_SESSION['handle'])) {
11
+    $filename = '../data/'.date('Y').'/'.$_SESSION['handle'].'.json';
12
+    if (file_exists($filename)) {
13
+        unlink($filename);
14
+    }
6 15
 }
7 16
 session_destroy();
8 17
 
9 18
 if (isset($_REQUEST['number'])) {
19
+            setcookie('NAME', '', 1, "");
10 20
             setcookie('NUMBER', '', 1, "");
11 21
 }
12 22
 
13
-header('Location: index.php');
23
+$param = '';
24
+if ($mode == 'local') {
25
+    $param = '?mode=local';
26
+}
27
+header('Location: index.php'.$param);
... ...
@@ -1,11 +1,44 @@
1 1
 <?php
2 2
 session_start();
3
-session_destroy();
3
+            require_once('vendor/autoload.php');
4
+
5
+            function format_number($number) {
6
+                $phoneNumberUtil = \libphonenumber\PhoneNumberUtil::getInstance();
7
+                try {
8
+                    $phoneNumber = $phoneNumberUtil->parse($number, 'DE');
9
+                } catch (Exception $e) {
10
+                    return NULL;
11
+                }
12
+                if ($phoneNumberUtil->isValidNumber($phoneNumber)) {
13
+                    return $phoneNumberUtil->format($phoneNumber, 1);
14
+                }
15
+                return NULL;
16
+            }
17
+$number = format_number($_SESSION['phone']);
18
+
4 19
 
5 20
 $headline = 'Vielen Dank für Ihren Auftrag!';
6
-$content = '<p>Die Verarbeitungsnummer lautet: '.$_REQUEST['handle'].'</p>
21
+$url = 'https://auftrag.mosterei-wurst.de/view/'.$_REQUEST['handle'];
22
+if (isset($_SESSION['mode']) && $_SESSION['mode'] == 'local') {
23
+    $url = '<a href="'.$url.'">'.$url.'</a>';
24
+}
25
+$content = '<p>Der Verarbeitungscode lautet: '.$_REQUEST['handle'].'</p>
7 26
 
8
-    <p>Bitte schließen Sie dieses Browser-Fenster.</p>';
27
+    <p>Sie können jederzeit den Status Ihres Auftrags verfolgen unter <b>'$url.'</b>. Wenn Sie den nachfolgenden QR-Code scannen, kommen Sie direkt zu Ihrem Auftrag.</p>
28
+    <p><img src="https://api.qrserver.com/v1/create-qr-code/?size=150x150&bgcolor=ffa&data=https://au.m-wst.de/v/'.$_REQUEST['handle'].'"></p>
29
+';
9 30
 
31
+if (substr($number, 0, 5) == '+49 1') {
32
+    $content .= '<p>Wenn Sie möchten, können Sie den Link auch per SMS erhalten.</p>
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>
35
+    </div>
36
+';
37
+}
38
+$content .='    <div class="form-group form-group-lg">
39
+        <div><a class="btn btn-primary btn-lg" href="clear.php">Zurück zum Anfang</a></div>
40
+    </div>
41
+	';
42
+    
10 43
 
11 44
 include("template.php");
... ...
@@ -16,10 +16,10 @@ $content .= '
16 16
     <form class="form" action="save.php" method="post">
17 17
     <input type="hidden" name="form" value="gebrauchte">
18 18
     ';
19
-    if ($_SESSION['angeliefert']) {
20
-        $content .= '<p>Haben Sie gebrauchte Bag-in-Box-Kartons angeliefert und bei uns unter Dach gestellt?</p>';
21
-    } else {
19
+    if (isset($_SESSION['angeliefert']) && $_SESSION['angeliefert'] === false) {
22 20
         $content .= '<p>Werden Sie gebrauchte Bag-in-Box-Kartons mitbringen?</p>';
21
+    } else {
22
+        $content .= '<p>Haben Sie gebrauchte Bag-in-Box-Kartons mitgebracht und bei uns unter Dach gestellt?</p>';
23 23
     }
24 24
 $content .= '
25 25
        <div class="form-group form-group-lg row">
... ...
@@ -22,9 +22,9 @@ $content .= '
22 22
         <input type="hidden" name="lieferart" id="lieferart" value="">
23 23
     </div>
24 24
     <div class="modal fade" role="dialog" id="modal-gitterbox"><div class="modal-dialog">
25
-    <div class="form-group form-group-lg modal-content"><div class="modal-header">Wie viele Gitterboxen haben Sie gefüllt?</div>
25
+    <div class="form-group form-group-lg modal-content"><div class="modal-header">Wie viele Gitterboxen haben Sie verwendet?</div>
26 26
         <div class="modal-body row justify-content-center">
27
-          <div class="col-sm-2"><a href="#" class="btn btn-block btn-lg btn-outline-primary btn-gbcount" id="btn-gbcount-1">1</a></div>
27
+          <div class="col-sm-4"><a href="#" class="btn btn-block btn-lg btn-primary btn-gbcount" id="btn-gbcount-1">1</a></div>
28 28
           <div class="col-sm-2"><a href="#" class="btn btn-block btn-lg btn-outline-primary btn-gbcount" id="btn-gbcount-2">2</a></div>
29 29
           <div class="col-sm-2"><a href="#" class="btn btn-block btn-lg btn-outline-primary btn-gbcount" id="btn-gbcount-3">3</a></div>
30 30
           <div class="col-sm-2"><a href="#" class="btn btn-block btn-lg btn-outline-primary btn-gbcount" id="btn-gbcount-4">4</a></div>
... ...
@@ -33,18 +33,6 @@ $content .= '
33 33
     </div>
34 34
     </div></div>
35 35
 
36
-    <div class="modal fade" role="dialog" id="modal-kennzeichen"><div class="modal-dialog">
37
-    <div class="form-group form-group-lg modal-content"><div class="modal-header">Wie lautet das Kennzeichen Ihres Anhängers?</div>
38
-        <div class="modal-body row justify-content-center">
39
-          <div class="col-sm-10"><input class="form-control" type="text" name="kennz" id="kennz-modal" placeholder="Kennzeichen des Anhängers"></div>
40
-        </div>
41
-        <div class="modal-body row justify-content-center">
42
-          <div class="col-sm-10"><a href="#" class="btn btn-block btn-lg btn-outline-primary btn-ok" id="btn-kennzeichen-ok">Weiter &gt;</a></div>
43
-        </div>
44
-    </div>
45
-    </div></div>
46
-
47
-    
48 36
 
49 37
     <div class="form-group form-group-lg" id="details-gitterbox">
50 38
         <label for="kennz">Anzahl benutzter Gitterboxen:</label>
... ...
@@ -52,12 +40,12 @@ $content .= '
52 40
         <div class="col-sm-10"><input class="form-control" type="text" name="gbcount" id="gbcount"></div>
53 41
     </div>
54 42
     </div>
55
-     <div class="form-group form-group-lg" id="details-anhaenger">
43
+     <div class="form-group form-group-lg" role="dialog" id="details-anhaenger">
56 44
         <label for="kennz">Wie lautet das Kennzeichen Ihres Anhängers?</label>
57 45
     <div class="row justify-content-center">
58
-        <div class="col-sm-10"><input class="form-control" type="text" name="kennz" id="kennz" placeholder="Kennzeichen des Anhängers"></div>
46
+        <div class="col-sm-10"><input class="form-control" type="text" name="kennz" id="kennz" placeholder="Kennzeichen des Anhängers" autocapitalize="characters"></div>
47
+        <small class="form-text text-muted">(Falls bekannt, sonst bitte Name am Anhänger anbringen)</small>
59 48
     </div>
60
-        <small class="form-text text-muted">(Falls bekannt)</small>
61 49
     </div>
62 50
       <div class="form-group form-group-lg">
63 51
         <input class="btn btn-primary btn-lg" type="submit" value="Weiter &gt;" id="btn-submit">
... ...
@@ -1,5 +1,11 @@
1 1
 <?php
2 2
 session_start();
3
+if (isset($_REQUEST['mode']) && $_REQUEST['mode'] == 'local') {
4
+    $_SESSION['mode'] = 'local';
5
+}
6
+if (!isset($_SESSION['mode'])) {
7
+    $_SESSION['mode'] = 'remote';
8
+}
3 9
 if (isset($_REQUEST['type'])) {
4 10
     if ($_REQUEST['type'] == 'upcoming') {
5 11
         $_SESSION['angeliefert'] = false;
... ...
@@ -20,11 +26,13 @@ if (isset($_REQUEST['error'])) {
20 26
     $content .= '<div class="card text-white bg-danger mb-3">
21 27
     <div class="card-header">Fehler</div>';
22 28
     if (isset($_REQUEST['num']) && trim($_REQUEST['num']) != '') {
23
-        $content .= '<div class="card-body">Die eingegebene Nummer scheint keine gültige Nummer zu sein.</div>';
29
+        if (!isset($_REQUEST['name']) || $_REQUEST['name'] != '') {
30
+            $content .= '<div class="card-body">Die eingegebene Nummer scheint keine gültige Nummer zu sein.</div>';
31
+        }
24 32
     } else {
25 33
         $content .= '<div class="card-body">Bitte geben Sie unbedingt eine Telefonnummer an, damit wir Sie erreichen können.</div>';
26 34
     }
27
-    if (!isset($_REQUEST['num']) || trim($_REQUEST['num']) == '') {
35
+    if (!isset($_REQUEST['name']) || trim($_REQUEST['name']) == '') {
28 36
         $content .= '<div class="card-body">Bitte geben Sie Ihren Namen ein, unter dem wir diesen Auftrag führen sollen.</div>';
29 37
     }
30 38
     $content .= '
... ...
@@ -38,15 +46,7 @@ if (isset($_REQUEST['error'])) {
38 46
 }
39 47
 
40 48
 $headline = 'Neuen Auftrag starten';
41
-if (isset($_SESSION['angeliefert'])) {
42
-    if ($_SESSION['angeliefert'] === true) {
43
-        $content .= '<p>Sie haben Obst angeliefert und möchten daraus Ihren Saft erhalten? Hier können Sie den passenden Auftrag online erstellen und müssen daher keinen Papierauftrag ausfüllen.</p>';
44
-    } else {
45
-        $content .= '<p>Sie werden in Kürze Ihr Obst bei uns anliefern und möchten daraus Ihren Saft erhalten? Hier können Sie den passenden Auftrag online erstellen und müssen daher keinen Papierauftrag ausfüllen.</p>';
46
-    }
47
-} else {
48
-    $content .= '<p>Sie haben Ihr Obst bei uns angeliefert oder werden in Kürze Ihr Obst bei uns anliefern und möchten daraus Ihren Saft erhalten? Hier können Sie den passenden Auftrag online erstellen und müssen daher keinen Papierauftrag ausfüllen.</p>';
49
-}
49
+$content .= '<p>Sie haben Obst angeliefert und möchten daraus Ihren Saft erhalten? Hier können Sie den passenden Auftrag online erstellen und müssen daher keinen Papierauftrag ausfüllen.</p>';
50 50
 
51 51
 $checked = ' checked="checked"';
52 52
 if (isset($_REQUEST['noremember'])) {
... ...
@@ -63,11 +63,14 @@ $content .= '
63 63
     <div class="form-group form-group-lg">
64 64
        <div class="input-group"><div class="input-group-prepend"><span class="input-group-text"><span class="fas fa-mobile-alt" aria-hidden="true"></span></span></div><input class="form-control form-control-lg" id="phone" name="phone" type="tel" placeholder="Telefonnummer" autocomplete="mobile tel" value="'.$number.'"></div>
65 65
         <small class="form-text text-muted">Tipp: Wenn Sie hier eine Mobiltelefonnummer eingeben, werden Sie bequem per SMS benachrichtigt.</small>
66
-    </div>
67
-    <div class="form-group form-group-lg">
66
+    </div>';
67
+
68
+if (!isset($_SESSION['mode']) || ($_SESSION['mode'] != 'local')) {
69
+$content .= '<div class="form-group form-group-lg">
68 70
         <div class="form-check"><input class="form-check-input" type="checkbox" name="save" id="check-save" value="yes" '.$checked.'><label for="check-save" class="form-check-label"> Daten in diesem Browser merken.</label></div>
69
-    </div>
70
-    <div class="form-group form-group-lg">
71
+    </div>';
72
+}
73
+$content .= '<div class="form-group form-group-lg">
71 74
         <div><input class="btn btn-primary btn-lg" type="submit" value="Weiter &gt;"></div>
72 75
     </div>
73 76
     </form>
... ...
@@ -91,9 +94,9 @@ $content .= '
91 94
 
92 95
       <!-- Modal body -->
93 96
       <div class="modal-body">
94
-            <p>Wir speichern die eingegebenen Daten zum Zwecke der Erbringung unserer Dienstleistung. Eine Weitergabe der Daten erfolgt nicht. Sie haben einen Anspruch auf Löschung der personenbezogenen Daten, sofern keine laufende oder beauftragte Dienstleistung dem entgegen steht. Kontaktieren Sie uns dazu bitte auf beliebigem Weg, wie im <a target="_blank" href="https://mosterei-wurst.de/impressum/">Impressum</a> angegeben.</p>
97
+            <p>Wir speichern die eingegebenen Daten zum Zwecke der Erbringung unserer Dienstleistung. Eine Weitergabe der Daten erfolgt nicht. Sie haben einen Anspruch auf Löschung der personenbezogenen Daten, sofern keine laufende oder beauftragte Dienstleistung dem entgegen steht. Kontaktieren Sie uns dazu bitte auf beliebigem Weg'.($_SESSION['mode'] != 'local' ? ', wie im <a target="_blank" href="https://mosterei-wurst.de/impressum/">Impressum</a> angegeben' : '').'.</p>
95 98
             <p>Dieses Angebot verwendet Cookies zur Ablaufsteuerung. Einer auftragsbezogenen Kontaktaufnahme stimmen Sie durch Nutzung des Angebots explizit zu.</p>
96
-            <p>Die verwendete Telefonnummer wird (sofern Sie dies nicht abwählen) zusätzlich langfristig in Ihrem Browser gespeichert um Ihnen beim nächsten Besuch einen erhöhten Komfort zu bieten. Diese gespeicherte Nummer können Sie <a href="clear.php?number">sofort aus Ihrem Browser löschen</a>.</p>
99
+'.($_SESSION['mode'] != 'local' ? '<p>Der Name und die verwendete Telefonnummer wird (sofern Sie dies nicht abwählen) zusätzlich langfristig in Ihrem Browser gespeichert um Ihnen beim nächsten Besuch einen erhöhten Komfort zu bieten. Diese gespeicherte Nummer können Sie <a href="clear.php?number">sofort aus Ihrem Browser löschen</a>.</p>' : '').'
97 100
       </div>
98 101
 
99 102
       <!-- Modal footer -->
... ...
@@ -1,8 +1,9 @@
1 1
 <?php
2 2
 session_start();
3 3
 
4
-if (! isset($_SESSION['handle'])) {
5
-    $_SESSION['handle'] = sprintf('%09s', ( round(microtime(true)*10) % 1000000000));
4
+if (! isset($_SESSION['handle']) || !$_SESSION['handle']) {
5
+    $random = base64_encode(md5(microtime()));
6
+    $_SESSION['handle'] = substr(str_replace(array('+', '=', '/'), '', $random), 0, 5);
6 7
     $_SESSION['date'] = date('Y-m-d H:i:s.v');
7 8
     $_SESSION['complete'] = false;
8 9
 }
... ...
@@ -12,12 +13,17 @@ $redirect = NULL;
12 13
 if (isset($_REQUEST['form'])) {
13 14
     switch ($_REQUEST['form']) {
14 15
         case 'start':
15
-            $number = NULL;
16
+            $number = '';
16 17
             if (isset($_REQUEST['phone']) && trim($_REQUEST['phone']) != '') {
17 18
                 $number = trim($_REQUEST['phone']);
18 19
             }
19
-            if (! $number) {
20
-                $redirect = 'index.php?error&num=';
20
+            $name = '';
21
+            if (isset($_REQUEST['name']) && trim($_REQUEST['name']) != '') {
22
+                $name = trim($_REQUEST['name']);
23
+            }
24
+
25
+            if (! $number || !$name) {
26
+                $redirect = 'index.php?error&num='.urlencode($number).'&name='.urlencode($name);
21 27
                 break;
22 28
             }
23 29
 
... ...
@@ -41,32 +47,20 @@ if (isset($_REQUEST['form'])) {
41 47
             }
42 48
             $number = format_number($number);
43 49
 
44
-            $name = trim($_REQUEST['name']);
45
-            if (! $name) {
46
-                $redirect = 'index.php?error&name=';
47
-                break;
48
-            }
49
-
50 50
             $_SESSION['name'] = htmlspecialchars($name);
51
-
52 51
             $_SESSION['phone'] = htmlspecialchars($number);
53
-            if (isset($_REQUEST['save']) && $_REQUEST['save'] == 'yes') {
52
+            if (isset($_REQUEST['save']) && $_REQUEST['save'] == 'yes' && $_SESSION['mode'] != 'local') {
54 53
                 setcookie('NAME', $name, time() + 24*3600*500, "");
55 54
                 setcookie('NUMBER', $number, time() + 24*3600*500, "");
56 55
             }
57 56
 
58
-            if (! $_SESSION['phone']) {
59
-                $redirect = 'index.php?error&num='.urlencode($_REQUEST['phone']);
60
-                break;
61
-            }   
62
-
63 57
             $redirect = 'address.php';
64 58
             break;
65 59
 
66 60
         case 'address':
67
-            $fields = array("fname", "lname", "address", "zip", "city");
61
+            $fields = array("firma", "fname", "lname", "address", "zip", "city");
68 62
             foreach ($fields as $f) {
69
-                if (isset($_REQUEST[$f])) {
63
+                if (isset($_REQUEST[$f]) && trim($_REQUEST[$f]) != '') {
70 64
                     $_SESSION[$f] = trim(htmlspecialchars($_REQUEST[$f]));
71 65
                 } else {
72 66
                     if (! isset($_SESSION[$f])) {
... ...
@@ -78,7 +72,10 @@ if (isset($_REQUEST['form'])) {
78 72
                 $redirect = 'address.php?error';
79 73
                 break;
80 74
             }
81
-            if (isset($_SESSION['angeliefert'])) {
75
+            if ($_SESSION['mode'] == 'local') {
76
+                $_SESSION['angeliefert'] = true;
77
+                $redirect = 'gitterbox.php';
78
+            } elseif (isset($_SESSION['angeliefert'])) {
82 79
                 if ($_SESSION['angeliefert']) {
83 80
                     $redirect = 'gitterbox.php';
84 81
                 } else {
... ...
@@ -156,10 +153,6 @@ if (isset($_REQUEST['form'])) {
156 153
             if (isset($_REQUEST['anmerkungen'])) {
157 154
                 $_SESSION['anmerkungen'] = htmlspecialchars($_REQUEST['anmerkungen']);
158 155
             }
159
-            if (!isset($_REQUEST['agb'])) {
160
-                $redirect = 'summary.php?error';
161
-                break;
162
-            }
163 156
 
164 157
             $_SESSION['complete'] = true;
165 158
             $redirect = 'finish.php?handle='.$_SESSION['handle'];
... ...
@@ -168,13 +161,112 @@ if (isset($_REQUEST['form'])) {
168 161
     }
169 162
 }
170 163
 
164
+$data = array("handle" => $_SESSION['handle']);
165
+
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);
184
+
185
+if (!isset($ret['auftrag'])) {
186
+    echo 'Es gibt ein Problem beim Speichern der Auftragsdaten. Bitte wenden Sie sich persönlich an uns oder verwenden Sie einen Papierauftrag.';
187
+    die();
188
+}
189
+
190
+
191
+$auftrag = $ret['auftrag'];
192
+
193
+
194
+if (isset($_SESSION['kundennr'])) {
195
+    $auftrag['kundennr'] = $_SESSION['kundennr'];
196
+}
197
+$addrfields = array("kundennr" => "kundennr", "firma" => "firma", "fname" => "vorname", "lname" => "nachname", "address" => "adresse", "zip" => "plz", "city" => "ort", "phone" => "telefon");
198
+foreach ($addrfields as $sesskey => $apikey) {
199
+    if (isset($_SESSION[$sesskey]) && $_SESSION[$sesskey] != 'bekannt') {
200
+        $auftrag['kundendaten'][$apikey] = $_SESSION[$sesskey];
201
+    }
202
+}
203
+
204
+if (count($auftrag['bestellung']) > 1) {
205
+    echo 'Diese Bestellung wurde auf anderem Wege an uns übermittelt und kann mit dieser Oberfläche leider nicht verändert werden';
206
+    die();
207
+}
171 208
 
172
-$filename = '../data/'.date('Y').'/'.$_SESSION['handle'].'.json';
173
-if (!file_exists(dirname($filename))) {
174
-    mkdir(dirname($filename), 0700, true);
209
+if (isset($_SESSION['lieferart']) && $_SESSION['lieferart'] == 'gitterbox' && isset($_SESSION['gbcount']) && $_SESSION['gbcount'] > 0) {
210
+    if ($_SESSION['gbcount'] < count($auftrag['bestellung'][0]["gitterbox"])) {
211
+        $auftrag['bestellung'][0]["gitterbox"] = array();
212
+    }
213
+    while (count($auftrag['bestellung'][0]["gitterbox"]) < $_SESSION['gbcount']) {
214
+        $auftrag['bestellung'][0]["gitterbox"][] = array("id" => null);
215
+    }
216
+} else {
217
+    $auftrag['bestellung'][0]["gitterbox"] = array();
175 218
 }
176 219
 
177
-$json = json_encode($_SESSION);
178
-file_put_contents($filename, $json);
220
+if (isset($_SESSION['lieferart']) && $_SESSION['lieferart'] == 'anhaenger') {
221
+    $auftrag['bestellung'][0]['anhaenger'] = array(array("kennz" => null));
222
+    if (isset($_SESSION['kennz']) && $_SESSION['kennz'] != '') {
223
+        $auftrag['bestellung'][0]['anhaenger'][0]["kennz"] = $_SESSION['kennz'];
224
+    }
225
+}
226
+
227
+if (isset($_SESSION['kartons']) && $_SESSION['kartons']) {
228
+    $auftrag['bestellung'][0]['gebrauchte'] = true;
229
+} else {
230
+    $auftrag['bestellung'][0]['gebrauchte'] = false;
231
+}
232
+
233
+$auftrag['bestellung'][0]['neue'] = array();
234
+if (isset($_SESSION['neue']) && $_SESSION['neue'] == 'sonstiges') {
235
+    $auftrag['bestellung'][0]['neue']["sonstiges"] = $_SESSION["sonstiges"];
236
+} elseif (isset($_SESSION['neue']) && $_SESSION['neue'] == '10er') {
237
+    $auftrag['bestellung'][0]['neue']["10er"] = "100%";
238
+} else {
239
+    $auftrag['bestellung'][0]['neue']["5er"] = "100%";
240
+}
241
+
242
+if (isset($_SESSION['frischsaft']) && $_SESSION['frischsaft'] > 0) {
243
+    $auftrag['bestellung'][0]['frischsaft'] = $_SESSION['frischsaft'];
244
+} else {
245
+    $auftrag['bestellung'][0]['frischsaft'] = null;
246
+}
247
+
248
+
249
+if (isset($_SESSION['anmerkungen']) && $_SESSION['anmerkungen'] != '') {
250
+    $auftrag['bestellung'][0]['anmerkungen'] = $_SESSION['anmerkungen'];
251
+}
252
+
253
+if (isset($_SESSION['complete']) && $_SESSION['complete'] == true) {
254
+    $auftrag['status'] = 'bestellt';
255
+}
256
+
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);
264
+
265
+if ($ret['status'] == 'error') {
266
+    echo 'Es gibt ein Problem beim Speichern des Auftrags. Bitte verwenden Sie diesmal einen Papier-Auftrag.';
267
+    die();
268
+}
269
+
270
+
179 271
 
180 272
 header('Location: '.$redirect);
... ...
@@ -76,13 +76,22 @@ if ($_SESSION['neue'] == '5er') {
76 76
     $abfuellung = 'Sie haben uns folgende Nachricht hinterlassen:<br><blockquote>'.$_SESSION['sonstiges'].'</blockquote>';
77 77
 }
78 78
 
79
+$adresse = $_SESSION['fname'].' '.$_SESSION['lname'];
80
+if ($_SESSION['fname'] == 'bekannt') {
81
+    $adresse = $_SESSION['lname'];
82
+}
83
+if ($_SESSION['address'] == 'bekannt' || $_SESSION['city'] == 'bekannt') {
84
+    $adresse .= '<br><i>Adresse wie beim letzten Besuch</i>';
85
+} else {
86
+    $adresse .= '<br>'.$_SESSION['address'].'<br>'.$_SESSION['zip'].' '.$_SESSION['city'];
87
+}
79 88
 
80 89
 $content .= '
81 90
     <p>Aus Ihren Angaben haben wir folgenden Auftrag ermittelt.</p>
82 91
     <p>Wenn diese Angaben stimmen, bestätigen Sie bitte unten unsere Bedingungen und erteilen Sie den Auftrag.</p>
83 92
     <div class="card mb-3">
84 93
         <div class="card-header">Kundendaten</div>
85
-        <div class="card-body"><p class="card-text">'.$_SESSION['fname'].' '.$_SESSION['lname'].'<br>'.$_SESSION['address'].'<br>'.$_SESSION['zip'].' '.$_SESSION['city'].'</p><p class="card-text">Tel.: '.$_SESSION['phone'].'</p>
94
+        <div class="card-body"><p class="card-text">'.$adresse.'</p><p class="card-text">Tel.: '.$_SESSION['phone'].'</p>
86 95
         <a class="btn btn-outline-secondary btn-sm" href="index.php"><i class="fas fa-pencil-alt" aria-hidden="true"></i> Angaben ändern</a>
87 96
         </div>
88 97
     </div>
... ...
@@ -136,7 +145,7 @@ $content .= '
136 145
         <div class="col-sm-10 col-xs-12"><label for="anmerkungen">Hier ist Platz für weitere Anmerkungen</label><textarea class="form-control" name="anmerkungen" placeholder="Weitere Anmerkungen">'.(isset($_SESSION['anmerkungen']) ? $_SESSION['anmerkungen'] : '').'</textarea></div>
137 146
     </div>
138 147
     <div class="form-group form-group-lg row justify-content-center">
139
-        <div class="col-sm-10"><div class="checkbox form-control"><label><input type="checkbox" id="agb" name="agb" value="ok"> Ich habe <a id="terms-link" href="https://mosterei-wurst.de/so-einfach-gehts/anlieferung-ohne-termin/spielregeln-fuer-die-anlieferung-in-unsere-gitterboxen/" target="_blank">die Spielregeln</a> gelesen und bin damit einverstanden.</label></div></div>
148
+        <div class="col-sm-10"><div class="form-control"><label>Ich habe <a id="terms-link" href="https://mosterei-wurst.de/so-einfach-gehts/anlieferung-ohne-termin/spielregeln-fuer-die-anlieferung-in-unsere-gitterboxen/" target="_blank">die Spielregeln</a> gelesen und bin damit einverstanden.</label></div></div>
140 149
     </div>
141 150
     <div class="form-group form-group-lg">
142 151
         <div><input class="btn btn-primary btn-lg" type="submit" value="Auftrag absenden" name="submit" id="submit"></div>
... ...
@@ -1,4 +1,21 @@
1
-<!DOCTYPE html>
1
+<?php
2
+$pages = array(
3
+    1 => 'index.php',
4
+    2 => 'address.php',
5
+    3 => 'gitterbox.php',
6
+    4 => 'gebrauchte.php',
7
+    5 => 'auftrag.php',
8
+    6 => 'frischsaft.php',
9
+    7 => 'summary.php');
10
+
11
+$previous = array_search(basename($_SERVER['PHP_SELF']), $pages) - 1;
12
+if ($previous > 0) {
13
+    $previous = $pages[$previous];
14
+} else {
15
+    $previous = null;
16
+}
17
+
18
+?><!DOCTYPE html>
2 19
 <html lang="de">
3 20
   <head>
4 21
     <meta charset="utf-8">
... ...
@@ -22,30 +39,25 @@
22 39
     }
23 40
     ?>
24 41
    </head>
25
-  <body>
26
-    <div id="banner" class="mb-3 text-center"><img src="assets/images/banner.svg" width="244" height="65" alt="Mosterei Wurst - Murrhardt-Köchersberg - 07192-936436"></div>
42
+  <body style="display: none;">
43
+    <div id="banner" class="mb-3">
44
+        <div id="banner-back">
45
+<?php if ($previous) { ?>
46
+       <a href="<?= $previous ?>"><img src="assets/images/back.svg" width="65" height="65" alt="<"></a>
47
+<?php } ?>
48
+        </div>
49
+        <div id="banner-headline"><h1><?= $headline ?></h1></div>
50
+        <div id="banner-logo"><img src="assets/images/banner.svg" width="244" height="65" alt="Mosterei Wurst - Murrhardt-Köchersberg - 07192-936436"></div>
51
+     </div>
27 52
   <div class="container text-center">
28
-  <h1><?= $headline ?></h1>
29 53
     <?= $content ?>
30 54
     <?php if (basename($_SERVER['PHP_SELF']) != 'finish.php') { ?>
31 55
     <nav aria-label="Zu anderen Schritten springen">
32 56
         <ul class="pagination pagination-sm justify-content-center">
33 57
         <?php 
34
-        $pages = array(
35
-            1 => 'index.php',
36
-            2 => 'address.php',
37
-            3 => 'anlieferung.php',
38
-            4 => 'gitterbox.php',
39
-            5 => 'gebrauchte.php',
40
-            6 => 'auftrag.php',
41
-            7 => 'frischsaft.php',
42
-            8 => 'summary.php');
43
-        if (isset($_SESSION['angeliefert']) && $_SESSION['angeliefert'] === false) {
44
-            $pages[4] = 'gitterbox_spaeter.php';
58
+       foreach ($pages as $index => $file) {   
59
+            echo '<li class="page-item'.($file === basename($_SERVER['PHP_SELF']) ? ' active' : '').'"><a class="page-link" href="'.$file.'">'.$index.'</a></li>';
45 60
         }
46
-        foreach ($pages as $index => $file) {   
47
-        echo '<li class="page-item'.($file === basename($_SERVER['PHP_SELF']) ? ' active' : '').'"><a class="page-link" href="'.$file.'">'.$index.'</a></li>';
48
-}
49 61
 ?>
50 62
     </ul></nav>
51 63
     <a id="allesloeschen" data-toggle="modal" data-target="#allesloeschen-dialog"class="btn btn-sm btn-block btn-outline-danger" href="clear.php">Alle Eingaben löschen und von vorne beginnen</a>
... ...
@@ -70,9 +82,11 @@
70 82
     <div class="card" id="footer">
71 83
         <div class="card-header">Hilfe?</div>
72 84
         <div class="card-body"><p class="card-text">Für Unterstützung bei der Nutzung dieses Formulars können Sie gerne unsere Telefonnummer <a href="tel:+497192936434">07192-936434</a> anrufen.</p></div>
73
-        <div class="card-footer"><a target="_blank" href="https://mosterei-wurst.de/impressum/">Impressum</a> · <a target="_blank" href="https://mosterei-wurst.de/">Website besuchen</a></div>
85
+<?php if ($_SESSION['mode'] != 'local') { ?>
86
+    <div class="card-footer"><a target="_blank" href="https://mosterei-wurst.de/impressum/">Impressum</a> · <a target="_blank" href="https://mosterei-wurst.de/">Website besuchen</a></div>
87
+<?php } /* if ($_SESSION['mode'] != 'local') */ ?>
74 88
     </div>
75
-    <?php } ?>
89
+<?php } /* if (basename($_SERVER['PHP_SELF']) != 'finish.php') */ ?>
76 90
 
77 91
     </div>
78 92