Die Argumente für print_options() als Hash und nicht als Hash-Referenz übergeben...
[kivitendo-erp.git] / bin / mozilla / io.pl
index bb3d205..0395092 100644 (file)
@@ -334,12 +334,12 @@ sub display_row {
     }
 
     my $marge_adjust_credit_note = $form->{type} eq 'credit_note' ? -1 : 1;
-    $form->{"marge_absolut_$i"}  = ($real_sellprice - $form->{"lastcost_$i"} / $marge_price_factor) * $form->{"qty_$i"} * $marge_adjust_credit_note;
-    $form->{"marge_total"}      += $form->{"marge_absolut_$i"};
+    $form->{"marge_total_$i"}  = ($real_sellprice - $form->{"lastcost_$i"} / $marge_price_factor) * $form->{"qty_$i"} * $marge_adjust_credit_note;
+    $form->{"marge_total"}      += $form->{"marge_total_$i"};
     $form->{"lastcost_total"}   += $form->{"lastcost_$i"} * $form->{"qty_$i"} / $marge_price_factor;
     $form->{"sellprice_total"}  += $real_sellprice * $form->{"qty_$i"};
 
-    map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(marge_absolut marge_percent);
+    map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(marge_total marge_percent);
 
     # convert " to "
     map { $form->{"${_}_$i"} =~ s/\"/"/g }
@@ -495,7 +495,7 @@ sub display_row {
          "id_$i", "inventory_accno_$i", "bin_$i", "partsgroup_$i", "partnotes_$i",
          "income_accno_$i", "expense_accno_$i", "listprice_$i", "assembly_$i",
          "taxaccounts_$i", "ordnumber_$i", "transdate_$i", "cusordnumber_$i",
-         "longdescription_$i", "basefactor_$i", "marge_absolut_$i", "marge_percent_$i", "lastcost_$i",
+         "longdescription_$i", "basefactor_$i", "marge_total_$i", "marge_percent_$i", "lastcost_$i",
          "marge_price_factor_$i"));
 
 ########################################
@@ -561,7 +561,7 @@ sub display_row {
       }
 
       print qq|
-          ${marge_font_start}<b>| . $locale->text('Ertrag') . qq|</b>&nbsp;$form->{"marge_absolut_$i"}&nbsp;$form->{"marge_percent_$i"} % ${marge_font_end}
+          ${marge_font_start}<b>| . $locale->text('Ertrag') . qq|</b>&nbsp;$form->{"marge_total_$i"}&nbsp;$form->{"marge_percent_$i"} % ${marge_font_end}
           &nbsp;<b>| . $locale->text('LP') . qq|</b>&nbsp;| . $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2) . qq|
           &nbsp;<b>| . $locale->text('EK') . qq|</b>&nbsp;| . $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2) . $marge_price_factor;
     }
