Bernd Wurst commited on 2024-09-20 07:41:52
Zeige 7 geänderte Dateien mit 134 Einfügungen und 1 Löschungen.
... | ... |
@@ -0,0 +1,21 @@ |
1 |
+function email_click( event ) { |
|
2 |
+ $('#notification').val('email'); |
|
3 |
+ $('form').submit(); |
|
4 |
+ event.preventDefault(); |
|
5 |
+} |
|
6 |
+ |
|
7 |
+ |
|
8 |
+function sms_click( event ) { |
|
9 |
+ $('#notification').val('sms'); |
|
10 |
+ $('form').submit(); |
|
11 |
+ event.preventDefault(); |
|
12 |
+} |
|
13 |
+ |
|
14 |
+ |
|
15 |
+$(function () { |
|
16 |
+ |
|
17 |
+ $('#btn-email').click(email_click); |
|
18 |
+ $('#btn-sms').click(sms_click); |
|
19 |
+ |
|
20 |
+}); |
|
21 |
+ |
... | ... |
@@ -105,6 +105,22 @@ input[type=submit] { |
105 | 105 |
margin-bottom: 0.5em; |
106 | 106 |
} |
107 | 107 |
|
108 |
+#btn-sms { |
|
109 |
+ min-width: 280px; |
|
110 |
+ padding-top: 170px; |
|
111 |
+ background-image: url("images/sms.png"); |
|
112 |
+ background-repeat: no-repeat; |
|
113 |
+ background-position: center 10px; |
|
114 |
+} |
|
115 |
+ |
|
116 |
+#btn-email { |
|
117 |
+ min-width: 280px; |
|
118 |
+ padding-top: 170px; |
|
119 |
+ background-image: url("images/email.png"); |
|
120 |
+ background-repeat: no-repeat; |
|
121 |
+ background-position: center 10px; |
|
122 |
+} |
|
123 |
+ |
|
108 | 124 |
#btn-gitterbox { |
109 | 125 |
min-width: 280px; |
110 | 126 |
padding-top: 170px; |
... | ... |
@@ -61,6 +61,32 @@ function suche_kunde($name, $number) { |
61 | 61 |
*/ |
62 | 62 |
} |
63 | 63 |
|
64 |
+function kunde_erste_kontakte($customerno) { |
|
65 |
+ $ret = api_call('GET', 'customers/'.(int) $customerno); |
|
66 |
+ if ($ret['status_code'] >= 400) { |
|
67 |
+ // Fehler. Belästige den Kunden nicht damit |
|
68 |
+ return []; |
|
69 |
+ } |
|
70 |
+ $ret = $ret['data']; |
|
71 |
+ $kontakte = []; |
|
72 |
+ if (isset($ret['phone']) && str_starts_with($ret['phone'], '+491')) { |
|
73 |
+ $kontakte['mobil'] = $ret['phone']; |
|
74 |
+ } |
|
75 |
+ if (isset($ret['email']) && $ret['email']) { |
|
76 |
+ $kontakte['email'] = $ret['email']; |
|
77 |
+ } |
|
78 |
+ foreach ($ret['contacts'] as $c) { |
|
79 |
+ if (!isset($kontakte['mobil']) && isset($c['phone']) && str_starts_with($c['phone'], '+491')) { |
|
80 |
+ $kontakte['mobil'] = $c['phone']; |
|
81 |
+ } |
|
82 |
+ if (!isset($kontakte['email']) && isset($c['email']) && $c['email']) { |
|
83 |
+ $kontakte['email'] = $c['email']; |
|
84 |
+ } |
|
85 |
+ } |
|
86 |
+ return $kontakte; |
|
87 |
+} |
|
88 |
+ |
|
89 |
+ |
|
64 | 90 |
function kunde_hat_email($customerno) { |
65 | 91 |
$ret = api_call('GET', 'customers/'.(int) $customerno); |
66 | 92 |
if ($ret['status_code'] >= 400) { |
... | ... |
@@ -141,7 +167,7 @@ function erstelle_kunde($daten) { |
141 | 167 |
} |
142 | 168 |
} |
143 | 169 |
|
144 |
-require_once('vendor/autoload.php'); |
|
170 |
+require_once(__DIR__.'/../vendor/autoload.php'); |
|
145 | 171 |
|
146 | 172 |
function format_number_national($number) { |
147 | 173 |
$phoneNumberUtil = \libphonenumber\PhoneNumberUtil::getInstance(); |
... | ... |
@@ -0,0 +1,54 @@ |
1 |
+<?php |
|
2 |
+require_once "lib/api.php"; |
|
3 |
+require_once "lib/auftrag.php"; |
|
4 |
+session_start(); |
|
5 |
+ |
|
6 |
+if (!isset($_SESSION['phone']) || (!isset($_SESSION['name']) && !isset($_SESSION['firma']) && !isset($_SESSION['lname']))) { |
|
7 |
+ header('Location: index.php?error&num='.urlencode($_SESSION['phone']).'&name='.urlencode($_SESSION['name'])); |
|
8 |
+ die(); |
|
9 |
+} |
|
10 |
+ |
|
11 |
+// Hier ist der Kunde erstellt und mit Kundennummer bekannt. |
|
12 |
+ |
|
13 |
+$headline = 'Benachrichtigung wählen'; |
|
14 |
+$content = '<p>Wie möchten Sie bevorzugt kontaktiert werden, wenn Ihr Auftrag erledigt ist?</p> |
|
15 |
+ <form class="form" action="save.php" method="post"> |
|
16 |
+ <input type="hidden" name="form" value="notification"> |
|
17 |
+ <div class="form-group form-group-lg row">'; |
|
18 |
+ |
|
19 |
+$num = 0; |
|
20 |
+$kontakte = kunde_erste_kontakte($_SESSION['kundennr']); |
|
21 |
+ |
|
22 |
+if (isset($kontakte['email'])) { |
|
23 |
+ $num++; |
|
24 |
+ $email = $kontakte['email']; |
|
25 |
+ if ($_SESSION['email'] != $kontakte['email']) { |
|
26 |
+ // Adresse wurde nicht grade eingegeben, verschleiere Adresse |
|
27 |
+ list($local, $domain) = explode('@', $kontakte['email']); |
|
28 |
+ $local = substr_replace($local, '...', 2); |
|
29 |
+ $email = $local . '@' . $domain; |
|
30 |
+ } |
|
31 |
+ $content .= ' |
|
32 |
+ <div class="col-sm-6"><a href="#" class="btn btn-block btn-lg btn-light" id="btn-email">E-Mail<br>an '.$email.'</a></div>'; |
|
33 |
+} |
|
34 |
+if (isset($kontakte['mobil'])) { |
|
35 |
+ $num++; |
|
36 |
+ $phone = format_number_national($_SESSION['phone']); |
|
37 |
+ if (!str_starts_with($phone, '01')) { |
|
38 |
+ $phone = substr_replace(format_number_national($kontakte['mobil']), ' ...', 4, 5); |
|
39 |
+ } |
|
40 |
+ $content .= ' |
|
41 |
+ <div class="col-sm-6"><a href="#" class="btn btn-block btn-lg btn-light" id="btn-sms">SMS<br>an '.$phone.'</a></div>'; |
|
42 |
+} |
|
43 |
+$content .= '<input type="hidden" name="notification" id="notification" value=""> |
|
44 |
+ </div>'; |
|
45 |
+ |
|
46 |
+if ($num < 2) { |
|
47 |
+ // Nichts zum aussuchen! |
|
48 |
+ header('Location: gitterbox.php'); |
|
49 |
+} |
|
50 |
+ |
|
51 |
+ |
|
52 |
+$content .= '</form>'; |
|
53 |
+ |
|
54 |
+include("template.php"); |
... | ... |
@@ -129,6 +129,21 @@ if (isset($_REQUEST['form'])) { |
129 | 129 |
} |
130 | 130 |
} |
131 | 131 |
|
132 |
+ $redirect = 'notification.php'; |
|
133 |
+ break; |
|
134 |
+ |
|
135 |
+ case 'notification': |
|
136 |
+ if (isset($_REQUEST['notification'])) { |
|
137 |
+ if ($_REQUEST['notification'] == 'sms') { |
|
138 |
+ $_SESSION['notificationPreference'] = 'sms'; |
|
139 |
+ } elseif ($_REQUEST['notification'] == 'whatsapp') { |
|
140 |
+ $_SESSION['notificationPreference'] = 'whatsapp'; |
|
141 |
+ } elseif ($_REQUEST['notification'] == 'email') { |
|
142 |
+ $_SESSION['notificationPreference'] = 'email'; |
|
143 |
+ } else { |
|
144 |
+ $_SESSION['notificationPreference'] = ''; |
|
145 |
+ } |
|
146 |
+ } |
|
132 | 147 |
if ($_SESSION['mode'] == 'local') { |
133 | 148 |
$_SESSION['angeliefert'] = true; |
134 | 149 |
$redirect = 'gitterbox.php'; |
... | ... |
@@ -243,6 +259,7 @@ if (isset($_SESSION['neue'])) { |
243 | 259 |
$auftrag['notificationName'] = $_SESSION['name']; |
244 | 260 |
$auftrag['notificationPhone'] = $_SESSION['phone']; |
245 | 261 |
$auftrag['notificationEmail'] = isset($_SESSION['email']) ? $_SESSION['email'] : null; |
262 |
+ $auftrag['notificationPreference'] = $_SESSION['notificationPreference']; |
|
246 | 263 |
} |
247 | 264 |
// fruitType |
248 | 265 |
$ret = api_call('GET', 'fruitTypes'); |
249 | 266 |