Lieferbedingungen analog zu Zahlungsbedingungen eingeführt.
[kivitendo-erp.git] / bin / mozilla / ct.pl
index a81f451..15d922d 100644 (file)
@@ -52,8 +52,10 @@ use SL::CVar;
 use SL::Request qw(flatten);
 use SL::DB::Business;
 use SL::DB::Default;
+use SL::DB::DeliveryTerm;
 use SL::Helper::Flash;
 use SL::ReportGenerator;
+use SL::MoreCommon qw(uri_encode);
 
 require "bin/mozilla/common.pl";
 require "bin/mozilla/reportgenerator.pl";
@@ -66,18 +68,13 @@ use strict;
 sub add {
   $main::lxdebug->enter_sub();
 
-  $main::auth->assert('customer_vendor_edit');
-
-  my $form     = $main::form;
-  my %myconfig = %main::myconfig;
-
-  $form->{title}    = "Add";
-  $form->{callback} = "$form->{script}?action=add&db=$form->{db}" unless $form->{callback};
+  my $url = 'controller.pl?action=CustomerVendor/add&db='. ($::form->{db} eq 'vendor' ? 'vendor' : 'customer');
 
-  CT->populate_drop_down_boxes(\%myconfig, \%$form);
+  if ( $::form->{callback} ) {
+    $url .= '&callback='. uri_encode($::form->{callback});
+  }
 
-  &form_header;
-  &form_footer;
+  print $::form->redirect_header($url);
 
   $main::lxdebug->leave_sub();
 }
@@ -101,9 +98,7 @@ sub search {
                                                                            'include_prefix' => 'l_',
                                                                            'include_value'  => 'Y');
 
-  $form->{jsscript} = 1;
   $form->{title}    = $form->{IS_CUSTOMER} ? $locale->text('Customers') : $locale->text('Vendors');
-  $::request->{layout}->focus('#name');
 
   $form->header();
   print $form->parse_html_template('ct/search');
