Umstellung der HTML-Vorlagen aus templates/webpages/rp von HTML::Template auf Template.
[kivitendo-erp.git] / bin / mozilla / common.pl
index 3829757..e05a146 100644 (file)
 ######################################################################
 
 use SL::Form;
-use YAML;
-
 use SL::Common;
+use SL::MoreCommon;
 
-sub save_form {
-  $lxdebug->enter_sub();
-
-  my $old_form = YAML::Dump($form);
-  $old_form =~ s|!|!!|g;
-  $old_form =~ s|\n|!n|g;
-  $old_form =~ s|\r|!r|g;
-
-  $lxdebug->leave_sub();
-
-  return $old_form;
-}
-
-sub restore_form {
-  $lxdebug->enter_sub();
-
-  my ($old_form, $no_delete) = @_;
-
-  map({ delete($form->{$_}); } keys(%{$form})) unless ($no_delete);
-  $old_form =~ s|!r|\r|g;
-  $old_form =~ s|!n|\n|g;
-  $old_form =~ s|!!|!|g;
-  my $new_form = YAML::Load($old_form);
-  map({ $form->{$_} = $new_form->{$_}; } keys(%{$new_form}));
+sub build_std_url {
+  $lxdebug->enter_sub(2);
 
-  $lxdebug->leave_sub();
-}
+  my $script = $form->{script};
 
-sub build_std_url {
-  $lxdebug->enter_sub();
+  my @parts;
 
-  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;
 }
@@ -190,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"),
@@ -231,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"),
@@ -272,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"),
@@ -312,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"),
@@ -329,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();
 }
@@ -354,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"),
@@ -371,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();
 }
@@ -417,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();
 }
@@ -427,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();
 }
@@ -531,12 +504,16 @@ sub reformat_numbers {
 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_template( "common/show_history", {
-       "DATEN" => $form->get_history($dbh,$form->{input_name}),
-       "SUCCESS" => ($form->get_history($dbh,$form->{input_name}) ne "0")
+    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();
@@ -563,4 +540,53 @@ sub call_sub {
   $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;