Mandantenkonfiguration: Pflichtenheftstandardartikel mit Partpicker auswählen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 12 Jul 2013 11:46:11 +0000 (13:46 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 1 Apr 2014 11:09:04 +0000 (13:09 +0200)
SL/Controller/ClientConfig.pm
locale/de/all
templates/webpages/client_config/_features.html

index 53f59fe..df485c0 100644 (file)
@@ -19,7 +19,7 @@ use SL::Template;
 __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) ],
 );
 
@@ -143,15 +143,7 @@ sub init_all_languages   { SL::DB::Manager::Language->get_all_sorted
 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           },
@@ -226,10 +218,11 @@ sub check_auth {
 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 },
               );
 }
 
index f912401..7d64e1c 100755 (executable)
@@ -993,6 +993,7 @@ $self->{texts} = {
   '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',
index f809c45..af504a8 100644 (file)
@@ -1,4 +1,4 @@
-[%- 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>