Contacts loeschbar gemacht (gibt noch kleinere probleme mit dem javascript)
authorSven Schöling <s.schoeling@linet-services.de>
Tue, 19 Feb 2008 15:59:08 +0000 (15:59 +0000)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 19 Feb 2008 15:59:08 +0000 (15:59 +0000)
SL/CT.pm
bin/mozilla/ct.pl
locale/de/all
locale/de/ct
templates/webpages/ct/form_header_de.html
templates/webpages/ct/form_header_master.html

index 6cd9b91..96b6b9c 100644 (file)
--- a/SL/CT.pm
+++ b/SL/CT.pm
@@ -827,6 +827,14 @@ sub get_contact {
 
   map { $form->{$_} = $ref->{$_} } keys %$ref;
 
+  $query = qq|SELECT COUNT(cp_id) AS used FROM (
+    SELECT cp_id FROM oe UNION
+    SELECT cp_id FROM ar UNION
+    SELECT cp_id FROM ap UNION
+    SELECT cp_id FROM delivery_orders
+  ) AS cpid WHERE cp_id = ? OR ? = 0|;
+  ($form->{cp_used}) = selectfirst_array_query($form, $dbh, $query, ($form->{cp_id})x2);
+
   $sth->finish;
   $dbh->disconnect;
 
@@ -1003,4 +1011,21 @@ sub delete_shipto {
   $main::lxdebug->leave_sub();
 }
 
+sub delete_shipto {
+  $main::lxdebug->enter_sub();
+
+  my $self      = shift;
+  my $shipto_id = shift;
+
+  my $form      = $main::form;
+  my %myconfig  = %main::myconfig;
+  my $dbh       = $form->get_standard_dbh(\%myconfig);
+
+  do_query($form, $dbh, qq|UPDATE contacts SET cp_cv_id = NULL WHERE cp_id = ?|, $shipto_id);
+
+  $dbh->commit();
+
+  $main::lxdebug->leave_sub();
+}
+
 1;
index f72362e..2a6aaca 100644 (file)
@@ -565,7 +565,7 @@ sub get_contact {
 
   CT->get_contact(\%myconfig, \%$form);
   print $cgi->header(), join '__pjx__', map $form->{"cp_$_"}, 
-    qw(name greeting title givenname phone1 phone2 email abteilung fax mobile1 mobile2 satphone satfax project privatphone privatemail birthday);
+    qw(name greeting title givenname phone1 phone2 email abteilung fax mobile1 mobile2 satphone satfax project privatphone privatemail birthday used);
   $lxdebug->leave_sub();
 
 }
@@ -603,7 +603,21 @@ sub delete_shipto {
 
   @$form{ grep /^shipto/, keys %$form } = undef;
 
-  display();
+  edit();
+
+  $main::lxdebug->leave_sub();
+}
+
+sub delete_contact {
+  $main::lxdebug->enter_sub();
+
+  $auth->assert('customer_vendor_edit');
+
+  CT->delete_shipto($form->{cp_id});
+
+  @$form{ grep /^cp_/, keys %$form } = undef;
+
+  edit();
 
   $main::lxdebug->leave_sub();
 }
index 4835f11..a7b2ff5 100644 (file)
@@ -437,6 +437,7 @@ aktualisieren wollen?',
   'Defaults saved.'             => 'Die Standardeinstellungen wurden gespeichert.',
   'Delete'                      => 'Löschen',
   'Delete Account'              => 'Konto löschen',
+  'Delete Contact'              => 'Ansprechpartner löschen',
   'Delete Dataset'              => 'Datenbank löschen',
   'Delete Shipto'               => 'Lieferadresse löschen',
   'Delete delivery order'       => 'Lieferschein l&ouml;schen',
index a2d15c6..79a9caa 100644 (file)
@@ -236,6 +236,7 @@ $self->{subs} = {
   'erfassen'                    => 'add',
   'weiter'                      => 'continue',
   'löschen'                     => 'delete',
+  'ansprechpartner_löschen'     => 'delete_contact',
   'lieferadresse_löschen'       => 'delete_shipto',
   'neue_ware'                   => 'new_part',
   'speichern'                   => 'save',
index 77a226a..6a3749e 100644 (file)
              name       = 'cp_id',
              id         = 'cp_id',
              DATA       = CONTACTS,
-             onChange   = "get_contact(['cp_id__' + this.value], ['cp_name', 'cp_greeting', 'cp_title', 'cp_givenname', 'cp_phone1', 'cp_phone2', 'cp_email', 'cp_abteilung', 'cp_fax', 'cp_mobile1', 'cp_mobile2', 'cp_satphone', 'cp_satfax', 'cp_project', 'cp_privatphone', 'cp_privatemail', 'cp_birthday'])",
+             onChange   = "get_contact(['cp_id__'+this.value],['cp_name','cp_greeting','cp_title','cp_givenname','cp_phone1','cp_phone2','cp_email','cp_abteilung','cp_fax','cp_mobile1','cp_mobile2','cp_satphone','cp_satfax','cp_project','cp_privatphone','cp_privatemail','cp_birthday',enable_delete_contact])",
              id_key     = 'cp_id',
              label_sub  = 'contacts_label',
        -%]
      </tr>
     </table>
 
+    <input type="submit" id="delete_contact" name="action" value="Ansprechpartner löschen" disabled>
     <br style="clear: left" />
    </div>
 
        Calendar.setup({ inputField : "FU_date", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BR", button : "FU_date_trigger" });
        //-->
 
-   function enable_delete_shipto(used){ var s=document.getElementById('delete_shipto'); if (s) s.disabled = (used > 0 ? true : false); }
+   function enable_delete_shipto(used) { var s=document.getElementById('delete_shipto');  if (s) s.disabled = (used > 0 ? true : false); }
+   function enable_delete_contact(used){ var s=document.getElementById('delete_contact'); if (s) s.disabled = (used > 0 ? true : false); }
   </script>
index 0dadc08..0ab1aff 100644 (file)
              name       = 'cp_id',
              id         = 'cp_id',
              DATA       = CONTACTS,
-             onChange   = "get_contact(['cp_id__' + this.value], ['cp_name', 'cp_greeting', 'cp_title', 'cp_givenname', 'cp_phone1', 'cp_phone2', 'cp_email', 'cp_abteilung', 'cp_fax', 'cp_mobile1', 'cp_mobile2', 'cp_satphone', 'cp_satfax', 'cp_project', 'cp_privatphone', 'cp_privatemail', 'cp_birthday'])",
+             onChange   = "get_contact(['cp_id__'+this.value],['cp_name','cp_greeting','cp_title','cp_givenname','cp_phone1','cp_phone2','cp_email','cp_abteilung','cp_fax','cp_mobile1','cp_mobile2','cp_satphone','cp_satfax','cp_project','cp_privatphone','cp_privatemail','cp_birthday',enable_delete_contact])",
              id_key     = 'cp_id',
              label_sub  = 'contacts_label',
        -%]
      </tr>
     </table>
 
+    <input type="submit" id="delete_contact" name="action" value="<translate>Delete Contact</translate>" disabled>
     <br style="clear: left" />
    </div>
 
        Calendar.setup({ inputField : "FU_date", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BR", button : "FU_date_trigger" });
        //-->
 
-   function enable_delete_shipto(used){ var s=document.getElementById('delete_shipto'); if (s) s.disabled = (used > 0 ? true : false); }
+   function enable_delete_shipto(used) { var s=document.getElementById('delete_shipto');  if (s) s.disabled = (used > 0 ? true : false); }
+   function enable_delete_contact(used){ var s=document.getElementById('delete_contact'); if (s) s.disabled = (used > 0 ? true : false); }
   </script>