__PACKAGE__->run_before('check_auth');
use Rose::Object::MakeMethods::Generic (
- 'scalar --get_set_init' => [ qw(defaults all_warehouses all_weightunits all_languages all_currencies all_templates all_parts_time_unit
+ 'scalar --get_set_init' => [ qw(defaults all_warehouses all_weightunits all_languages all_currencies all_templates h_unit_name
posting_options payment_options accounting_options inventory_options profit_options accounts balance_startdate_method_options) ],
);
sub init_all_currencies { SL::DB::Manager::Currency->get_all_sorted }
sub init_all_weightunits { my $unit = SL::DB::Manager::Unit->find_by(name => 'kg'); $unit ? $unit->convertible_units : [] }
sub init_all_templates { +{ SL::Template->available_templates } }
-
-sub init_all_parts_time_unit {
- my $h_unit = first { $_ } map { SL::DB::Manager::Unit->find_by(name => $_) } qw(Std h Stunde);
- return [] unless $h_unit;
-
- my @convertible_unit_names = map { $_->name } @{ $h_unit->convertible_units };
-
- return SL::DB::Manager::Part->get_all_sorted(where => [ unit => \@convertible_unit_names ]);
-}
+sub init_h_unit_name { first { SL::DB::Manager::Unit->find_by(name => $_) } qw(Std h Stunde) };
sub init_posting_options {
[ { title => t8("never"), value => 0 },
sub edit_form {
my ($self) = @_;
+ $::request->layout->use_javascript("${_}.js") for qw(autocomplete_part);
+
$self->render('client_config/form', title => t8('Client Configuration'),
make_chart_title => sub { $_[0]->accno . '--' . $_[0]->description },
make_templates_value => sub { 'templates/' . $_[0] },
- make_part_title => sub { $_[0]->partnumber . ' ' . $_[0]->description },
);
}
'Error: Name missing' => 'Fehler: Name fehlt',
'Error: Part not found' => 'Fehler: Artikel nicht gefunden',
'Error: Unit missing or invalid' => 'Fehler: Einheit fehlt oder ungültig',
+ 'Error: this feature requires that articles with a time-based unit (e.g. \'h\' or \'min\') exist.' => 'Fehler: dieses Feature setzt voraus, dass Artikel mit einer Zeit-basierenden Einheit (z.B. "Std") existieren.',
'Errors' => 'Fehler',
'Ertrag' => 'Ertrag',
'Ertrag prozentual' => 'Ertrag prozentual',
-[%- USE LxERP -%][%- USE L -%]
+[%- USE LxERP -%][%- USE L -%][%- USE P -%]
<div id="features">
<table>
<tr><td class="listheading" colspan="4">[% LxERP.t8("WebDAV") %]</td></tr>
<tr>
<td align="right">[% LxERP.t8('Default article for converting into quotations and orders') %]</td>
- <td>[% L.select_tag('defaults.requirement_spec_section_order_part_id', SELF.all_parts_time_unit, default=SELF.defaults.requirement_spec_section_order_part_id, with_empty=1, title_sub=\make_part_title) %]</td>
+ <td>
+ [% IF SELF.h_unit_name %]
+ [% P.part_picker('defaults.requirement_spec_section_order_part_id', SELF.defaults.requirement_spec_section_order_part_id, convertible_unit=SELF.h_unit_name, style=style) %]
+ [% ELSE %]
+ [% LxERP.t8("Error: this feature requires that articles with a time-based unit (e.g. 'h' or 'min') exist.") %]
+ [% END %]
+ </td>
<td>[% LxERP.t8('When converting a requirement spec into a quotation or an oder each section gets converted into a line position in the new record. This is the article used by default for this conversion.') %]</td>
</tr>
</table>