X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/dc824520b4024bb73b4522a8dad9aae179b29540..b36f0864f0304deb66f4215c52b68351f90b2309:/SL/Presenter/Part.pm diff --git a/SL/Presenter/Part.pm b/SL/Presenter/Part.pm index 3088eaa31..c3bbea2bc 100644 --- a/SL/Presenter/Part.pm +++ b/SL/Presenter/Part.pm @@ -3,9 +3,10 @@ package SL::Presenter::Part; use strict; use SL::DB::Part; +use SL::DB::Manager::PartsClassification; use Exporter qw(import); -our @EXPORT = qw(part_picker part); +our @EXPORT = qw(part_picker part select_classification classification_abbreviation type_abbreviation type_and_classification); use Carp; @@ -17,7 +18,7 @@ sub part { croak "Unknown display type '$params{display}'" unless $params{display} =~ m/^(?:inline|table-cell)$/; my $text = join '', ( - $params{no_link} ? '' : '', + $params{no_link} ? '' : '', $self->escape($part->partnumber), $params{no_link} ? '' : '', ); @@ -37,7 +38,7 @@ sub part_picker { my $ret = $self->input_tag($name, (ref $value && $value->can('id') ? $value->id : ''), class => "@classes", type => 'hidden', id => $id) . - join('', map { $params{$_} ? $self->input_tag("", delete $params{$_}, id => "${id}_${_}", type => 'hidden') : '' } qw(type unit convertible_unit)) . + join('', map { $params{$_} ? $self->input_tag("", delete $params{$_}, id => "${id}_${_}", type => 'hidden') : '' } qw(part_type unit convertible_unit)) . $self->input_tag("", ref $value ? $value->displayable_name : '', id => "${id}_name", %params); $::request->layout->add_javascripts('autocomplete_part.js'); @@ -46,6 +47,48 @@ sub part_picker { $self->html_tag('span', $ret, class => 'part_picker'); } +# +# Must be addapted to new type table +# +sub type_abbreviation { + my ($self, $part_type) = @_; + $main::lxdebug->message(LXDebug->DEBUG2(),"parttype=".$part_type); + return $::locale->text('Assembly (typeabbreviation)') if $part_type eq 'assembly'; + return $::locale->text('Part (typeabbreviation)') if $part_type eq 'part'; + return $::locale->text('Assortment (typeabbreviation)') if $part_type eq 'assortment'; + return $::locale->text('Service (typeabbreviation)'); +} + +# +# Translations for Abbreviations: +# +# $::locale->text('None (typeabbreviation)') +# $::locale->text('Purchase (typeabbreviation)') +# $::locale->text('Sales (typeabbreviation)') +# $::locale->text('Merchandise (typeabbreviation)') +# $::locale->text('Production (typeabbreviation)') +# +# and for descriptions +# $::locale->text('Purchase') +# $::locale->text('Sales') +# $::locale->text('Merchandise') +# $::locale->text('Production') + +sub classification_abbreviation { + my ($self, $id) = @_; + $main::lxdebug->message(LXDebug->DEBUG2(),"classif=".$id); + return $::locale->text(SL::DB::Manager::PartsClassification->get_abbreviation($id)); +} + +sub select_classification { + my ($self, $name, %attributes) = @_; + $attributes{value_key} = 'id'; + $attributes{title_key} = 'description'; + my $collection = SL::DB::Manager::PartsClassification->get_all_sorted(); + $_->description($::locale->text($_->description)) for @{ $collection }; + return $self->select_tag( $name, $collection, %attributes ); +} + 1; __END__ @@ -105,7 +148,7 @@ C. C<$value> can be a parts id or a C instance. -If C<%params> contains C only parts of this type will be used +If C<%params> contains C only parts of this type will be used for autocompletion. You may comma separate multiple types as in C. @@ -123,7 +166,7 @@ selectors though, they are not selectable once overridden. C will register it's javascript for inclusion in the next header rendering. If you write a standard controller that only call C once, it will just work. In case the header is generated in a different render call -(multiple blocks, ajax, old C style controllers) you need to +(multiple blocks, ajax, old C style controllers) you need to include C yourself. =back