X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmozilla%2Fic.pl;h=a30378123a01bf5370e87ad96aa4e526b420d582;hb=588aa1eb2e55c698fecd2dec453e332fb6859af6;hp=b29daa63c57d9bbf0044263886ba49c2491408fb;hpb=4d9fde96e71e940ad0b6635dc4d70dde6d2a4c74;p=kivitendo-erp.git diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl index b29daa63c..a30378123 100644 --- a/bin/mozilla/ic.pl +++ b/bin/mozilla/ic.pl @@ -32,7 +32,7 @@ #====================================================================== use POSIX qw(strftime); -use List::Util qw(max); +use List::Util qw(first max); use List::MoreUtils qw(any); use SL::AM; @@ -78,7 +78,8 @@ sub add { $auth->assert('part_service_assembly_edit'); - $form->{title} = $locale->text('Add ' . ucfirst $form->{item}); + my $title = 'Add ' . ucfirst $form->{item}; + $form->{title} = $locale->text($title); $form->{callback} = "$form->{script}?action=add&item=$form->{item}" unless $form->{callback}; $form->{unit_changeable} = 1; @@ -114,8 +115,10 @@ sub search { $form->header; + $form->get_lists('partsgroup' => 'ALL_PARTSGROUPS'); print $form->parse_html_template('ic/search', { %is_xyz, - dateformat => $myconfig{dateformat}, }); + dateformat => $myconfig{dateformat}, + limit => $myconfig{vclimit}, }); $lxdebug->leave_sub(); } #end search() @@ -127,6 +130,8 @@ sub search_update_prices { my $pricegroups = IC->get_pricegroups(\%myconfig, \%$form); + $form->{title} = $locale->text('Update Prices'); + $form->header; print $form->parse_html_template('ic/search_update_prices', { PRICE_ROWS => $pricegroups }); @@ -789,7 +794,7 @@ sub addtop100 { if ($form->{l_subtotal} eq 'Y' && !$ref->{assemblyitem}) { if ($sameitem ne $ref->{ $form->{sort} }) { - &parts_subtotal; + parts_subtotal(\@column_index, \$subtotalonhand, \$subtotalsellprice, \$subtotallastcost, \$subtotallistprice); $sameitem = $ref->{ $form->{sort} }; } } @@ -912,7 +917,7 @@ sub addtop100 { } if ($form->{l_subtotal} eq 'Y') { - &parts_subtotal; + parts_subtotal(\@column_index, \$subtotalonhand, \$subtotalsellprice, \$subtotallastcost, \$subtotallistprice); } #fi if ($form->{"l_linetotal"}) { @@ -1023,6 +1028,36 @@ sub generate_report { $form->{title} =~ s/ys$/ies/; $form->{title} = $locale->text($form->{title}); + my %column_defs = ( + 'bin' => { 'text' => $locale->text('Bin'), }, + 'deliverydate' => { 'text' => $locale->text('deliverydate'), }, + 'description' => { 'text' => $locale->text('Part Description'), }, + 'drawing' => { 'text' => $locale->text('Drawing'), }, + 'ean' => { 'text' => $locale->text('EAN'), }, + 'image' => { 'text' => $locale->text('Image'), }, + 'invnumber' => { 'text' => $locale->text('Invoice Number'), }, + 'lastcost' => { 'text' => $locale->text('Last Cost'), }, + 'linetotallastcost' => { 'text' => $locale->text('Extended'), }, + 'linetotallistprice' => { 'text' => $locale->text('Extended'), }, + 'linetotalsellprice' => { 'text' => $locale->text('Extended'), }, + 'listprice' => { 'text' => $locale->text('List Price'), }, + 'microfiche' => { 'text' => $locale->text('Microfiche'), }, + 'name' => { 'text' => $locale->text('Name'), }, + 'onhand' => { 'text' => $locale->text('Qty'), }, + 'ordnumber' => { 'text' => $locale->text('Order Number'), }, + 'partnumber' => { 'text' => $locale->text('Part Number'), }, + 'partsgroup' => { 'text' => $locale->text('Group'), }, + 'priceupdate' => { 'text' => $locale->text('Updated'), }, + 'quonumber' => { 'text' => $locale->text('Quotation'), }, + 'rop' => { 'text' => $locale->text('ROP'), }, + 'sellprice' => { 'text' => $locale->text('Sell Price'), }, + 'serialnumber' => { 'text' => $locale->text('Serial Number'), }, + 'soldtotal' => { 'text' => $locale->text('soldtotal'), }, + 'transdate' => { 'text' => $locale->text('Transdate'), }, + 'unit' => { 'text' => $locale->text('Unit'), }, + 'weight' => { 'text' => $locale->text('Weight'), }, + ); + $revers = $form->{revers}; $lastsort = $form->{lastsort}; @@ -1070,6 +1105,13 @@ sub generate_report { no_sn_joins => [ qw(bought sold) ], ); + # get name of partsgroup if id is given + my $pg_name; + if ($form->{partsgroup_id}) { + my $pg = SL::DB::PartsGroup->new(id => $form->{partsgroup_id})->load; + $pg_name = $pg->{'partsgroup'}; + } + # these strings get displayed at the top of the results to indicate the user which switches were used my %optiontexts = ( active => $locale->text('Active'), @@ -1087,6 +1129,7 @@ sub generate_report { transdateto => $locale->text('To (time)') . " " . $locale->date(\%myconfig, $form->{transdateto}, 1), partnumber => $locale->text('Part Number') . ": '$form->{partnumber}'", partsgroup => $locale->text('Group') . ": '$form->{partsgroup}'", + partsgroup_id => $locale->text('Group') . ": '$pg_name'", serialnumber => $locale->text('Serial Number') . ": '$form->{serialnumber}'", description => $locale->text('Part Description') . ": '$form->{description}'", make => $locale->text('Make') . ": '$form->{make}'", @@ -1094,10 +1137,11 @@ sub generate_report { drawing => $locale->text('Drawing') . ": '$form->{drawing}'", microfiche => $locale->text('Microfiche') . ": '$form->{microfiche}'", l_soldtotal => $locale->text('soldtotal'), + ean => $locale->text('EAN') . ": '$form->{ean}'", ); my @itemstatus_keys = qw(active obsolete orphaned onhand short); - my @callback_keys = qw(onorder ordered rfq quoted bought sold partnumber partsgroup serialnumber description make model + my @callback_keys = qw(onorder ordered rfq quoted bought sold partnumber partsgroup partsgroup_id serialnumber description make model drawing microfiche l_soldtotal l_deliverydate transdatefrom transdateto ean); # calculate dependencies @@ -1114,7 +1158,12 @@ sub generate_report { } # special case for lastcost - $form->{l_lastcost} = "" if $form->{ledgerchecks}; + if ($form->{ledgerchecks}){ + # ledgerchecks don't know about sellprice or lastcost. they just return a + # price. so rename sellprice to price, and drop lastcost. + $column_defs{sellprice}{text} = $locale->text('Price'); + $form->{l_lastcost} = "" + } if ($form->{description}) { $description = $form->{description}; @@ -1155,7 +1204,7 @@ sub generate_report { partnumber description partsgroup bin onhand rop unit listprice linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost priceupdate weight image drawing microfiche invnumber ordnumber quonumber - transdate name serialnumber soldtotal deliverydate + transdate name serialnumber soldtotal deliverydate ean ); my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs }; @@ -1164,40 +1213,12 @@ sub generate_report { push @columns, map { "cvar_$_->{name}" } @includeable_custom_variables; - my %column_defs = ( - 'bin' => { 'text' => $locale->text('Bin'), }, - 'deliverydate' => { 'text' => $locale->text('deliverydate'), }, - 'description' => { 'text' => $locale->text('Part Description'), }, - 'drawing' => { 'text' => $locale->text('Drawing'), }, - 'image' => { 'text' => $locale->text('Image'), }, - 'invnumber' => { 'text' => $locale->text('Invoice Number'), }, - 'lastcost' => { 'text' => $locale->text('Last Cost'), }, - 'linetotallastcost' => { 'text' => $locale->text('Extended'), }, - 'linetotallistprice' => { 'text' => $locale->text('Extended'), }, - 'linetotalsellprice' => { 'text' => $locale->text('Extended'), }, - 'listprice' => { 'text' => $locale->text('List Price'), }, - 'microfiche' => { 'text' => $locale->text('Microfiche'), }, - 'name' => { 'text' => $locale->text('Name'), }, - 'onhand' => { 'text' => $locale->text('Qty'), }, - 'ordnumber' => { 'text' => $locale->text('Order Number'), }, - 'partnumber' => { 'text' => $locale->text('Part Number'), }, - 'partsgroup' => { 'text' => $locale->text('Group'), }, - 'priceupdate' => { 'text' => $locale->text('Updated'), }, - 'quonumber' => { 'text' => $locale->text('Quotation'), }, - 'rop' => { 'text' => $locale->text('ROP'), }, - 'sellprice' => { 'text' => $locale->text('Sell Price'), }, - 'serialnumber' => { 'text' => $locale->text('Serial Number'), }, - 'soldtotal' => { 'text' => $locale->text('soldtotal'), }, - 'transdate' => { 'text' => $locale->text('Transdate'), }, - 'unit' => { 'text' => $locale->text('Unit'), }, - 'weight' => { 'text' => $locale->text('Weight'), }, - %column_defs_cvars, - ); - - map { $column_defs{$_}->{visible} = $form->{"l_$_"} ? 1 : 0 } @columns; + %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); - my @hidden_variables = (qw(l_subtotal l_linetotal searchitems itemstatus bom), @itemstatus_keys, @callback_keys, @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); @@ -1226,6 +1247,7 @@ sub generate_report { 'attachment_basename' => $attachment_basenames{$form->{searchitems}} . strftime('_%Y%m%d', localtime time), ); $report->set_options_from_form(); + $locale->set_numberformat_wo_thousands_separator(\%myconfig) if lc($report->{options}->{output_format}) eq 'csv'; $report->set_columns(%column_defs); $report->set_column_order(@columns); @@ -1251,7 +1273,7 @@ sub generate_report { my %subtotals = map { $_ => 0 } ('onhand', @subtotal_columns); my %totals = map { $_ => 0 } @subtotal_columns; my $idx = 0; - my $same_item = $form->{parts}[0]{ $form->{sort} } if (scalar @{ $form->{parts} }); + my $same_item = @{ $form->{parts} } ? $form->{parts}[0]{ $form->{sort} } : undef; my $defaults = AM->get_defaults(); @@ -1359,39 +1381,38 @@ sub parts_subtotal { $auth->assert('part_service_assembly_edit'); - # imports - our (%column_data, @column_index); - our ($subtotalonhand, $totalsellprice, $totallastcost, $totallistprice, $subtotalsellprice, $subtotallastcost, $subtotallistprice); + my (%column_data); + my ($column_index, $subtotalonhand, $subtotalsellprice, $subtotallastcost, $subtotallistprice) = @_; - map { $column_data{$_} = "