Umstellung der HTML-Vorlagen aus templates/webpages/rp von HTML::Template auf Template.
[kivitendo-erp.git] / bin / mozilla / common.pl
index ea34189..e05a146 100644 (file)
@@ -9,56 +9,35 @@
 #
 ######################################################################
 
-use Data::Dumper;
-
+use SL::Form;
 use SL::Common;
+use SL::MoreCommon;
 
-sub save_form {
-  $lxdebug->enter_sub();
-
-  my (@names, @values);
-  foreach my $key (keys(%{$form})) {
-    push(@names, "\$form->{\"$key\"}");
-    push(@values, $form->{$key});
-  }
-  my $dumper = Data::Dumper->new(\@values, \@names);
-  $dumper->Indent(0);
-  my $old_form = $dumper->Dump();
-
-  $lxdebug->leave_sub();
-
-  return $old_form;
-}
-
-sub restore_form {
-  $lxdebug->enter_sub();
+sub build_std_url {
+  $lxdebug->enter_sub(2);
 
-  my ($old_form, $no_delete) = @_;
+  my $script = $form->{script};
 
-  map({ delete($form->{$_}); } keys(%{$form})) unless ($no_delete);
-  eval($old_form);
+  my @parts;
 
-  $lxdebug->leave_sub();
-}
-
-sub build_std_url {
-  $lxdebug->enter_sub();
-
-  my $url = "$form->{script}?";
-  my $first = 1;
-  foreach my $key ((qw(login password path), @_)) {
+  foreach my $key ((qw(login password), @_)) {
     next unless ($key);
-    $url .= "&" unless ($first);
-    $first = 0;
 
-    if ($key =~ /=/) {
-      $url .= $key;
+    if ($key =~ /(.*?)=(.*)/) {
+      if ($1 eq 'script') {
+        $script = $2;
+      } else {
+        push @parts, $key;
+      }
+
     } else {
-      $url .= "${key}=" . E($form->{$key});
+      push @parts, "${key}=" . E($form->{$key});
     }
   }
 
-  $lxdebug->leave_sub();
+  my $url = "${script}?" . join('&', @parts);
+
+  $lxdebug->leave_sub(2);
 
   return $url;
 }
@@ -96,7 +75,7 @@ sub select_employee_internal {
 
   restore_form($form->{"old_form"});
 
-  &{ $callback_sub }($new_id, $new_name);
+  call_sub($callback_sub, $new_id, $new_name);
 
   $lxdebug->leave_sub();
 }
@@ -166,7 +145,7 @@ sub select_part_internal {
 
   restore_form($form->{"old_form"});
 
-  &{ $callback_sub }($new_item);
+  call_sub($callback_sub, $new_item);
 
   $lxdebug->leave_sub();
 }
@@ -189,7 +168,7 @@ sub part_selection_internal {
 
   my $callback = "$form->{script}?action=part_selection_internal&";
   map({ $callback .= "$_=" . $form->escape($form->{$_}) . "&" }
-      (qw(login path password partnumber description input_partnumber input_description input_partsid), grep({ /^[fl]_/ } keys %$form)));
+      (qw(login password partnumber description input_partnumber input_description input_partsid), grep({ /^[fl]_/ } keys %$form)));
 
   my @header_sort = qw(partnumber description);
   my %header_title = ( "partnumber" => $locale->text("Part Number"),
@@ -230,7 +209,7 @@ sub project_selection_internal {
 
   my $callback = "$form->{script}?action=project_selection_internal&";
   map({ $callback .= "$_=" . $form->escape($form->{$_}) . "&" }
-      (qw(login path password projectnumber description input_projectnumber input_description input_project_id), grep({ /^[fl]_/ } keys %$form)));
+      (qw(login password projectnumber description input_projectnumber input_description input_project_id), grep({ /^[fl]_/ } keys %$form)));
 
   my @header_sort = qw(projectnumber description);
   my %header_title = ( "projectnumber" => $locale->text("Project Number"),
@@ -271,7 +250,7 @@ sub employee_selection_internal {
 
   my $callback = "$form->{script}?action=employee_selection_internal&";
   map({ $callback .= "$_=" . $form->escape($form->{$_}) . "&" }
-      (qw(login path password name input_name input_id), grep({ /^[fl]_/ } keys %$form)));
+      (qw(login password name input_name input_id), grep({ /^[fl]_/ } keys %$form)));
 
   my @header_sort = qw(name);
   my %header_title = ( "name" => $locale->text("Name"),
@@ -311,7 +290,7 @@ sub delivery_customer_selection {
 
   my $callback = "$form->{script}?action=delivery_customer_selection&";
   map({ $callback .= "$_=" . $form->escape($form->{$_}) . "&" }
-      (qw(login path password name input_name input_id), grep({ /^[fl]_/ } keys %$form)));
+      (qw(login password name input_name input_id), grep({ /^[fl]_/ } keys %$form)));
 
   my @header_sort = qw(name customernumber address);
   my %header_title = ( "name" => $locale->text("Name"),
@@ -328,9 +307,9 @@ sub delivery_customer_selection {
 
   $form->{"title"} = $locale->text("Select a Customer");
   $form->header();
-  print($form->parse_html_template("generic/select_delivery_customer", { "HEADER" => \@header,
-                                                                   "DELIVERY" => $delivery,
-                                                                   "onload" => $onload }));
+  print $form->parse_html_template2("generic/select_delivery_customer", { "HEADER"   => \@header,
+                                                                          "DELIVERY" => $delivery,
+                                                                          "onload"   => $onload });
 
   $lxdebug->leave_sub();
 }
@@ -353,7 +332,7 @@ sub vendor_selection {
 
   my $callback = "$form->{script}?action=vendor_selection&";
   map({ $callback .= "$_=" . $form->escape($form->{$_}) . "&" }
-      (qw(login path password name input_name input_id), grep({ /^[fl]_/ } keys %$form)));
+      (qw(login password name input_name input_id), grep({ /^[fl]_/ } keys %$form)));
 
   my @header_sort = qw(name customernumber address);
   my %header_title = ( "name" => $locale->text("Name"),
@@ -370,9 +349,9 @@ sub vendor_selection {
 
   $form->{"title"} = $locale->text("Select a Customer");
   $form->header();
-  print($form->parse_html_template("generic/select_vendor", { "HEADER" => \@header,
-                                                                   "VENDOR" => $vendor,
-                                                                   "onload" => $onload }));
+  print $form->parse_html_template2("generic/select_vendor", { "HEADER" => \@header,
+                                                               "VENDOR" => $vendor,
+                                                               "onload" => $onload });
 
   $lxdebug->leave_sub();
 }
@@ -416,9 +395,9 @@ sub calculate_qty {
   $form->{formel} = $formel; 
   $form->{"title"} = $locale->text("Please enter values");
   $form->header();
-  print($form->parse_html_template("generic/calculate_qty", { "HEADER" => \@header,
-                                                                   "VARIABLES" => \@variable,
-                                                                   "onload" => $onload }));
+  print($form->parse_html_template2("generic/calculate_qty", { "HEADER"    => \@header,
+                                                               "VARIABLES" => \@variable,
+                                                               "onload"    => $onload }));
 
   $lxdebug->leave_sub();
 }
@@ -426,14 +405,9 @@ sub calculate_qty {
 sub set_longdescription {
   $lxdebug->enter_sub();
 
-
-  my $callback = "$form->{script}?action=set_longdescription&";
-  map({ $callback .= "$_=" . $form->escape($form->{$_}) . "&" }
-      (qw(login path password name input_name input_id), grep({ /^[fl]_/ } keys %$form)));
-
-  $form->{"title"} = $locale->text("Enter longdescription");
+  $form->{title} = $locale->text("Enter longdescription");
   $form->header();
-  print($form->parse_html_template("generic/set_longdescription"));
+  print $form->parse_html_template2("generic/set_longdescription");
 
   $lxdebug->leave_sub();
 }
@@ -450,6 +424,13 @@ sub E {
   return $form->escape($_[0]);
 }
 
+sub NTI {
+  my ($element) = @_;
+
+  $element =~ s/tabindex\s*=\s*"\d+"//;
+  return $element;
+}
+
 sub format_dates {
   $lxdebug->enter_sub();
 
@@ -520,4 +501,92 @@ sub reformat_numbers {
   $lxdebug->leave_sub();
 }
 
+sub show_history {
+       $lxdebug->enter_sub();
+       my $dbh = $form->dbconnect(\%myconfig);
+       my ($sort, $sortby) = split(/\-\-/, $form->{order});
+  $sort =~ s/.*\.(.*)/$1/;
+  
+       $form->{title} = $locale->text("History");
+    $form->header();
+    print $form->parse_html_template2( "common/show_history", {
+       "DATEN" => $form->get_history($dbh,$form->{input_name},"",$form->{order}),
+       "SUCCESS" => ($form->get_history($dbh,$form->{input_name}) ne "0"),
+      uc($sort) => 1,
+      uc($sort)."BY" => $sortby
+       } );
+       
+       $dbh->disconnect();
+       $lxdebug->leave_sub();  
+}
+
+sub call_sub {
+  $lxdebug->enter_sub();
+
+  my $name = shift;
+
+  if (!$name) {
+    $form->error($locale->text("Trying to call a sub without a name"));
+  }
+
+  $name =~ s/[^a-zA-Z0-9_]//g;
+
+  if (!defined(&{ $name })) {
+    $form->error(sprintf($locale->text("Attempt to call an undefined sub named '%s'"), $name));
+  }
+
+  &{ $name }(@_);
+
+  $lxdebug->leave_sub();
+}
+
+sub show_vc_details {
+       $lxdebug->enter_sub();
+
+  $form->{vc} = $form->{vc} eq "customer" ? "customer" : "vendor";
+  $form->isblank("vc_id",
+                 $form->{vc} eq "customer" ?
+                 $locale->text("No customer has been selected yet.") :
+                 $locale->text("No vendor has been selected yet."));
+
+  Common->get_vc_details(\%myconfig, $form, $form->{vc}, $form->{vc_id});
+
+  $form->{title} = $form->{vc} eq "customer" ?
+    $locale->text("Customer details") : $locale->text("Vendor details");
+  $form->header();
+  print($form->parse_html_template2("common/show_vc_details",
+                                    { "is_customer" => $form->{vc} eq "customer" }));
+
+       $lxdebug->leave_sub();
+}
+
+sub mark_as_paid_common {
+  $lxdebug->enter_sub();
+  use SL::DBUtils;
+  my ($myconfig, $db_name) = @_;
+
+  if($form->{mark_as_paid}) {
+    my $dbh ||= $form->get_standard_dbh($myconfig);
+    my $query = qq|UPDATE $db_name SET paid = amount WHERE id = ?|;
+    do_query($form, $dbh, $query, $form->{id});
+    $dbh->commit();
+    $form->redirect($locale->text("Marked as paid"));
+}
+  else {
+    my $referer  =  $ENV{HTTP_REFERER};
+    my $login    =  $form->escape($form->{login});
+    my $password =  $form->escape($form->{password});
+    my $id       =  $form->escape($form->{id});
+    $referer     =~ s/^(.*)action\=.*\&(.*)$/$1action\=mark_as_paid\&mark_as_paid\=1\&login\=$login\&password\=$password\&id\=$id\&$2/;
+    $form->header();
+    print qq|<body>|;
+    print qq|<p><b>|.$locale->text('Mark as paid?').qq|</b></p>|;
+    print qq|<input type="button" value="|.$locale->text('yes').qq|" onclick="document.location.href='|.$referer.qq|'">&nbsp;|;
+    print qq|<input type="button" value="|.$locale->text('no').qq|" onclick="javascript:history.back();">|;
+    print qq|</body></html>|;
+}
+  
+  $lxdebug->leave_sub();
+}
+
 1;