Kunden-/Lieferantenstammdatensuche: Fokus initial auf das Feld "Firmenname" setzen.
[kivitendo-erp.git] / bin / mozilla / io.pl
index 86c93d0..8eb6363 100644 (file)
@@ -646,7 +646,7 @@ sub select_item {
 
     my @new_fields =
       qw(bin listprice inventory_accno income_accno expense_accno unit weight
-         assembly taxaccounts partsgroup formel logdescription not_discountable
+         assembly taxaccounts partsgroup formel longdescription not_discountable
          part_payment_id partnotes id);
     push(@new_fields, "lizenzen") if ($lizenzen);
 
@@ -706,7 +706,7 @@ sub item_selected {
   map { $form->{"${_}_$i"} = $form->{"new_${_}_$j"} }
     qw(id partnumber description sellprice listprice inventory_accno
        income_accno expense_accno bin unit weight assembly taxaccounts
-       partsgroup formel longdescription not_discountable partnotes);
+       partsgroup formel longdescription not_discountable partnotes lastcost);
   if ($form->{"part_payment_id_$i"} ne "") {
     $form->{payment_id} = $form->{"part_payment_id_$i"};
   }
@@ -1129,6 +1129,9 @@ sub order {
   }
   $form->{ordnumber} = $form->{invnumber};
 
+  $form->{old_employee_id} = $form->{employee_id};
+  $form->{old_salesman_id} = $form->{salesman_id};
+
   map { delete $form->{$_} } qw(id printed emailed queued);
   if ($form->{script} eq 'ir.pl' || $form->{type} eq 'request_quotation') {
     $form->{title} = $locale->text('Add Purchase Order');
@@ -1283,7 +1286,7 @@ sub edit_e_mail {
   print $form->parse_html_template('generic/edit_email', 
                                   { title           => $title,
                                     a_filename      => $attachment_filename,
-                                    _print_options_ => print_options('inline'),
+                                    _print_options_ => print_options({ 'inline' => 1 }),
                                     HIDDEN          => [ map +{ name => $_, value => $form->{$_} }, @hidden_keys ],
                                     SHOW_BCC        => $myconfig{role} eq 'admin' });
 
@@ -1315,7 +1318,11 @@ sub send_email {
 #
 # the inline options is untested, but intended to be used later in metatemplating
 sub print_options {
-  $lxdebug->enter_sub() and my ($inline) = @_;
+  $lxdebug->enter_sub();
+
+  my ($options) = @_;
+
+  $options ||= { };
 
   # names 3 parameters and returns a hashref, for use in templates
   sub opthash { +{ value => shift, selected => shift, oname => shift } }
@@ -1370,19 +1377,21 @@ sub print_options {
       opthash("screen", $form->{OP}{screen}, $locale->text('Screen')),
     (scalar @{ $form->{printers} } && $latex_templates) ?
       opthash("printer", $form->{OP}{printer}, $locale->text('Printer')) : undef,
-    ($latex_templates) ? 
+    ($latex_templates && !$options->{no_queue}) ?
       opthash("queue", $form->{OP}{queue}, $locale->text('Queue')) : undef
         if ($form->{media} ne 'email');
 
   push @FORMAT, grep $_,
-    ($opendocument_templates && $openofficeorg_writer_bin && $xvfb_bin && (-x $openofficeorg_writer_bin) && (-x $xvfb_bin)) ?
+    ($opendocument_templates && $openofficeorg_writer_bin && $xvfb_bin && (-x $openofficeorg_writer_bin) && (-x $xvfb_bin)
+     && !$options->{no_opendocument_pdf}) ?
       opthash("opendocument_pdf", $form->{DF}{"opendocument_pdf"}, $locale->text("PDF (OpenDocument/OASIS)")) : undef,
-    ($latex_templates) ? (
-      opthash("pdf", $form->{DF}{pdf}, $locale->text('PDF')),
-      opthash("postscript", $form->{DF}{postscript}, $locale->text('Postscript'))
-    ) : undef,
-      opthash("html", $form->{DF}{html}, "HTML"),
-    ($opendocument_templates) ?
+    ($latex_templates) ?
+      opthash("pdf", $form->{DF}{pdf}, $locale->text('PDF')) : undef,
+    ($latex_templates && !$options->{no_postscript}) ?
+      opthash("postscript", $form->{DF}{postscript}, $locale->text('Postscript')) : undef,
+    (!$options->{no_html}) ?
+      opthash("html", $form->{DF}{html}, "HTML") : undef,
+    ($opendocument_templates && !$options->{no_opendocument}) ?
       opthash("opendocument", $form->{DF}{opendocument}, $locale->text("OpenDocument/OASIS")) : undef;
 
   push @LANGUAGE_ID, 
@@ -1395,16 +1404,21 @@ sub print_options {
 
   @SELECTS = map { sname => lc $_, DATA => \@$_, show => scalar @$_ }, qw(FORMNAME LANGUAGE_ID FORMAT SENDMODE MEDIA PRINTER_ID);
 
+  my %dont_display_groupitems = (
+    'dunning' => 1,
+    );
+
   %template_vars = (
     display_copies       => scalar @{ $form->{printers} } && $latex_templates && $form->{media} ne 'email',
     display_remove_draft => (!$form->{id} && $form->{draft_id}),
+    display_groupitems   => !$dont_display_groupitems{$form->{type}},
     groupitems_checked   => $form->{groupitems} ? "checked" : '',
     remove_draft_checked => $form->{remove_draft} ? "checked" : ''
   );
 
   my $print_options = $form->parse_html_template("generic/print_options", { SELECTS  => \@SELECTS, %template_vars } );
 
-  if ($inline) {
+  if ($options->{inline}) {
     $lxdebug->leave_sub() and return $print_options;
   } else {
     print $print_options; $lxdebug->leave_sub();
@@ -1414,6 +1428,12 @@ sub print_options {
 sub print {
   $lxdebug->enter_sub();
 
+  if ($form->{print_nextsub}) {
+    call_sub($form->{print_nextsub});
+    $lxdebug->leave_sub();
+    return;
+  }
+
   # if this goes to the printer pass through
   if ($form->{media} eq 'printer' || $form->{media} eq 'queue') {
     $form->error($locale->text('Select postscript or PDF!'))
@@ -1676,7 +1696,14 @@ sub print_form {
   delete $form->{printer_command};
 
   $form->{language} = $form->get_template_language(\%myconfig);
-  $form->{printer_code} = $form->get_printer_code(\%myconfig);
+
+  my $printer_code;
+  if ($form->{media} ne 'email') {
+    $printer_code = $form->get_printer_code(\%myconfig);
+    if ($printer_code ne "") {
+      $printer_code = "_" . $printer_code;
+    }
+  }
 
   if ($form->{language} ne "") {
     map({ $form->{"unit"}->[$_] =
@@ -1722,11 +1749,7 @@ sub print_form {
                    grep({ /^qty_\d+$/
                         } keys(%{$form})));
 
-  if ($form->{printer_code} ne "") {
-    $form->{printer_code} = "_" . $form->{printer_code};
-  }
-
-  $form->{IN} = "$form->{formname}$form->{language}$form->{printer_code}.html";
+  $form->{IN} = "$form->{formname}$form->{language}${printer_code}.html";
   if ($form->{format} eq 'postscript') {
     $form->{postscript} = 1;
     $form->{IN} =~ s/html$/tex/;