X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fic.pl;h=2aae5cdd5379ff34e9839941f3accc7a4b211607;hb=2da8f5ca6e9f7a164585d180eef47169298f12c5;hp=5fb8adf57cb274f15107be2153f2c637ca0d689f;hpb=16f131c37eac3667c2e789ab94ab2618fd8f41ed;p=kivitendo-erp.git diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl index 5fb8adf57..2aae5cdd5 100644 --- a/bin/mozilla/ic.pl +++ b/bin/mozilla/ic.pl @@ -24,7 +24,8 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1335, USA. #====================================================================== # # Inventory Control module @@ -74,23 +75,6 @@ require "bin/mozilla/reportgenerator.pl"; # end of main -sub add { - $lxdebug->enter_sub(); - - $auth->assert('part_service_assembly_edit'); - - 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; - - IC->get_pricegroups(\%myconfig, \%$form); - &link_part; - &display_form; - - $lxdebug->leave_sub(); -} - sub search { $lxdebug->enter_sub(); @@ -100,11 +84,9 @@ sub search { $form->{lastsort} = ""; # memory for which table was sort at last time $form->{ndxs_counter} = 0; # counter for added entries to top100 - my %is_xyz = map { +"is_$_" => ($form->{searchitems} eq $_) } qw(part service assembly); - $form->{title} = (ucfirst $form->{searchitems}) . "s"; + $form->{title} =~ s/ys$/ies/; $form->{title} = $locale->text($form->{title}); - $form->{title} = $locale->text('Assemblies') if ($is_xyz{is_assembly}); $form->{CUSTOM_VARIABLES} = CVar->get_configs('module' => 'IC'); ($form->{CUSTOM_VARIABLES_FILTER_CODE}, @@ -115,88 +97,11 @@ sub search { $form->header; $form->get_lists('partsgroup' => 'ALL_PARTSGROUPS'); - print $form->parse_html_template('ic/search', { %is_xyz, }); + print $form->parse_html_template('ic/search'); $lxdebug->leave_sub(); } #end search() -sub search_update_prices { - $lxdebug->enter_sub(); - - $auth->assert('part_service_assembly_edit'); - - 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 }); - - $lxdebug->leave_sub(); -} #end search() - -sub confirm_price_update { - $lxdebug->enter_sub(); - - $auth->assert('part_service_assembly_edit'); - - my @errors = (); - my $value_found = undef; - - foreach my $idx (qw(sellprice listprice), (1..$form->{price_rows})) { - my $name = $idx =~ m/\d/ ? $form->{"pricegroup_${idx}"} : $idx eq 'sellprice' ? $locale->text('Sell Price') : $locale->text('List Price'); - my $type = $idx =~ m/\d/ ? $form->{"pricegroup_type_${idx}"} : $form->{"${idx}_type"}; - my $value_idx = $idx =~ m/\d/ ? "price_${idx}" : $idx; - my $value = $form->parse_amount(\%myconfig, $form->{$value_idx}); - - if ((0 > $value) && ($type eq 'percent')) { - push @errors, $locale->text('You cannot adjust the price for pricegroup "#1" by a negative percentage.', $name); - - } elsif (!$value && ($form->{$value_idx} ne '')) { - push @errors, $locale->text('No valid number entered for pricegroup "#1".', $name); - - } elsif (0 < $value) { - $value_found = 1; - } - } - - push @errors, $locale->text('No prices will be updated because no prices have been entered.') if (!$value_found); - - my $num_matches = IC->get_num_matches_for_priceupdate(); - - $form->header(); - - if (@errors) { - $form->show_generic_error(join('
', @errors), 'back_button' => 1); - } - - $form->{nextsub} = "update_prices"; - - map { delete $form->{$_} } qw(action header); - - print $form->parse_html_template('ic/confirm_price_update', { HIDDENS => [ map { name => $_, value => $form->{$_} }, keys %$form ], - num_matches => $num_matches }); - - $lxdebug->leave_sub(); -} - -sub update_prices { - $lxdebug->enter_sub(); - - $auth->assert('part_service_assembly_edit'); - - my $num_updated = IC->update_prices(\%myconfig, \%$form); - - if (-1 != $num_updated) { - $form->redirect($locale->text('#1 prices were updated.', $num_updated)); - } else { - $form->error($locale->text('Could not update prices!')); - } - - $lxdebug->leave_sub(); -} - sub top100 { $::lxdebug->enter_sub(); @@ -233,7 +138,7 @@ sub top100 { # searchitems=part revers=0 lastsort='' # # filter: -# partnumber ean description partsgroup serialnumber make model drawing microfiche +# partnumber ean description partsgroup classification serialnumber make model drawing microfiche # transdatefrom transdateto # # radio: @@ -258,9 +163,7 @@ sub generate_report { my $cvar_configs = CVar->get_configs('module' => 'IC'); - $form->{title} = (ucfirst $form->{searchitems}) . "s"; - $form->{title} =~ s/ys$/ies/; - $form->{title} = $locale->text($form->{title}); + $form->{title} = $locale->text('Articles'); my %column_defs = ( 'bin' => { 'text' => $locale->text('Bin'), }, @@ -282,7 +185,7 @@ sub generate_report { 'onhand' => { 'text' => $locale->text('Stocked Qty'), }, 'ordnumber' => { 'text' => $locale->text('Order Number'), }, 'partnumber' => { 'text' => $locale->text('Part Number'), }, - 'partsgroup' => { 'text' => $locale->text('Group'), }, + 'partsgroup' => { 'text' => $locale->text('Partsgroup'), }, 'priceupdate' => { 'text' => $locale->text('Updated'), }, 'quonumber' => { 'text' => $locale->text('Quotation'), }, 'rop' => { 'text' => $locale->text('ROP'), }, @@ -294,6 +197,7 @@ sub generate_report { 'unit' => { 'text' => $locale->text('Unit'), }, 'weight' => { 'text' => $locale->text('Weight'), }, 'shop' => { 'text' => $locale->text('Shop article'), }, + 'type_and_classific' => { 'text' => $locale->text('Type'), }, 'projectnumber' => { 'text' => $locale->text('Project Number'), }, 'projectdescription' => { 'text' => $locale->text('Project Description'), }, ); @@ -368,8 +272,8 @@ sub generate_report { transdatefrom => $locale->text('From') . " " . $locale->date(\%myconfig, $form->{transdatefrom}, 1), 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'", + partsgroup => $locale->text('Partsgroup') . ": '$form->{partsgroup}'", + partsgroup_id => $locale->text('Partsgroup') . ": '$pg_name'", serialnumber => $locale->text('Serial Number') . ": '$form->{serialnumber}'", description => $locale->text('Part Description') . ": '$form->{description}'", make => $locale->text('Make') . ": '$form->{make}'", @@ -418,8 +322,9 @@ sub generate_report { $form->{l_linetotallastcost} = $form->{searchitems} eq 'assembly' && !$form->{bom} ? "" : 'Y' if $form->{l_lastcost}; $form->{l_linetotallistprice} = "Y" if $form->{l_listprice}; } + $form->{"l_type_and_classific"} = "Y"; - if ($form->{searchitems} eq 'service') { + if ($form->{l_service} && !$form->{l_assembly} && !$form->{l_part}) { # remove bin, weight and rop from list map { $form->{"l_$_"} = "" } qw(bin weight rop); @@ -466,14 +371,14 @@ sub generate_report { IC->all_parts(\%myconfig, \%$form); my @columns = qw( - partnumber description notes partsgroup bin onhand rop soldtotal unit listprice + partnumber type_and_classific 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 deliverydate ean projectnumber projectdescription insertdate shop ); - my $pricegroups = SL::DB::Manager::Pricegroup->get_all(sort => 'id'); + my $pricegroups = SL::DB::Manager::Pricegroup->get_all_sorted; my @pricegroup_columns; my %column_defs_pricegroups; if ($form->{l_pricegroups}) { @@ -499,6 +404,7 @@ sub generate_report { my @hidden_variables = ( qw(l_subtotal l_linetotal searchitems itemstatus bom l_pricegroups insertdatefrom insertdateto), + qw(l_type_and_classific classification_id), @itemstatus_keys, @callback_keys, map({ "cvar_$_->{name}" } @searchable_custom_variables), @@ -525,13 +431,15 @@ sub generate_report { 'part' => $locale->text('part_list'), 'service' => $locale->text('service_list'), 'assembly' => $locale->text('assembly_list'), + 'article' => $locale->text('article_list'), ); $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'), + 'raw_bottom_info_text' => $form->parse_html_template('ic/generate_report_bottom' , + { PART_CLASSIFICATIONS => SL::DB::Manager::PartClassification->get_all_sorted }), 'output_format' => 'HTML', 'title' => $form->{title}, - 'attachment_basename' => $attachment_basenames{$form->{searchitems}} . strftime('_%Y%m%d', localtime time), + 'attachment_basename' => 'article_list' . 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'; @@ -585,7 +493,7 @@ sub generate_report { $soldtotal = 0 if ($form->{sold}); } - my $edit_link = build_std_url('action=edit', 'id=' . E($ref->{id}), 'callback'); + my $edit_link = build_std_url('script=controller.pl', 'action=Part/edit', 'part.id=' . E($ref->{id}), 'callback'); $row->{partnumber}->{link} = $edit_link; $row->{description}->{link} = $edit_link; @@ -641,6 +549,8 @@ sub generate_report { map { $row->{$_}{link} = $ref->{$_} } qw(drawing microfiche); $row->{notes}{data} = SL::HTML::Util->strip($ref->{notes}); + $row->{type_and_classific}{data} = $::request->presenter->type_abbreviation($ref->{part_type}). + $::request->presenter->classification_abbreviation($ref->{classification_id}); $report->add_data($row); @@ -652,7 +562,7 @@ sub generate_report { (!$next_ref->{assemblyitem} && ($same_item ne $next_ref->{ $form->{sort} })))) { my $row = { map { $_ => { 'class' => 'listsubtotal', } } @columns }; - if (($form->{searchitems} ne 'assembly') || !$form->{bom}) { + if ( !$form->{l_assembly} || !$form->{bom}) { $row->{soldtotal}->{data} = $form->format_amount(\%myconfig, $subtotals{soldtotal}); } @@ -681,730 +591,4 @@ sub generate_report { $lxdebug->leave_sub(); } #end generate_report -sub parts_subtotal { - $lxdebug->enter_sub(); - - $auth->assert('part_service_assembly_edit'); - - my (%column_data); - my ($column_index, $subtotalonhand, $subtotalsellprice, $subtotallastcost, $subtotallistprice) = @_; - - map { $column_data{$_} = " " } @{ $column_index }; - $$subtotalonhand = 0 if ($form->{searchitems} eq 'assembly' && $form->{bom}); - - $column_data{onhand} = - "" - . $form->format_amount(\%myconfig, $$subtotalonhand) - . ""; - - $column_data{linetotalsellprice} = - "" - . $form->format_amount(\%myconfig, $$subtotalsellprice, 2) - . ""; - $column_data{linetotallistprice} = - "" - . $form->format_amount(\%myconfig, $$subtotallistprice, 2) - . ""; - $column_data{linetotallastcost} = - "" - . $form->format_amount(\%myconfig, $$subtotallastcost, 2) - . ""; - - $$subtotalonhand = 0; - $$subtotalsellprice = 0; - $$subtotallistprice = 0; - $$subtotallastcost = 0; - - print ""; - - map { print "\n$column_data{$_}" } @{ $column_index }; - - print qq| - -|; - - $lxdebug->leave_sub(); -} - -sub edit { - $lxdebug->enter_sub(); - - $auth->assert('part_service_assembly_details'); - - # show history button - $form->{javascript} = qq||; - #/show hhistory button - IC->get_part(\%myconfig, \%$form); - - $form->{"original_partnumber"} = $form->{"partnumber"}; - - my $title = 'Edit ' . ucfirst $form->{item}; - $form->{title} = $locale->text($title); - - &link_part; - &display_form; - - $lxdebug->leave_sub(); -} - -sub link_part { - $lxdebug->enter_sub(); - - $auth->assert('part_service_assembly_details'); - - IC->create_links("IC", \%myconfig, \%$form); - - # currencies - map({ $form->{selectcurrency} .= "