]> wagnertech.de Git - mfinanz.git/blobdiff - bin/mozilla/ct.pl
CVars in Ansprechpartnern.
[mfinanz.git] / bin / mozilla / ct.pl
index 2eb6c242fde9651ce6d6b0a5deece9e4544d34a0..dbf8cdd82d833b44c3c39840ba291e82e42f390f 100644 (file)
@@ -353,9 +353,18 @@ sub form_header {
     $form->{currency} = $form->{curr};
   }
 
-  $form->{CUSTOM_VARIABLES} = CVar->get_custom_variables('module' => 'CT', 'trans_id' => $form->{id});
+  $::form->{CUSTOM_VARIABLES} = { };
+  my %specs = ( CT       => { field => 'id',    name_prefix => '',   },
+                Contacts => { field => 'cp_id', name_prefix => 'cp', },
+              );
 
-  CVar->render_inputs('variables' => $form->{CUSTOM_VARIABLES}) if (scalar @{ $form->{CUSTOM_VARIABLES} });
+  for my $module (keys %specs) {
+    my $spec = $specs{$module};
+
+    $::form->{CUSTOM_VARIABLES}->{$module} = CVar->get_custom_variables(module => $module, trans_id => $::form->{ $spec->{field} });
+    CVar->render_inputs(variables => $::form->{CUSTOM_VARIABLES}->{$module}, name_prefix => $spec->{name_prefix})
+      if scalar @{ $::form->{CUSTOM_VARIABLES}->{$module} };
+  }
 
   $form->header;
   print $form->parse_html_template('ct/form_header');
@@ -672,6 +681,10 @@ sub get_contact {
   CT->query_titles_and_greetings(\%::myconfig, $::form);
   CT->get_contact(\%::myconfig, $::form) if $::form->{cp_id};
 
+  $::form->{CUSTOM_VARIABLES}{Contacts} = CVar->get_custom_variables(module => 'Contacts', trans_id => $::form->{cp_id});
+  CVar->render_inputs(variables => $::form->{CUSTOM_VARIABLES}{Contacts}, name_prefix => 'cp')
+    if scalar @{ $::form->{CUSTOM_VARIABLES}->{Contacts} };
+
   $::form->{contacts_label} = \&_contacts_label;
 
   print $::form->ajax_response_header(), $::form->parse_html_template('ct/_contact');
@@ -711,41 +724,53 @@ sub get_delivery {
 }
 
 sub delete_shipto {
-  $main::lxdebug->enter_sub();
+  $::lxdebug->enter_sub;
+  $::auth->assert('customer_vendor_edit');
 
-  $main::auth->assert('customer_vendor_edit');
+  if (!$::form->{shipto_id}) {
+    flash('error', $::locale->text('No shipto selected to delete'));
+  } else {
 
-  my $form     = $main::form;
-  my %myconfig = %main::myconfig;
+    CT->get_shipto(\%::myconfig, $::form);
 
-  CT->get_shipto(\%myconfig, \%$form);
+    my $shipto = SL::DB::Manager::Shipto->find_by(shipto_id => $::form->{shipto_id});
 
-  unless ($form->{shiptoused}) {
-    CT->delete_shipto($form->{shipto_id});
-    @$form{ grep /^shipto/, keys %$form } = undef;
+    if ($shipto->used) {
+      $shipto->detach->save;
+      flash('info', $::locale->text('Shipto is in use and was flagged invalid.'));
+    } else {
+      $shipto->delete;
+      flash('info', $::locale->text('Shipto deleted.'));
+    }
+    delete $::form->{$_} for grep /^shipto/, keys %$::form;
   }
 
   edit();
 
-  $main::lxdebug->leave_sub();
+  $::lxdebug->leave_sub;
 }
 
 sub delete_contact {
   $::lxdebug->enter_sub;
   $::auth->assert('customer_vendor_edit');
 
-  CT->get_contact(\%::myconfig, $::form);
+  if (!$::form->{cp_id}) {
+    flash('error', $::locale->text('No contact selected to delete'));
+  } else {
 
-  my $contact = SL::DB::Manager::Contact->find_by(cp_id => $::form->{cp_id});
+    CT->get_contact(\%::myconfig, $::form);
 
-  if ($contact->used) {
-    $contact->detach;
-    flash('info', $::locale->text('Contact is in use and was flagged invalid.'));
-  } else {
-    $contact->delete;
-    flash('info', $::locale->text('Contact deleted.'));
+    my $contact = SL::DB::Manager::Contact->find_by(cp_id => $::form->{cp_id});
+
+    if ($contact->used) {
+      $contact->detach->save;
+      flash('info', $::locale->text('Contact is in use and was flagged invalid.'));
+    } else {
+      $contact->delete;
+      flash('info', $::locale->text('Contact deleted.'));
+    }
+    delete $::form->{$_} for grep /^cp_/, keys %$::form;
   }
-  delete $::form->{$_} for grep /^cp_/, keys %$::form;
 
   edit();