@@ -161,6 +156,7 @@ sub list_names {
   push @options, $locale->text('Billing/shipping address (city)')    . " : $form->{addr_city}" if $form->{addr_city};
   push @options, $locale->text('Billing/shipping address (zipcode)') . " : $form->{zipcode}"   if $form->{addr_zipcode};
   push @options, $locale->text('Billing/shipping address (street)')  . " : $form->{street}"    if $form->{addr_street};
+  push @options, $locale->text('Billing/shipping address (country)') . " : $form->{country}"   if $form->{addr_country};
 
   if ($form->{business_id}) {
     my $business = SL::DB::Manager::Business->find_by(id => $form->{business_id});
@@ -171,9 +167,9 @@ sub list_names {
   }
 
   my @columns = (
-    'id',        'name',      "$form->{db}number",   'contact',  'phone',
-    'fax',       'email',     'taxnumber',           'street',   'zipcode' , 'city',
-    'business',  'invnumber', 'ordnumber',           'quonumber'
+    'id',        'name',      "$form->{db}number",   'contact',   'phone',    'discount',
+    'fax',       'email',     'taxnumber',           'street',    'zipcode' , 'city',
+    'business',  'invnumber', 'ordnumber',           'quonumber', 'salesman', 'country'
   );
 
   my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs };
@@ -199,6 +195,9 @@ sub list_names {
     'street'            => { 'text' => $locale->text('Street'), },
     'zipcode'           => { 'text' => $locale->text('Zipcode'), },
     'city'              => { 'text' => $locale->text('City'), },
+    'country'           => { 'text' => $locale->text('Country'), },
+    'salesman'          => { 'text' => $locale->text('Salesman'), },
+    'discount'          => { 'text' => $locale->text('Discount'), },
     %column_defs_cvars,
   );
 
@@ -206,9 +205,10 @@ sub list_names {
 
   my @hidden_variables  = ( qw(
       db status obsolete name contact email cp_name addr_street addr_zipcode
-      addr_city business_id
+      addr_city addr_country business_id
     ), "$form->{db}number",
     map({ "cvar_$_->{name}" } @searchable_custom_variables),
+    map({'cvar_'. $_->{name} .'_qtyop'} grep({$_->{type} eq 'number'} @searchable_custom_variables)),
     map({ "l_$_" } @columns),
   );
 
@@ -266,9 +266,10 @@ sub list_names {
 
     if ($ref->{id} ne $previous_id) {
       $previous_id = $ref->{id};
+      $ref->{discount} = $form->format_amount(\%myconfig, $ref->{discount} * 100.0, 2);
       map { $row->{$_}->{data} = $ref->{$_} } @columns;
 
-      $row->{name}->{link}  = build_std_url('action=edit', 'id=' . E($ref->{id}), 'callback', @hidden_nondefault);
+      $row->{name}->{link}  = build_std_url('script=controller.pl', 'action=CustomerVendor/edit', 'id=' . E($ref->{id}), 'callback', @hidden_nondefault);
       $row->{email}->{link} = 'mailto:' . E($ref->{email});
     }
 
@@ -301,8 +302,8 @@ sub list_contacts {
   my $cvar_configs = CVar->get_configs('module' => 'Contacts');
 
   my @columns      = qw(
-    cp_id vcname vcnumber cp_name cp_givenname cp_street cp_zipcode cp_city cp_phone1 cp_phone2
-    cp_mobile1 cp_mobile2 cp_email cp_abteilung cp_birthday cp_gender
+    cp_id vcname vcnumber cp_name cp_givenname cp_street cp_zipcode cp_city cp_phone1 cp_phone2 cp_privatphone
+    cp_mobile1 cp_mobile2 cp_fax cp_email cp_privatemail cp_abteilung cp_position cp_birthday cp_gender
   );
 
   my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs };
@@ -335,8 +336,12 @@ sub list_contacts {
     'cp_mobile2'   => { 'text' => $::locale->text('Mobile2'), },
     'cp_email'     => { 'text' => $::locale->text('E-mail'), },
     'cp_abteilung' => { 'text' => $::locale->text('Department'), },
+    'cp_position'  => { 'text' => $::locale->text('Function/position'), },
     'cp_birthday'  => { 'text' => $::locale->text('Birthday'), },
     'cp_gender'    => { 'text' => $::locale->text('Gender'), },
+    'cp_fax'       => { 'text' => $::locale->text('Fax'), },
+    'cp_privatphone' => { 'text' => $::locale->text('Private Phone') },
+    'cp_privatemail' => { 'text' => $::locale->text('Private E-mail') },
     %column_defs_cvars,
   );
 
@@ -392,9 +397,12 @@ sub list_contacts {
   foreach my $ref (@contacts) {
     my $row = { map { $_ => { 'data' => $ref->{$_} } } @columns };
 
-    $row->{vcname}->{link}   = build_std_url('action=edit', 'id=' . E($ref->{vcid}), 'db=' . E($ref->{db}), 'callback', @hidden_nondefault);
+    $row->{vcname}->{link}   = build_std_url('script=controller.pl', 'action=CustomerVendor/edit', 'id=' . E($ref->{vcid}), 'db=' . E($ref->{db}), 'callback', @hidden_nondefault);
     $row->{vcnumber}->{link} = $row->{vcname}->{link};
-    $row->{cp_email}->{link} = 'mailto:' . E($ref->{cp_email});
+
+    for (qw(cp_email cp_privatemail)) {
+      $row->{$_}->{link} = 'mailto:' . E($ref->{$_}) if $ref->{$_};
+    }
 
     $report->add_data($row);
   }
@@ -454,19 +462,19 @@ sub form_header {
                    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->get_lists(customers => { key => "ALL_SALESMAN_CUSTOMERS", business_is_salesman => 1 }) if $::instance_conf->get_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_DELIVERY_TERMS}     = SL::DB::Manager::DeliveryTerm->get_all_sorted();
+
   $form->{taxincluded}    = ($form->{taxincluded}) ? "checked" : "";
   $form->{is_customer}    = $form->{db}     eq 'customer';
   $form->{shipto_label}   = \&_shipto_label;
   $form->{contacts_label} = \&_contacts_label;
   $form->{taxzone_id}     = 0                                                               if !$form->{id};
-  $form->{jsscript}       = 1;
   $form->{SHIPTO_ALL}     = [ +{ shipto_id => '0', shiptoname => $::locale->text('All') }, @{ $form->{SHIPTO} } ];
-  $::request->{layout}->focus("#greeting");
 
   $form->{title} = $form->{title_save}
                 || $locale->text("$form->{title} " . ucfirst $form->{db}) . ($form->{title} eq "Edit" ? " $form->{name}" : '');
@@ -525,7 +533,7 @@ sub _do_save {
 
   $::form->isblank("name", $::locale->text("Name missing!"));
 
-  if ($::form->{new_salesman_id} && $::lx_office_conf{features}->{vertreter}) {
+  if ($::form->{new_salesman_id} && $::instance_conf->get_vertreter) {
     $::form->{salesman_id} = $::form->{new_salesman_id};
     delete $::form->{new_salesman_id};
   }