X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fic.pl;h=f986715eb8397f7e22e7f22172d466a6abbd97a7;hb=e4070a746ddfeb7e08868759ce4100af7a198560;hp=267c427b6db52bc545976729f08543ab28e62b3b;hpb=df0ca1fe6013573e9ff37f262018ec9a5318b4ea;p=kivitendo-erp.git diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl index 267c427b6..f986715eb 100644 --- a/bin/mozilla/ic.pl +++ b/bin/mozilla/ic.pl @@ -1194,14 +1194,22 @@ sub generate_report { # 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); @@ -1266,7 +1274,7 @@ sub generate_report { '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}, @@ -1316,7 +1324,7 @@ sub generate_report { $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'; @@ -1354,8 +1362,8 @@ sub generate_report { if ($ref->{module} eq 'oe') { # für oe gibt es vier fälle, jeweils nach kunde oder lieferant unterschiedlich: # - # | ist bestellt | Vom Kunde bestellt | -> edit_oe_ord_link - # | Anfrage | Angebot | -> edit_oe_quo_link + # | ist bestellt | Von Kunden bestellt | -> edit_oe_ord_link + # | Anfrage | Angebot | -> edit_oe_quo_link my $edit_oe_ord_link = build_std_url("script=oe.pl", 'action=edit', 'type=' . E($ref->{cv} eq 'vendor' ? 'purchase_order' : 'sales_order'), 'id=' . E($ref->{trans_id}), 'callback'); my $edit_oe_quo_link = build_std_url("script=oe.pl", 'action=edit', 'type=' . E($ref->{cv} eq 'vendor' ? 'request_quotation' : 'sales_quotation'), 'id=' . E($ref->{trans_id}), 'callback'); @@ -1910,7 +1918,7 @@ sub save { } 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"}; @@ -1927,7 +1935,7 @@ sub save { # 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;