X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fic.pl;h=b5e4db70dbf36bf4a046eda2b97cfdc1544042ee;hb=f06a2509037f88f8361d989b1bc638665c367558;hp=a4f41a388c2f057eab3e6b7fd07527e4dac9cb38;hpb=fa8921cae403c79443c1ae26eedb0164a49263fa;p=kivitendo-erp.git
diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl
index a4f41a388..b5e4db70d 100644
--- a/bin/mozilla/ic.pl
+++ b/bin/mozilla/ic.pl
@@ -1549,7 +1549,7 @@ sub generate_report {
$form->{ledgerchecks} = 'Y' if ( $form->{bought} || $form->{sold} || $form->{onorder}
|| $form->{ordered} || $form->{rfq} || $form->{quoted});
- # if something should be aktivated if something else is active, enter it here
+ # if something should be activated if something else is active, enter it here
my %dependencies = (
onhand => [ qw(l_onhand) ],
short => [ qw(l_onhand) ],
@@ -1714,7 +1714,7 @@ sub generate_report {
'output_format' => 'HTML',
'title' => $form->{title},
'attachment_basename' => $attachment_basenames{$form->{searchitems}} . strftime('_%Y%m%d', localtime time),
- );
+ );
$report->set_options_from_form();
$report->set_columns(%column_defs);
@@ -1728,22 +1728,26 @@ sub generate_report {
my %subtotals = map { $_ => 0 } ('onhand', @subtotal_columns);
my %totals = map { $_ => 0 } @subtotal_columns;
my $idx = 0;
- my $same_item = $form->{parts}->[0]->{ $form->{sort} } if (scalar @{ $form->{parts} });
+ my $same_item = $form->{parts}[0]{ $form->{sort} } if (scalar @{ $form->{parts} });
+ # postprocess parts
foreach my $ref (@{ $form->{parts} }) {
+
+ # fresh row, for inserting later
my $row = { map { $_ => { 'data' => $ref->{$_} } } @columns };
- $ref->{exchangerate} = 1 unless $ref->{exchangerate};
- $ref->{sellprice} *= $ref->{exchangerate};
- $ref->{listprice} *= $ref->{exchangerate};
- $ref->{lastcost} *= $ref->{exchangerate};
+ $ref->{exchangerate} ||= 1;
+ $ref->{price_factor} ||= 1;
+ $ref->{sellprice} *= $ref->{exchangerate} / $ref->{price_factor};
+ $ref->{listprice} *= $ref->{exchangerate} / $ref->{price_factor};
+ $ref->{lastcost} *= $ref->{exchangerate} / $ref->{price_factor};
# use this for assemblies
my $onhand = $ref->{onhand};
if ($ref->{assemblyitem}) {
- $row->{partnumber}->{align} = 'right';
- $row->{onhand}->{data} = 0;
+ $row->{partnumber}{align} = 'right';
+ $row->{onhand}{data} = 0;
$onhand = 0 if ($form->{sold});
}
@@ -1752,11 +1756,11 @@ sub generate_report {
$row->{description}->{link} = $edit_link;
foreach (qw(sellprice listprice lastcost)) {
- $row->{$_}->{data} = $form->format_amount(\%myconfig, $ref->{$_}, -2);
- $row->{"linetotal$_"}->{data} = $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{$_}, 2);
+ $row->{$_}{data} = $form->format_amount(\%myconfig, $ref->{$_}, -2);
+ $row->{"linetotal$_"}{data} = $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{$_}, 2);
}
- map { $row->{$_}->{data} = $form->format_amount(\%myconfig, $ref->{$_}); } qw(onhand rop weight soldtotal);
+ map { $row->{$_}{data} = $form->format_amount(\%myconfig, $ref->{$_}); } qw(onhand rop weight soldtotal);
if (!$ref->{assemblyitem}) {
foreach my $col (@subtotal_columns) {
@@ -1767,25 +1771,28 @@ sub generate_report {
$subtotals{onhand} += $onhand;
}
+ # set module stuff
if ($ref->{module} eq 'oe') {
my $edit_oe_link = build_std_url("script=oe.pl", 'action=edit', 'type=' . E($ref->{type}), 'id=' . E($ref->{trans_id}), 'callback');
- $row->{ordnumber}->{link} = $edit_oe_link;
- $row->{quonumber}->{link} = $edit_oe_link if (!$ref->{ordnumber});
+ $row->{ordnumber}{link} = $edit_oe_link;
+ $row->{quonumber}{link} = $edit_oe_link if (!$ref->{ordnumber});
} else {
- $row->{invnumber}->{link} = build_std_url("script=$ref->{module}.pl", 'action=edit', 'type=invoice', 'id=' . E($ref->{trans_id}), 'callback');
+ $row->{invnumber}{link} = build_std_url("script=$ref->{module}.pl", 'action=edit', 'type=invoice', 'id=' . E($ref->{trans_id}), 'callback');
}
+ # set properties of images
if ($ref->{image} && (lc $report->{options}->{output_format} eq 'html')) {
- $row->{image}->{data} = '';
- $row->{image}->{raw_data} = '';
+ $row->{image}{data} = '';
+ $row->{image}{raw_data} = '
';
}
- map { $row->{$_}->{link} = $ref->{$_} } qw(drawing microfiche);
+ map { $row->{$_}{link} = $ref->{$_} } qw(drawing microfiche);
$report->add_data($row);
- my $next_ref = $form->{parts}->[$idx + 1];
+ my $next_ref = $form->{parts}[$idx + 1];
+ # insert subtotal rows
if (($form->{l_subtotal} eq 'Y') &&
(!$next_ref ||
(!$next_ref->{assemblyitem} && ($same_item ne $next_ref->{ $form->{sort} })))) {
@@ -1903,7 +1910,7 @@ sub link_part {
# if this is a tax field
if ($key =~ /IC_tax/) {
- if ($key =~ /$item/) {
+ if ($key =~ /\Q$item\E/) {
$form->{taxaccounts} .= "$ref->{accno} ";
$form->{"IC_tax_$ref->{accno}_description"} =
"$ref->{accno}--$ref->{description}";
@@ -1980,6 +1987,7 @@ sub form_header {
my ($notdiscountableok, $notdiscountable);
my ($formula, $formula_label, $imagelinks, $obsolete, $shopok, $shop);
+ $form->get_lists('price_factors' => 'ALL_PRICE_FACTORS');
map({ $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, -2) }
qw(sellprice listprice lastcost gv));
@@ -2320,6 +2328,22 @@ sub form_header {
$unit_select .= AM->unit_select_html($units, "unit", $form->{"unit"});
}
+ my $price_factor;
+ if (0 < scalar @{ $form->{ALL_PRICE_FACTORS} }) {
+ my @values = ('', map { $_->{id} } @{ $form->{ALL_PRICE_FACTORS} });
+ my %labels = map { $_->{id} => $_->{description} } @{ $form->{ALL_PRICE_FACTORS} };
+
+ $price_factor =
+ qq|