X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fic.pl;h=2aae5cdd5379ff34e9839941f3accc7a4b211607;hb=00b80ab43143988264a03c650f4fa06e1d365b30;hp=e6b1ff33ffb9776c74490b3d853f7647da2d62fd;hpb=df41380a9c1150938985322c48ef20fe7f2cd98b;p=kivitendo-erp.git diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl index e6b1ff33f..2aae5cdd5 100644 --- a/bin/mozilla/ic.pl +++ b/bin/mozilla/ic.pl @@ -84,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}, @@ -99,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(); @@ -217,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: @@ -242,15 +163,7 @@ sub generate_report { my $cvar_configs = CVar->get_configs('module' => 'IC'); - my %titles = ( - '' => $locale->text('Articles'), - part => $locale->text('Parts'), - service => $locale->text('Services'), - assembly => $locale->text('Assemblies'), - assortment => $locale->text('Assortments'), - ); - - $form->{title} = $titles{$form->{searchitems}}; + $form->{title} = $locale->text('Articles'); my %column_defs = ( 'bin' => { 'text' => $locale->text('Bin'), }, @@ -284,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'), }, ); @@ -408,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); @@ -456,7 +371,7 @@ 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 @@ -489,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), @@ -515,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'; @@ -631,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); @@ -642,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}); } @@ -671,44 +591,4 @@ sub generate_report { $lxdebug->leave_sub(); } #end generate_report -sub ajax_autocomplete { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my %myconfig = %main::myconfig; - - $form->{column} = 'description' unless $form->{column} =~ /^partnumber|description$/; - $form->{$form->{column}} = $form->{q} || ''; - $form->{limit} = ($form->{limit} * 1) || 10; - $form->{searchitems} ||= ''; - - my @results = IC->all_parts(\%myconfig, $form); - - print $form->ajax_response_header(), - $form->parse_html_template('ic/ajax_autocomplete'); - - $main::lxdebug->leave_sub(); -} - -sub back_to_record { - _check_io_auth(); - - - delete @{$::form}{qw(action action_add action_back_to_record back_sub description item notes partnumber sellprice taxaccount2 unit vc)}; - - $::auth->restore_form_from_session($::form->{previousform}, clobber => 1); - $::form->{rowcount}--; - $::form->{action} = 'display_form'; - $::form->{callback} = $::form->{script} . '?' . join('&', map { $::form->escape($_) . '=' . $::form->escape($::form->{$_}) } sort keys %{ $::form }); - $::form->redirect; -} - sub continue { call_sub($form->{"nextsub"}); } - -sub dispatcher { - my $action = first { $::form->{"action_${_}"} } qw(add back_to_record); - $::form->error($::locale->text('No action defined.')) unless $action; - - $::form->{dispatched_action} = $action; - call_sub($action); -}