# soldtotal doesn't make sense with more than one bsooqr option.
# so reset it to sold (the most common option), and issue a warning
+ # ...
+ # also it doesn't make sense without bsooqr. disable and issue a warning too
my @bsooqr = qw(sold bought onorder ordered rfq quoted);
- if ($form->{l_subtotal} && 1 < grep { $form->{$_} } @bsooqr) {
+ my $bsooqr_mode = grep { $form->{$_} } @bsooqr;
+ if ($form->{l_subtotal} && 1 < $bsooqr_mode) {
my $enabled = first { $form->{$_} } @bsooqr;
$form->{$_} = '' for @bsooqr;
$form->{$enabled} = 'Y';
push @options, $::locale->text('Subtotal cannot distinguish betweens record types. Only one of the selected record types will be displayed: #1', $optiontexts{$enabled});
}
+ if ($form->{l_soldtotal} && !$bsooqr_mode) {
+ delete $form->{l_soldtotal};
+
+ flash('warning', $::locale->text('Soldtotal does not make sense without any bsooqr options'));
+ }
IC->all_parts(\%myconfig, \%$form);
'assembly' => $locale->text('assembly_list'),
);
- $report->set_options('top_info_text' => $locale->text('Options') . ': ' . join(', ', grep $_, @options),
+ $report->set_options('raw_top_info_text' => $form->parse_html_template('ic/generate_report_top', { options => \@options }),
'raw_bottom_info_text' => $form->parse_html_template('ic/generate_report_bottom'),
'output_format' => 'HTML',
'title' => $form->{title},
$ref->{lastcost} *= $ref->{exchangerate} / $ref->{price_factor};
# use this for assemblies
- my $soldtotal = $ref->{soldtotal};
+ my $soldtotal = $bsooqr_mode ? $ref->{soldtotal} : $ref->{onhand};
if ($ref->{assemblyitem}) {
$row->{partnumber}{align} = 'right';
} else {
$i = $form->{assembly_rows};
}
- $form->{"qty_$i"} = 1 unless ($form->{"qty_$i"});
+ $form->{"qty_$i"} = 1 unless ($form->{"qty_$i"} > 0);
$form->{sellprice} -= $form->{"sellprice_$i"} * $form->{"qty_$i"};
$form->{weight} -= $form->{"weight_$i"} * $form->{"qty_$i"};
# set values for last invoice/order item
$i = $form->{rowcount};
- $form->{"qty_$i"} = 1 unless ($form->{"qty_$i"});
+ $form->{"qty_$i"} = 1 unless ($form->{"qty_$i"} > 0);
map { $form->{"${_}_$i"} = $newform{$_} } qw(partnumber description bin unit listprice inventory_accno income_accno expense_accno sellprice lastcost price_factor_id);
map { $form->{"ic_${_}_$i"} = $newform{$_} } @ic_cvar_fields;