# bought sold onorder ordered rfq quoted
# l_partnumber l_description l_serialnumber l_unit l_listprice l_sellprice l_lastcost
# l_linetotal l_priceupdate l_bin l_rop l_weight l_image l_drawing l_microfiche
-# l_partsgroup l_subtotal l_soldtotal l_deliverydate
+# l_partsgroup l_subtotal l_soldtotal l_deliverydate l_pricegroups
#
# hiddens:
# nextsub revers lastsort sort ndxs_counter
transdate name serialnumber deliverydate ean projectnumber projectdescription
);
+ my $pricegroups = SL::DB::Manager::Pricegroup->get_all(sort => 'id');
+ my @pricegroup_columns;
+ my %column_defs_pricegroups;
+ if ($form->{l_pricegroups}) {
+ @pricegroup_columns = map { "pricegroup_" . $_->id } @{ $pricegroups };
+ %column_defs_pricegroups = map {
+ "pricegroup_" . $_->id => {
+ text => $::locale->text('Pricegroup') . ' ' . $_->pricegroup,
+ visible => 1,
+ },
+ } @{ $pricegroups };
+ }
+ push @columns, @pricegroup_columns;
+
my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs };
my @searchable_custom_variables = grep { $_->{searchable} } @{ $cvar_configs };
my %column_defs_cvars = map { +"cvar_$_->{name}" => { 'text' => $_->{description} } } @includeable_custom_variables;
push @columns, map { "cvar_$_->{name}" } @includeable_custom_variables;
- %column_defs = (%column_defs,%column_defs_cvars); # nochmal die cvars als überschrift hinzufügen
- map { $column_defs{$_}->{visible} = $form->{"l_$_"} ? 1 : 0 } @columns;
- map { $column_defs{$_}->{align} = 'right' } qw(onhand sellprice listprice lastcost linetotalsellprice linetotallastcost linetotallistprice rop weight soldtotal);
+ %column_defs = (%column_defs, %column_defs_cvars, %column_defs_pricegroups);
+ map { $column_defs{$_}->{visible} ||= $form->{"l_$_"} ? 1 : 0 } @columns;
+ map { $column_defs{$_}->{align} = 'right' } qw(onhand sellprice listprice lastcost linetotalsellprice linetotallastcost linetotallistprice rop weight soldtotal), @pricegroup_columns;
- my @hidden_variables = (qw(l_subtotal l_linetotal searchitems itemstatus bom), @itemstatus_keys, @callback_keys,
+ my @hidden_variables = (qw(l_subtotal l_linetotal searchitems itemstatus bom l_pricegroups), @itemstatus_keys, @callback_keys,
map({ "cvar_$_->{name}" } @searchable_custom_variables), map { "l_$_" } @columns);
+
my $callback = build_std_url('action=generate_report', grep { $form->{$_} } @hidden_variables);
my @sort_full = qw(partnumber description onhand soldtotal deliverydate);
$row->{$_}{data} = $form->format_amount(\%myconfig, $ref->{$_}, -2);
$row->{"linetotal$_"}{data} = $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{$_}, 2);
}
+ foreach ( @pricegroup_columns ) {
+ $row->{$_}{data} = $form->format_amount(\%myconfig, $ref->{"$_"}, -2);
+ };
+
map { $row->{$_}{data} = $form->format_amount(\%myconfig, $ref->{$_}); } qw(onhand rop weight soldtotal);
$idx++;
}
- if ($form->{"l_linetotal"}) {
+ if ($form->{"l_linetotal"} && !$form->{report_generator_csv_options_for_import}) {
my $row = { map { $_ => { 'class' => 'listtotal', } } @columns };
map { $row->{"linetotal$_"}->{data} = $form->format_amount(\%myconfig, $totals{$_}, 2) } @subtotal_columns;
}
push @row_hiddens, qw(unit description partnumber partsgroup);
$row{unit}{data} = $form->{"unit_$i"};
- $row{description}{data} = $form->{"description_$i"};
- $row{partsgroup}{data} = $form->{"partsgroup_$i"};
- $row{bom}{align} = 'center';
+ #Bei der Artikelbeschreibung und Warengruppe können Sonderzeichen verwendet
+ #werden, die den HTML Code stören. Daher sollen diese im Template escaped werden
+ #dies geschieht, wenn die Variable escape gesetzt ist
+ $row{description}{data} = $form->{"description_$i"};
+ $row{description}{escape} = 1;
+ $row{partsgroup}{data} = $form->{"partsgroup_$i"};
+ $row{partsgroup}{escape} = 1;
+ $row{bom}{align} = 'center';
}
$row{lastcost}{data} = $line_purchase_price;
# parse pricegroups. and no, don't rely on check_form for this...
map { $form->{"price_$_"} = $form->parse_amount(\%myconfig, $form->{"price_$_"}) } 1 .. $form->{price_rows};
- # same for lastcosts
- map { $form->{"lastcost_$_"} = $form->parse_amount(\%myconfig, $form->{"lastcost_$_"}) } 1 .. $form->{"makemodel_rows"};
+ # same for makemodel lastcosts
+ # but parse_amount not necessary for assembly component lastcosts
+ unless ($form->{item} eq "assembly") {
+ map { $form->{"lastcost_$_"} = $form->parse_amount(\%myconfig, $form->{"lastcost_$_"}) } 1 .. $form->{"makemodel_rows"};
+ };
if ($form->{item} eq "assembly") {
my $i = $form->{assembly_rows};
$form->error($locale->text('Partnumber must not be set to empty!')) if $form->{id} && !$form->{partnumber};
# save part
- $lxdebug->message($LXDebug::DEBUG1, "ic.pl: sellprice in save = $form->{sellprice}\n");
if (IC->save(\%myconfig, \%$form) == 3) {
$form->error($locale->text('Partnumber not unique!'));
}
$form->{"sellprice_$i"} /= $form->{exchangerate};
}
- $lxdebug->message($LXDebug::DEBUG1, qq|sellprice_$i in previousform 2 = | . $form->{"sellprice_$i"} . qq|\n|);
-
map { $form->{"taxaccounts_$i"} .= "$_ " } split / /, $newform{taxaccount};
chop $form->{"taxaccounts_$i"};
foreach my $item (qw(description rate taxnumber)) {
}
$form->{callback} = $callback;
}
- $lxdebug->message($LXDebug::DEBUG1, qq|ic.pl: sellprice_$i nach sub save = | . $form->{"sellprice_$i"} . qq|\n|);
# redirect
$form->redirect;