X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/65de6f61582fbd9e93c4a06cb11daab66ff4f308..219d88ab03186a74e5dd474175e49bd74dacf15f:/SL/Presenter/Part.pm
diff --git a/SL/Presenter/Part.pm b/SL/Presenter/Part.pm
index f634b3fcd..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;
@@ -17,7 +19,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} ? '' : '',
);
@@ -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