Unterstützung für PostgreSQL 12 Teil 2
[kivitendo-erp.git] / bin / mozilla / ct.pl
index a424375..77770d8 100644 (file)
@@ -56,6 +56,7 @@ use SL::DB::Business;
 use SL::DB::Default;
 use SL::DB::DeliveryTerm;
 use SL::ReportGenerator;
+use SL::Locale::String qw(t8);
 use SL::MoreCommon qw(uri_encode);
 
 require "bin/mozilla/common.pl";
@@ -88,6 +89,8 @@ sub search {
 
   $form->{title}    = $form->{IS_CUSTOMER} ? $locale->text('Customers') : $locale->text('Vendors');
 
+  setup_ct_search_action_bar();
+
   $form->header();
   print $form->parse_html_template('ct/search');
 
@@ -106,6 +109,8 @@ sub search_contact {
                                                                            'include_value'  => 'Y');
 
   $::form->{title} = $::locale->text('Search contacts');
+
+  setup_ct_search_contact_action_bar();
   $::form->header;
   print $::form->parse_html_template('ct/search_contact');
 
@@ -169,10 +174,12 @@ sub list_names {
   };
 
   my @columns = (
-    'id',        'name',    "$form->{db}number",   'contact',   'phone',    'discount',
+    'id',        'name',    "$form->{db}number",   'contact', 'main_contact_person',
+    'phone',    'discount',
     'fax',       'email',   'taxnumber',           'street',    'zipcode' , 'city',
     'business',  'payment', 'invnumber', 'ordnumber',           'quonumber', 'salesman',
-    'country',   'gln',     'insertdate',           'pricegroup'
+    'country',   'gln',     'insertdate',           'pricegroup', 'contact_origin', 'invoice_mail',
+    'creditlimit', 'ustid', 'commercial_court', 'delivery_order_mail'
   );
 
   my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs };
@@ -186,6 +193,7 @@ sub list_names {
     "$form->{db}number" => { 'text' => $locale->text('Number'), },
     'name'              => { 'text' => $form->{IS_CUSTOMER} ? $::locale->text('Customer Name') : $::locale->text('Vendor Name'), },
     'contact'           => { 'text' => $locale->text('Contact'), },
+    'main_contact_person'  => { 'text' => $locale->text('Main Contact Person'), },
     'phone'             => { 'text' => $locale->text('Phone'), },
     'fax'               => { 'text' => $locale->text('Fax'), },
     'email'             => { 'text' => $locale->text('E-mail'), },
@@ -205,6 +213,12 @@ sub list_names {
     'payment'           => { 'text' => $locale->text('Payment Terms'), },
     'insertdate'        => { 'text' => $locale->text('Insert Date'), },
     'pricegroup'        => { 'text' => $locale->text('Pricegroup'), },
+    'invoice_mail'      => { 'text' => $locale->text('Email of the invoice recipient'), },
+    'delivery_order_mail' => { 'text' => $locale->text('Email of the delivery order recipient'), },
+    'contact_origin'    => { 'text' => $locale->text('Origin of personal data'), },
+    'creditlimit'       => { 'text' => $locale->text('Credit Limit'), },
+    'ustid'             => { 'text' => $locale->text('VAT ID'), },
+    'commercial_court'  => { 'text' => $locale->text('Commercial court'), },
     %column_defs_cvars,
   );
 
@@ -215,6 +229,8 @@ sub list_names {
       addr_city addr_country addr_gln business_id salesman_id insertdateto insertdatefrom all
     ), "$form->{db}number",
     map({ "cvar_$_->{name}" } @searchable_custom_variables),
+    map({'cvar_'. $_->{name} .'_from'} grep({$_->{type} eq 'date'} @searchable_custom_variables)),
+    map({'cvar_'. $_->{name} .'_to'}   grep({$_->{type} eq 'date'} @searchable_custom_variables)),
     map({'cvar_'. $_->{name} .'_qtyop'} grep({$_->{type} eq 'number'} @searchable_custom_variables)),
     map({ "l_$_" } @columns),
   );
@@ -274,6 +290,7 @@ sub list_names {
     if ($ref->{id} ne $previous_id) {
       $previous_id = $ref->{id};
       $ref->{discount} = $form->format_amount(\%myconfig, $ref->{discount} * 100.0, 2);
+      $ref->{creditlimit} = $form->format_amount(\%myconfig, $ref->{creditlimit}, 2);
       map { $row->{$_}->{data} = $ref->{$_} } @columns;
 
       $row->{name}->{link}  = build_std_url('script=controller.pl', 'action=CustomerVendor/edit', 'id=' . E($ref->{id}), 'callback', @hidden_nondefault);
@@ -281,6 +298,12 @@ sub list_names {
     }
 
     my $base_url              = build_std_url("script=$ref->{module}.pl", 'action=edit', 'id=' . E($ref->{invid}), 'callback', @hidden_nondefault);
+    if ($::instance_conf->get_feature_experimental_order) {
+      if ('oe' eq $ref->{module}) {
+        $base_url             = build_std_url("script=controller.pl", 'action=Order/edit', 'id=' . E($ref->{invid}), 'callback', @hidden_nondefault);
+      }
+    }
+
     $row->{invnumber}->{link} = $base_url;
     $row->{ordnumber}->{link} = $base_url . "&type=${ordertype}";
     $row->{quonumber}->{link} = $base_url . "&type=${quotationtype}";
@@ -295,6 +318,7 @@ sub list_names {
     $report->add_data($row);
   }
 
+  setup_ct_list_names_action_bar();
   $report->generate_with_headers();
 
   $main::lxdebug->leave_sub();
@@ -426,9 +450,51 @@ sub list_contacts {
     $report->add_data($row);
   }
 
-  $report->generate_with_headers;
+  $report->generate_with_headers();
 
   $::lxdebug->leave_sub;
 }
 
+sub setup_ct_search_action_bar {
+  my %params = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        t8('Search'),
+        submit    => [ '#form', { action => 'list_names' } ],
+        accesskey => 'enter',
+      ],
+    );
+  }
+}
+
+sub setup_ct_list_names_action_bar {
+  my %params = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        t8('Add'),
+        submit    => [ '#new_form', { action => 'CustomerVendor/add' } ],
+        accesskey => 'enter',
+      ],
+    );
+  }
+}
+
+sub setup_ct_search_contact_action_bar {
+  my %params = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        t8('Search'),
+        submit    => [ '#form', { action => 'list_contacts' } ],
+        accesskey => 'enter',
+      ],
+    );
+  }
+}
+
 sub continue { call_sub($main::form->{nextsub}); }