#======================================================================
use POSIX qw(strftime);
-use List::Util qw(max);
+use List::Util qw(first max);
use List::MoreUtils qw(any);
use SL::AM;
$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();
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();
$auth->assert('part_service_assembly_edit');
- # what does eur set here? why is it in namespace?
- # call of get_accounting_method preserves format of $form->{eur}, which expects 1 or 0
- $form->{eur} = $::instance_conf->get_accounting_method eq 'cash' ? 1 : 0; # config dumps into namespace - yuck
$form->{pg_keys} = sub { "$_[0]->{partsgroup}--$_[0]->{id}" };
$form->{description_area} = ($form->{rows} = $form->numtextrows($form->{description}, 40)) > 1;
$form->{notes_rows} = max 4, $form->numtextrows($form->{notes}, 40), $form->numtextrows($form->{formel}, 40);
$main::lxdebug->leave_sub();
}
+sub back_to_record {
+ _check_io_auth();
+
+ $::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);
+}