$form->{discount} = [];
- IC->prepare_parts_for_printing(myconfig => $myconfig, form => $form);
+ # get some values of parts from db on store them in extra array,
+ # so that they can be sorted in later
+ my %prepared_template_arrays = IC->prepare_parts_for_printing(myconfig => $myconfig, form => $form);
+ my @prepared_arrays = keys %prepared_template_arrays;
my $ic_cvar_configs = CVar->get_configs(module => 'IC');
my $project_cvar_configs = CVar->get_configs(module => 'Projects');
my @arrays =
- qw(runningnumber number description longdescription qty ship unit bin
- deliverydate_oe ordnumber_oe donumber_do transdate_oe validuntil
- partnotes serialnumber reqdate sellprice listprice netprice
- discount p_discount discount_sub nodiscount_sub
- linetotal nodiscount_linetotal tax_rate projectnumber projectdescription
- price_factor price_factor_name partsgroup weight lineweight);
+ qw(runningnumber number description longdescription qty qty_nofmt unit bin
+ deliverydate_oe ordnumber_oe donumber_do transdate_oe invnumber invdate
+ partnotes serialnumber reqdate sellprice sellprice_nofmt listprice listprice_nofmt netprice netprice_nofmt
+ discount discount_nofmt p_discount discount_sub discount_sub_nofmt nodiscount_sub nodiscount_sub_nofmt
+ linetotal linetotal_nofmt nodiscount_linetotal nodiscount_linetotal_nofmt tax_rate projectnumber projectdescription
+ price_factor price_factor_name partsgroup weight weight_nofmt lineweight lineweight_nofmt);
push @arrays, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs };
push @arrays, map { "project_cvar_$_->{name}" } @{ $project_cvar_configs };
my @payment_arrays = qw(payment paymentaccount paymentdate paymentsource paymentmemo);
- map { $form->{TEMPLATE_ARRAYS}->{$_} = [] } (@arrays, @tax_arrays, @payment_arrays);
+ map { $form->{TEMPLATE_ARRAYS}->{$_} = [] } (@arrays, @tax_arrays, @payment_arrays, @prepared_arrays);
my $totalweight = 0;
foreach $item (sort { $a->[1] cmp $b->[1] } @partsgroup) {
$i = $item->[0];
if ($item->[1] ne $sameitem) {
+ push(@{ $form->{TEMPLATE_ARRAYS}->{entry_type} }, 'partsgroup');
push(@{ $form->{TEMPLATE_ARRAYS}->{description} }, qq|$item->[1]|);
$sameitem = $item->[1];
- map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" } @arrays));
+ map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" } (@arrays, @prepared_arrays)));
}
$form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"});
my $price_factor = $price_factors{$form->{"price_factor_id_$i"}} || { 'factor' => 1 };
+ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, $prepared_template_arrays{$_}[$i - 1]) for @prepared_arrays;
+
+ push @{ $form->{TEMPLATE_ARRAYS}->{entry_type} }, 'normal';
push @{ $form->{TEMPLATE_ARRAYS}->{runningnumber} }, $position;
push @{ $form->{TEMPLATE_ARRAYS}->{number} }, $form->{"partnumber_$i"};
push @{ $form->{TEMPLATE_ARRAYS}->{serialnumber} }, $form->{"serialnumber_$i"};
while (my $ref = $sth->fetchrow_hashref('NAME_lc')) {
if ($form->{groupitems} && $ref->{partsgroup} ne $sameitem) {
- map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" } @arrays));
+ map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" } (@arrays, @prepared_arrays)));
$sameitem = ($ref->{partsgroup}) ? $ref->{partsgroup} : "--";
+ push(@{ $form->{TEMPLATE_ARRAYS}->{entry_type} }, 'assembly-item-partsgroup');
push(@{ $form->{TEMPLATE_ARRAYS}->{description} }, $sameitem);
}
map { $form->{"a_$_"} = $ref->{$_} } qw(partnumber description);
+ push(@{ $form->{TEMPLATE_ARRAYS}->{entry_type} }, 'assembly-item');
push(@{ $form->{TEMPLATE_ARRAYS}->{description} },
$form->format_amount($myconfig, $ref->{qty} * $form->{"qty_$i"}
)
. qq| -- $form->{"a_partnumber"}, $form->{"a_description"}|);
- map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" } @arrays));
+ map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" } (@arrays, @prepared_arrays)));
}
$sth->finish;