@@ -694,9 +694,10 @@ sub select_item {
 
     map { $ref->{$_} =~ s/\"/&quot;/g } qw(partnumber description unit);
 
-    #sk tradediscount
-    $ref->{sellprice} =
-      $form->round_amount($ref->{sellprice} * (1 - $form->{tradediscount}), 2);
+    my $display_sellprice  = $ref->{sellprice} * (1 - $form->{tradediscount});
+    $display_sellprice    /= $ref->{price_factor} if ($ref->{price_factor});
+    $display_sellprice     = $form->format_amount(\%myconfig, $display_sellprice, 2);
+
     $column_data{ndx} =
       qq|<td><input name="ndx" class="radio" type="radio" value="$i" $checked></td>|;
     $column_data{partnumber} =
@@ -705,7 +706,7 @@ sub select_item {
       qq|<td><input name="new_description_$i" type="hidden" value="$ref->{description}">$ref->{description}</td>|;
     $column_data{sellprice} =
       qq|<td align="right"><input name="new_sellprice_$i" type="hidden" value="$ref->{sellprice}">|
-      . $form->format_amount(\%myconfig, $ref->{sellprice}, 2, "&nbsp;")
+      . $display_sellprice
       . qq|</td>|;
     $column_data{onhand} =
       qq|<td align="right"><input name="new_onhand_$i" type="hidden" value="$ref->{onhand}">|
@@ -1027,7 +1028,7 @@ sub check_form {
   $lxdebug->enter_sub();
   my @a     = ();
   my $count = 0;
-  my @flds  = (qw(id partnumber description qty ship sellprice unit discount inventory_accno income_accno expense_accno listprice taxaccounts bin assembly weight projectnumber project_id oldprojectnumber runningnumber serialnumber partsgroup payment_id not_discountable shop ve gv buchungsgruppen_id language_values sellprice_pg pricegroup_old price_old price_new unit_old ordnumber transdate longdescription basefactor marge_absolut marge_percent marge_price_factor lastcost price_factor_id));
+  my @flds  = (qw(id partnumber description qty ship sellprice unit discount inventory_accno income_accno expense_accno listprice taxaccounts bin assembly weight projectnumber project_id oldprojectnumber runningnumber serialnumber partsgroup payment_id not_discountable shop ve gv buchungsgruppen_id language_values sellprice_pg pricegroup_old price_old price_new unit_old ordnumber transdate longdescription basefactor marge_total marge_percent marge_price_factor lastcost price_factor_id));
 
   # remove any makes or model rows
   if ($form->{item} eq 'part') {
@@ -1403,9 +1404,7 @@ sub send_email {
 sub print_options {
   $lxdebug->enter_sub();
 
-  my ($options) = @_;
-
-  $options ||= { };
+  my %options = @_;
 
   # names 3 parameters and returns a hashref, for use in templates
   sub opthash { +{ value => shift, selected => shift, oname => shift } }
@@ -1460,21 +1459,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 && !$options->{no_queue}) ?
+    ($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)
-     && !$options->{no_opendocument_pdf}) ?
+     && !$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')) : undef,
-    ($latex_templates && !$options->{no_postscript}) ?
+    ($latex_templates && !$options{no_postscript}) ?
       opthash("postscript", $form->{DF}{postscript}, $locale->text('Postscript')) : undef,
-    (!$options->{no_html}) ?
+    (!$options{no_html}) ?
       opthash("html", $form->{DF}{html}, "HTML") : undef,
-    ($opendocument_templates && !$options->{no_opendocument}) ?
+    ($opendocument_templates && !$options{no_opendocument}) ?
       opthash("opendocument", $form->{DF}{opendocument}, $locale->text("OpenDocument/OASIS")) : undef;
 
   push @LANGUAGE_ID, 
@@ -1485,7 +1484,7 @@ sub print_options {
     map { opthash($_->{id}, ($_->{id} eq $form->{printer_id} ? 'selected' : ''), $_->{printer_description}) } +{}, @{ $form->{printers} }
       if ((ref $form->{printers} eq 'ARRAY') && scalar @{ $form->{printers } });
 
-  @SELECTS = map { sname => lc $_, DATA => \@$_, show => scalar @$_ }, qw(FORMNAME LANGUAGE_ID FORMAT SENDMODE MEDIA PRINTER_ID);
+  @SELECTS = map { sname => lc $_, DATA => \@$_, show => !$options{"hide_" . lc($_)} && scalar @$_ }, qw(FORMNAME LANGUAGE_ID FORMAT SENDMODE MEDIA PRINTER_ID);
 
   my %dont_display_groupitems = (
     'dunning' => 1,
@@ -1501,7 +1500,7 @@ sub print_options {
 
   my $print_options = $form->parse_html_template("generic/print_options", { SELECTS  => \@SELECTS, %template_vars } );
 
-  if ($options->{inline}) {
+  if ($options{inline}) {
     $lxdebug->leave_sub() and return $print_options;
   } else {
     print $print_options; $lxdebug->leave_sub();