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