Zeige Kundenkontakte immer zuerst, Entferne Zuordnung als Kundenkontakt wenn die Adresse gelöscht wird
Bernd Wurst

Bernd Wurst commited on 2018-01-24 10:34:58
Zeige 2 geänderte Dateien mit 14 Einfügungen und 4 Löschungen.

... ...
@@ -235,6 +235,16 @@ function update_pending($contactid) {
235 235
 
236 236
 function delete_contact($id) {
237 237
     $c = get_contact($id);
238
+    $kundenkontakte = get_kundenkontakte();
239
+    if ($id == $kundenkontakte['kunde']) {
240
+        system_failure("Die Stamm-Adresse kann nicht gelöscht werden, bitte erst eine andere Adresse als Stamm-Adresse festlegen!");
241
+    }
242
+    if ($id == $kundenkontakte['rechnung']) {
243
+        set_kundenkontakt('rechnung', NULL);
244
+    }
245
+    if ($id == $kundenkontakte['extern']) {
246
+        set_kundenkontakt('extern', NULL);
247
+    }
238 248
     if ($c['nic_id']) {
239 249
         // Lösche bei der Registry
240 250
         $c['state'] = 'deleted';
... ...
@@ -32,18 +32,18 @@ $kundenkontakte = get_kundenkontakte();
32 32
 output('<p>Sie haben aktuell diese Adressen gespeichert:</p>
33 33
 <div class="contact-list">');
34 34
 
35
-$liste = array_merge(array($kundenkontakte['kunde']), array_keys($contacts));
36
-$kundenadresse_displayed = false;
35
+$liste = array_merge(array_filter(array($kundenkontakte['kunde'], $kundenkontakte['rechnung'], $kundenkontakte['extern'])), array_keys($contacts));
36
+$already_displayed = array();
37 37
 foreach ($liste as $id) {
38
-    if ($kundenadresse_displayed && $id == $kundenkontakte['kunde']) {
38
+    if (in_array($id, $already_displayed)) {
39 39
         continue;
40 40
     }
41
+    $already_displayed[] = $id;
41 42
     $cssclass = '';
42 43
     $contact = $contacts[$id];
43 44
     $usage = array();
44 45
     if ($id == $kundenkontakte['kunde']) {
45 46
         $cssclass='mainaddress';
46
-        $kundenadresse_displayed = true;
47 47
         $usage[] = 'Stamm-Adresse';
48 48
     }
49 49
     if ($id == $kundenkontakte['extern']) {
50 50