$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 assortment);
-
$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},
$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('<br>', @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();
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'), },
}
$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);
{ 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';
(!$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});
}
$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);
-}