X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/7bbdbf2bd966e6317cff568ac6f60936b51d8df7..219d88ab03186a74e5dd474175e49bd74dacf15f:/SL/Presenter/Part.pm?ds=inline diff --git a/SL/Presenter/Part.pm b/SL/Presenter/Part.pm index 1f96cbe7b..d8491ecb5 100644 --- a/SL/Presenter/Part.pm +++ b/SL/Presenter/Part.pm @@ -3,9 +3,11 @@ package SL::Presenter::Part; use strict; use SL::DB::Part; +use SL::DB::PartClassification; +use SL::Locale::String qw(t8); use Exporter qw(import); -our @EXPORT = qw(part_picker part); +our @EXPORT = qw(part_picker part select_classification classification_abbreviation type_abbreviation separate_abbreviation); use Carp; @@ -46,6 +48,64 @@ sub part_picker { $self->html_tag('span', $ret, class => 'part_picker'); } +# +# shortcut for article type +# +sub type_abbreviation { + my ($self, $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') + +# +# shortcut for article type +# +sub classification_abbreviation { + my ($self, $id) = @_; + SL::DB::Manager::PartClassification->cache_all(); + my $obj = SL::DB::PartClassification->load_cached($id); + $obj && $obj->abbreviation ? t8($obj->abbreviation) : ''; +} + +# +# shortcut for article type +# +sub separate_abbreviation { + my ($self, $id) = @_; + SL::DB::Manager::PartClassification->cache_all(); + my $obj = SL::DB::PartClassification->load_cached($id); + $obj && $obj->abbreviation && $obj->report_separate ? t8($obj->abbreviation) : ''; +} + +# +# generate selection tag +# +sub select_classification { + my ($self, $name, %attributes) = @_; + $attributes{value_key} = 'id'; + $attributes{title_key} = 'description'; + my $collection = SL::DB::Manager::PartClassification->get_all_sorted(); + $_->description($::locale->text($_->description)) for @{ $collection }; + return $self->select_tag( $name, $collection, %attributes ); +} + 1; __END__ @@ -93,6 +153,40 @@ to the corresponding 'edit' action. =over 2 +=item C + +Returns the shortcut of the classification + +=back + +=over 2 + +=item C + +Returns the shortcut of the classification if the classifiaction has the separate flag set. + +=back + +=over 2 + +=item C + +Returns a HTML Select Tag with all available Classifications + +C<%params> can include: + +=over 4 + +=item * default + +The Id of the selected item . + +=back + +=back + +=over 2 + =item C All-in-one picker widget for parts. The name will be both id and name @@ -214,4 +308,6 @@ None atm :) Sven Schöling Es.schoeling@linet-services.deE +Martin Helmling Emartin.helmling@opendynamic.deE + =cut