Beim Erstellen eines Lieferantenauftrages aus einem Kundenauftrag wird überprüft...
[kivitendo-erp.git] / bin / mozilla / io.pl
index d85c367..7648dc1 100644 (file)
@@ -38,14 +38,14 @@ use SL::IC;
 use CGI::Ajax;
 use CGI;
 
-require "$form->{path}/common.pl";
+require "bin/mozilla/common.pl";
 
 # any custom scripts for this one
-if (-f "$form->{path}/custom_io.pl") {
-  eval { require "$form->{path}/custom_io.pl"; };
+if (-f "bin/mozilla/custom_io.pl") {
+  eval { require "bin/mozilla/custom_io.pl"; };
 }
-if (-f "$form->{path}/$form->{login}_io.pl") {
-  eval { require "$form->{path}/$form->{login}_io.pl"; };
+if (-f "bin/mozilla/$form->{login}_io.pl") {
+  eval { require "bin/mozilla/$form->{login}_io.pl"; };
 }
 
 1;
@@ -646,12 +646,12 @@ sub select_item {
 
     my @new_fields =
       qw(bin listprice inventory_accno income_accno expense_accno unit weight
-         assembly taxaccounts partsgroup formel logdescription not_discountable
-         part_payment_id partnodes id);
+         assembly taxaccounts partsgroup formel longdescription not_discountable
+         part_payment_id partnotes id);
     push(@new_fields, "lizenzen") if ($lizenzen);
 
-    map({ print($cgi->hidden("-name" => "new_${_}_$i",
-                             "-value" => $ref->{$_})); } @new_fields);
+    print join "\n", map { $cgi->hidden("-name" => "new_${_}_$i", "-value" => $ref->{$_}) } @new_fields;
+    print "\n";
   }
 
   print qq|
@@ -822,7 +822,7 @@ sub new_item {
     . $locale->text('Service');
 print $cgi->hidden("-name" => "previousform", "-value" => $previousform);
 map({ print($cgi->hidden("-name" => $_, "-value" => $form->{$_})); } 
-     ("rowcount", "vc", "path", "login", "password"));
+     qw(rowcount vc login password));
      map({ print($cgi->hidden("-name" => $_, "-value" => $form->{"$__$i"})); }
      ("partnumber", "description"));
 print $cgi->hidden("-name" => "taxaccount2", "-value" => $form->{taxaccounts});
@@ -1150,7 +1150,7 @@ sub order {
 
   $form->{cp_id} *= 1;
 
-  require "$form->{path}/$form->{script}";
+  require "bin/mozilla/$form->{script}";
   my $script = $form->{"script"};
   $script =~ s|.*/||;
   $script =~ s|.pl$||;
@@ -1214,7 +1214,7 @@ sub quotation {
 
   $form->{rowcount}--;
 
-  require "$form->{path}/$form->{script}";
+  require "bin/mozilla/$form->{script}";
 
   map { $form->{"select$_"} = "" } ($form->{vc}, currency);
 
@@ -1256,166 +1256,36 @@ sub edit_e_mail {
     $form->{print_and_post} = 0;
     $form->{resubmit}       = 0;
   }
-  if ($myconfig{role} eq 'admin') {
-    $bcc = qq|
-    <tr>
-      <th align="right" nowrap="true">| . $locale->text('Bcc') . qq|</th>
-      <td><input name="bcc" size="30" value="| . Q($form->{bcc}) . qq|"></td>
-    </tr>
-|;
-  }
 
-  if ($form->{formname} =~ /(pick|packing|bin)_list/) {
-    $form->{email} = $form->{shiptoemail} if $form->{shiptoemail};
-  }
+  $form->{email} = $form->{shiptoemail} if $form->{shiptoemail} && $form->{formname} =~ /(pick|packing|bin)_list/;
 
   if ($form->{"cp_id"} && !$form->{"email"}) {
     CT->get_contact(\%myconfig, $form);
     $form->{"email"} = $form->{"cp_email"};
   }
 
-  $name = $form->{ $form->{vc} };
-  $name =~ s/--.*//g;
-  $title = $locale->text('E-mail') . " $name";
+  $form->{ $form->{vc} } =~ /--/;
+  $title = $locale->text('E-mail') . " $`";
 
   $form->{oldmedia} = $form->{media};
   $form->{media}    = "email";
 
-  my %formname_translations =
-    (
-     "bin_list" => $locale->text('Bin List'),
-     "credit_note" => $locale->text('Credit Note'),
-     "invoice" => $locale->text('Invoice'),
-     "packing_list" => $locale->text('Packing List'),
-     "pick_list" => $locale->text('Pick List'),
-     "proforma" => $locale->text('Proforma Invoice'),
-     "purchase_order" => $locale->text('Purchase Order'),
-     "request_quotation" => $locale->text('RFQ'),
-     "sales_order" => $locale->text('Confirmation'),
-     "sales_quotation" => $locale->text('Quotation'),
-     "storno_invoice" => $locale->text('Storno Invoice'),
-     "storno_packing_list" => $locale->text('Storno Packing List'),
-    );
-
-  my $attachment_filename = $formname_translations{$form->{"formname"}};
-  my $prefix;
-
-  if (grep({ $form->{"type"} eq $_ } qw(invoice credit_note))) {
-    $prefix = "inv";
-  } elsif ($form->{"type"} =~ /_quotation$/) {
-    $prefix = "quo";
-  } else {
-    $prefix = "ord";
-  }
-
-  if ($attachment_filename && $form->{"${prefix}number"}) {
-    $attachment_filename .= "_" . $form->{"${prefix}number"} .
-      ($form->{"format"} =~ /pdf/i ? ".pdf" :
-       $form->{"format"} =~ /postscript/i ? ".ps" :
-       $form->{"format"} =~ /opendocument/i ? ".odt" :
-       $form->{"format"} =~ /html/i ? ".html" : "");
-    $attachment_filename =~ s/ /_/g;
-    my %umlaute =
-      (
-       "ä" => "ae", "ö" => "oe", "ü" => "ue",
-       "Ä" => "Ae", "Ö" => "Oe", "Ü" => "Ue",
-       "ß" => "ss"
-      );
-    map({ $attachment_filename =~ s/$_/$umlaute{$_}/g; } keys(%umlaute));
-  } else {
-    $attachment_filename = "";
-  }
+  my $attachment_filename = $form->generate_attachment_filename();
 
-  if ($form->{"email"}) {
-    $form->{"fokus"} = "Form.subject";
-  } else {
-    $form->{"fokus"} = "Form.email";
-  }
+  $form->{"fokus"} = $form->{"email"} ? "Form.subject" : "Form.email";
   $form->header;
 
-  print qq|
-<body onload="fokus()">
-
-<form name="Form" method="post" action="$form->{script}">
-
-<table width="100%">
-  <tr class="listtop">
-    <th class="listtop">$title</th>
-  </tr>
-  <tr height="5"></tr>
-  <tr>
-    <td>
-      <table>
-        <tr>
-          <th align="right" nowrap>| . $locale->text('To') . qq|</th>
-          <td><input name="email" size="30" value="| .
-          Q($form->{"email"}) . qq|"></td>
-        </tr>
-        <tr>
-          <th align="right" nowrap>| . $locale->text('Cc') . qq|</th>
-          <td><input name="cc" size="30" value="| .
-          Q($form->{"cc"}) . qq|"></td>
-        </tr>
-        $bcc
-        <tr>
-          <th align="right" nowrap>| . $locale->text('Subject') . qq|</th>
-          <td><input name="subject" size="30" value="| .
-          Q($form->{"subject"}) . qq|"></td>
-        </tr>
-        <tr>
-          <th align="right" nowrap>| . $locale->text('Attachment name') .
-          qq|</th>
-          <td><input name="attachment_filename" size="30" value="| .
-          Q($attachment_filename) . qq|"></td>
-      </table>
-    </td>
-  </tr>
-  <tr>
-    <td>
-      <table>
-        <tr>
-          <th align="left" nowrap>| . $locale->text('Message') . qq|</th>
-        </tr>
-        <tr>
-          <td><textarea name="message" rows="15" cols="60" wrap="soft">| .
-          H($form->{"message"}) . qq|</textarea></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-  <tr>
-    <td>
-|;
-
-  print_options();
+  my (@dont_hide_key_list, %dont_hide_key, @hidden_keys);
+  @dont_hide_key_list = qw(action email cc bcc subject message formname sendmode format header override);
+  @dont_hide_key{@dont_hide_key_list} = (1) x @dont_hide_key_list;
+  @hidden_keys = grep { !$dont_hide_key{$_} } grep { !ref $form->{$_} } keys %$form;
 
-  map { delete $form->{$_} }
-    qw(action email cc bcc subject message formname sendmode format header override);
-
-  # save all other variables
-  foreach $key (keys %$form) {
-    $form->{$key} =~ s/\"/&quot;/g;
-    print qq|<input type="hidden" name="$key" value="| . Q($form->{$key}) . qq|">\n|;
-  }
-
-  print qq|
-    </td>
-  </tr>
-  <tr>
-    <td><hr size="3" noshade></td>
-  </tr>
-</table>
-
-<input type="hidden" name="nextsub" value="send_email">
-
-<br>
-<input name="action" class="submit" type="submit" value="|
-    . $locale->text('Continue') . qq|">
-</form>
-
-</body>
-</html>
-|;
+  print $form->parse_html_template('generic/edit_email', 
+                                  { title           => $title,
+                                    a_filename      => $attachment_filename,
+                                    _print_options_ => print_options('inline'),
+                                    HIDDEN          => [ map +{ name => $_, value => $form->{$_} }, @hidden_keys ],
+                                    SHOW_BCC        => $myconfig{role} eq 'admin' });
 
   $lxdebug->leave_sub();
 }
@@ -1425,7 +1295,7 @@ sub send_email {
 
   my $callback = $form->{script} . "?action=edit";
   map({ $callback .= "\&${_}=" . E($form->{$_}); }
-      qw(login password path type id));
+      qw(login password type id));
 
   print_form("return");
 
@@ -1716,7 +1586,7 @@ sub print_form {
       call_sub($display_form);
       # saving the history
          if(!exists $form->{addition}) {
-        $form->{snumber} = qq|ordnumber_| . $form->{ordnumber}; 
+        $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber}; 
            $form->{addition} = "PRINTED";
            $form->save_history($form->dbconnect(\%myconfig));
       }
@@ -1803,6 +1673,8 @@ sub print_form {
 
   $form->{templates} = "$myconfig{templates}";
 
+  delete $form->{printer_command};
+
   $form->{language} = $form->get_template_language(\%myconfig);
   $form->{printer_code} = $form->get_printer_code(\%myconfig);
 
@@ -1832,13 +1704,16 @@ sub print_form {
   reformat_numbers($output_numberformat, 2,
                    qw(invtotal ordtotal quototal subtotal linetotal
                       listprice sellprice netprice discount
-                      tax taxbase),
+                      tax taxbase total paid),
                    grep({ /^linetotal_\d+$/ ||
                             /^listprice_\d+$/ ||
                             /^sellprice_\d+$/ ||
                             /^netprice_\d+$/ ||
                             /^taxbase_\d+$/ ||
                             /^discount_\d+$/ ||
+                            /^paid_\d+$/ ||
+                            /^subtotal_\d+$/ ||
+                            /^total_\d+$/ ||
                             /^tax_\d+$/
                         } keys(%{$form})));
 
@@ -1867,6 +1742,8 @@ sub print_form {
     $form->{"IN"} =~ s/html$/odt/;
   }
 
+  delete $form->{OUT};
+
   if ($form->{media} eq 'printer') {
     $form->{OUT} = "| $form->{printer_command} &>/dev/null";
     $form->{printed} .= " $form->{formname}";
@@ -1878,15 +1755,13 @@ sub print_form {
     $form->{subject} = qq|$form->{label} $form->{"${inv}number"}|
       unless $form->{subject};
 
-    $form->{OUT} = "$sendmail";
-
     $form->{emailed} .= " $form->{formname}";
     $form->{emailed} =~ s/^ //;
   }
   $emailed = $form->{emailed};
 
   if ($form->{media} eq 'queue') {
-    %queued = split / /, $form->{queued};
+    %queued = map { s|.*/|| } split / /, $form->{queued};
 
     if ($filename = $queued{ $form->{formname} }) {
       $form->{queued} =~ s/$form->{formname} $filename//;
@@ -1909,7 +1784,7 @@ sub print_form {
 
 # saving the history
   if(!exists $form->{addition}) {
-    $form->{snumber} = qq|ordnumber_| . $form->{ordnumber};
+    $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
     if($form->{media} =~ /printer/) {
        $form->{addition} = "PRINTED";
     }
@@ -2191,7 +2066,7 @@ sub new_license {
   map { $form->{$_} = $form->escape($form->{$_}, 1) }
     qw(partnumber description);
   $form->{callback} =
-    qq|$form->{script}?login=$form->{login}&path=$form->{path}&password=$form->{password}&action=add&vc=$form->{db}&$form->{db}_id=$form->{id}&$form->{db}=$name&type=$form->{type}&customer=$customer&partnumber=$form->{partnumber}&description=$form->{description}&previousform="$previousform"&initial=1|;
+    qq|$form->{script}?login=$form->{login}&password=$form->{password}&action=add&vc=$form->{db}&$form->{db}_id=$form->{id}&$form->{db}=$name&type=$form->{type}&customer=$customer&partnumber=$form->{partnumber}&description=$form->{description}&previousform="$previousform"&initial=1|;
   $form->redirect;
 
   $lxdebug->leave_sub();