Merge branch 'master' of git@vc.linet-services.de:public/lx-office-erp
[kivitendo-erp.git] / bin / mozilla / ct.pl
index b525535..9e814e1 100644 (file)
@@ -314,17 +314,17 @@ sub form_header {
   my %myconfig = %main::myconfig;
   my $locale   = $main::locale;
 
-  $form->get_lists(employees  => "ALL_EMPLOYEES",
-                   taxzones   => "ALL_TAXZONES",
+  $form->get_lists(taxzones   => "ALL_TAXZONES",
                    currencies => "ALL_CURRENCIES");
   $form->get_pricegroup(\%myconfig, { all => 1 });
 
   $form->get_lists(customers => { key => "ALL_SALESMAN_CUSTOMERS", business_is_salesman => 1 }) if $::lx_office_conf{features}->{vertreter};
+  $form->{ALL_EMPLOYEES}          = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{FU_created_for_user},  deleted => 0 ] ]);
+  $form->{ALL_SALESMEN}           = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{salesman_id},  deleted => 0 ] ]);
+  $form->{USER}                   = SL::DB::Manager::Employee->current;
 
-  $form->{ALL_SALESMEN}   = $form->{ALL_EMPLOYEES};
   $form->{taxincluded}    = ($form->{taxincluded}) ? "checked" : "";
   $form->{is_customer}    = $form->{db}     eq 'customer';
-  $form->{salesman_label} = sub { $_[0]->{name} ne "" ? $_[0]->{name} : $_[0]->{login} };
   $form->{shipto_label}   = \&_shipto_label;
   $form->{contacts_label} = \&_contacts_label;
   $form->{taxzone_id}     = 0                                                               if !$form->{id};
@@ -711,41 +711,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 {
+
+    CT->get_contact(\%::myconfig, $::form);
 
-  my $contact = SL::DB::Manager::Contact->find_by(cp_id => $::form->{cp_id});
+    my $contact = SL::DB::Manager::Contact->find_by(cp_id => $::form->{cp_id});
 
-  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.'));
+    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();