From 76383e4bd057a778acc2b3be2f2db278448dfe77 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bernd=20Ble=C3=9Fmann?= Date: Sat, 19 Jan 2019 17:22:07 +0100 Subject: [PATCH] DisplayableNamePrefs: Mandantenkonfiguration --- SL/Controller/ClientConfig.pm | 26 +++++++++++++- .../webpages/client_config/_features.html | 34 +++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/SL/Controller/ClientConfig.pm b/SL/Controller/ClientConfig.pm index 237185d50..59fe4f555 100644 --- a/SL/Controller/ClientConfig.pm +++ b/SL/Controller/ClientConfig.pm @@ -12,6 +12,7 @@ use SL::DB::Default; use SL::DB::Language; use SL::DB::Part; use SL::DB::Unit; +use SL::DB::Customer; use SL::Helper::Flash; use SL::Locale::String qw(t8); use SL::PriceSource::ALL; @@ -24,7 +25,8 @@ __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_price_sources h_unit_name available_quick_search_modules available_shipped_qty_item_identity_fields all_project_statuses all_project_types - posting_options payment_options accounting_options inventory_options profit_options balance_startdate_method_options) ], + posting_options payment_options accounting_options inventory_options profit_options balance_startdate_method_options + displayable_name_specs_by_module) ], ); sub action_edit { @@ -131,6 +133,11 @@ sub action_save { $self->defaults->templates('templates/' . $::form->{new_templates}); } + # Displayable name preferences + foreach my $specs (@{ $::form->{displayable_name_specs} }) { + $self->displayable_name_specs_by_module->{$specs->{module}}->{prefs}->store_default($specs->{default}); + } + # Finally save defaults. $self->defaults->save; @@ -202,6 +209,23 @@ sub init_available_shipped_qty_item_identity_fields { [ SL::Helper::ShippedQty->new->available_item_identity_fields ]; } +sub init_displayable_name_specs_by_module { + +{ + 'SL::DB::Customer' => { + specs => SL::DB::Customer->displayable_name_specs, + prefs => SL::DB::Customer->displayable_name_prefs, + }, + 'SL::DB::Vendor' => { + specs => SL::DB::Vendor->displayable_name_specs, + prefs => SL::DB::Vendor->displayable_name_prefs, + }, + 'SL::DB::Part' => { + specs => SL::DB::Part->displayable_name_specs, + prefs => SL::DB::Part->displayable_name_prefs, + }, + }; +} + # # filters # diff --git a/templates/webpages/client_config/_features.html b/templates/webpages/client_config/_features.html index 4729d8c31..7d4959fda 100644 --- a/templates/webpages/client_config/_features.html +++ b/templates/webpages/client_config/_features.html @@ -343,6 +343,40 @@ [% LxERP.t8('Only applies if the previous is set to true. When filling up unlinked positions, consider them matches if ALL of these fields match. For example, in a business with variants that are defined by a special description, description needs to be part of the identity. If delivering several similar order positions by delivery date is common, reqdate should be included in the identity. Serialnumber is useful when the serialnumber in the order and delivery order has to match.') %] + [% 'Displayable Name Preferences' | $T8 %] + [% FOREACH module=SELF.displayable_name_specs_by_module.keys.sort %] + [%- SET spec=SELF.displayable_name_specs_by_module.$module -%] + + [% spec.specs.title %] + + + + + + + [% FOREACH option=spec.specs.options %] + + + + + [% END %] + + + + +
[% 'Option' | $T8 %][% 'Name' | $T8 %]
[% option.title %][% option.name %]
[% 'Display' | $T8 %]: + [% L.hidden_tag("displayable_name_specs[+].module", module) %] + [% L.input_tag("displayable_name_specs[].default", spec.prefs.get_default, size=50) %] +
+ + [% IF loop.first %] + [% 'The display of (mainly) picker results can be configured. To insert the value of one option use <%Name%>.' | $T8 %]
+ [% 'E.g. "<%customernumber%> <%name%>"' | $T8 %] + + [% END %] + + [% END %] + -- 2.20.1