X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fic.pl;h=837b842b4585690d089586e2aeaeb48561074941;hb=937e37ad007405c6a3a389ee18006379ffecc073;hp=a30378123a01bf5370e87ad96aa4e526b420d582;hpb=74fca575d438232002756175338c23f55b8a6c12;p=kivitendo-erp.git diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl index a30378123..837b842b4 100644 --- a/bin/mozilla/ic.pl +++ b/bin/mozilla/ic.pl @@ -38,6 +38,7 @@ use List::MoreUtils qw(any); use SL::AM; use SL::CVar; use SL::IC; +use SL::Helper::Flash; use SL::ReportGenerator; #use SL::PE; @@ -288,7 +289,6 @@ sub update_prices { # $form->header; # # print qq| -# #
# # @@ -388,8 +388,6 @@ sub update_prices { # . $locale->text('TOP100') . qq|"> # # -# -# #|; # $lxdebug->leave_sub(); #} #end list() @@ -725,8 +723,6 @@ sub addtop100 { my $colspan = $#column_index + 1; print qq| - -
@@ -977,13 +973,10 @@ sub addtop100 { print qq| - + - - - |; $lxdebug->leave_sub(); @@ -1010,7 +1003,7 @@ sub addtop100 { # 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 @@ -1032,6 +1025,7 @@ sub generate_report { 'bin' => { 'text' => $locale->text('Bin'), }, 'deliverydate' => { 'text' => $locale->text('deliverydate'), }, 'description' => { 'text' => $locale->text('Part Description'), }, + 'notes' => { 'text' => $locale->text('Notes'), }, 'drawing' => { 'text' => $locale->text('Drawing'), }, 'ean' => { 'text' => $locale->text('EAN'), }, 'image' => { 'text' => $locale->text('Image'), }, @@ -1043,7 +1037,7 @@ sub generate_report { 'listprice' => { 'text' => $locale->text('List Price'), }, 'microfiche' => { 'text' => $locale->text('Microfiche'), }, 'name' => { 'text' => $locale->text('Name'), }, - 'onhand' => { 'text' => $locale->text('Qty'), }, + 'onhand' => { 'text' => $locale->text('Stocked Qty'), }, 'ordnumber' => { 'text' => $locale->text('Order Number'), }, 'partnumber' => { 'text' => $locale->text('Part Number'), }, 'partsgroup' => { 'text' => $locale->text('Group'), }, @@ -1052,10 +1046,12 @@ sub generate_report { 'rop' => { 'text' => $locale->text('ROP'), }, 'sellprice' => { 'text' => $locale->text('Sell Price'), }, 'serialnumber' => { 'text' => $locale->text('Serial Number'), }, - 'soldtotal' => { 'text' => $locale->text('soldtotal'), }, + 'soldtotal' => { 'text' => $locale->text('Qty in Selected Records'), }, 'transdate' => { 'text' => $locale->text('Transdate'), }, 'unit' => { 'text' => $locale->text('Unit'), }, 'weight' => { 'text' => $locale->text('Weight'), }, + 'projectnumber' => { 'text' => $locale->text('Project Number'), }, + 'projectdescription' => { 'text' => $locale->text('Project Description'), }, ); $revers = $form->{revers}; @@ -1136,7 +1132,7 @@ sub generate_report { model => $locale->text('Model') . ": '$form->{model}'", drawing => $locale->text('Drawing') . ": '$form->{drawing}'", microfiche => $locale->text('Microfiche') . ": '$form->{microfiche}'", - l_soldtotal => $locale->text('soldtotal'), + l_soldtotal => $locale->text('Qty in Selected Records'), ean => $locale->text('EAN') . ": '$form->{ean}'", ); @@ -1171,7 +1167,7 @@ sub generate_report { } if ($form->{l_linetotal}) { - $form->{l_onhand} = "Y"; + $form->{l_qty} = "Y"; $form->{l_linetotalsellprice} = "Y" if $form->{l_sellprice}; $form->{l_linetotallastcost} = $form->{searchitems} eq 'assembly' && !$form->{bom} ? "" : 'Y' if $form->{l_lastcost}; $form->{l_linetotallistprice} = "Y" if $form->{l_listprice}; @@ -1191,34 +1187,66 @@ sub generate_report { || $form->{ordered} || $form->{rfq} || $form->{quoted}) { - $form->{l_onhand} = "Y"; +# $form->{l_onhand} = "Y"; } else { $form->{l_linetotalsellprice} = ""; $form->{l_linetotallastcost} = ""; } } + # soldtotal doesn't make sense with more than one bsooqr option. + # so reset it to sold (the most common option), and issue a warning + my @bsooqr = qw(sold bought onorder ordered rfq quoted); + if ($form->{l_subtotal} && 1 < grep { $form->{$_} } @bsooqr) { + 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}); + } + IC->all_parts(\%myconfig, \%$form); my @columns = qw( - partnumber description partsgroup bin onhand rop unit listprice + partnumber description notes partsgroup bin onhand rop soldtotal unit listprice linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost priceupdate weight image drawing microfiche invnumber ordnumber quonumber - transdate name serialnumber soldtotal deliverydate ean + 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 l_pricegroups), + @itemstatus_keys, + @callback_keys, + map({ "cvar_$_->{name}" } @searchable_custom_variables), + map({'cvar_'. $_->{name} .'_qtyop'} grep({$_->{type} eq 'number'} @searchable_custom_variables)), + map({ "l_$_" } @columns), + ); - my @hidden_variables = (qw(l_subtotal l_linetotal searchitems itemstatus bom), @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); @@ -1290,12 +1318,12 @@ sub generate_report { $ref->{lastcost} *= $ref->{exchangerate} / $ref->{price_factor}; # use this for assemblies - my $onhand = $ref->{onhand}; + my $soldtotal = $ref->{soldtotal}; if ($ref->{assemblyitem}) { $row->{partnumber}{align} = 'right'; - $row->{onhand}{data} = 0; - $onhand = 0 if ($form->{sold}); + $row->{soldtotal}{data} = 0; + $soldtotal = 0 if ($form->{sold}); } my $edit_link = build_std_url('action=edit', 'id=' . E($ref->{id}), 'callback'); @@ -1303,9 +1331,13 @@ sub generate_report { $row->{description}->{link} = $edit_link; foreach (qw(sellprice listprice lastcost)) { - $row->{$_}{data} = $form->format_amount(\%myconfig, $ref->{$_}, -2); + $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); @@ -1313,18 +1345,25 @@ sub generate_report { if (!$ref->{assemblyitem}) { foreach my $col (@subtotal_columns) { - $totals{$col} += $onhand * $ref->{$col}; - $subtotals{$col} += $onhand * $ref->{$col}; + $totals{$col} += $soldtotal * $ref->{$col}; + $subtotals{$col} += $soldtotal * $ref->{$col}; } - $subtotals{onhand} += $onhand; + $subtotals{soldtotal} += $soldtotal; } # set module stuff if ($ref->{module} eq 'oe') { - my $edit_oe_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'); - $row->{ordnumber}{link} = $edit_oe_link; - $row->{quonumber}{link} = $edit_oe_link if (!$ref->{ordnumber}); + # 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 + + 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'); + + $row->{ordnumber}{link} = $edit_oe_ord_link; + $row->{quonumber}{link} = $edit_oe_quo_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'); @@ -1348,11 +1387,11 @@ sub generate_report { my $row = { map { $_ => { 'class' => 'listsubtotal', } } @columns }; if (($form->{searchitems} ne 'assembly') || !$form->{bom}) { - $row->{onhand}->{data} = $form->format_amount(\%myconfig, $subtotals{onhand}); + $row->{soldtotal}->{data} = $form->format_amount(\%myconfig, $subtotals{soldtotal}); } map { $row->{"linetotal$_"}->{data} = $form->format_amount(\%myconfig, $subtotals{$_}, 2) } @subtotal_columns; - map { $subtotals{$_} = 0 } ('onhand', @subtotal_columns); + map { $subtotals{$_} = 0 } ('soldtotal', @subtotal_columns); $report->add_data($row); @@ -1362,7 +1401,7 @@ sub generate_report { $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; @@ -1450,8 +1489,7 @@ sub link_part { IC->create_links("IC", \%myconfig, \%$form); # currencies - map({ $form->{selectcurrency} .= "
$form->{title}