]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Presenter/Part.pm
Artikel-Klassifizierung: "Preis separat ausweisen"
[mfinanz.git] / SL / Presenter / Part.pm
index c3bbea2bce2cd901ca44a93340d39efb5744bc60..d8491ecb525c905f88a7a421411d5c9277b175c9 100644 (file)
@@ -3,10 +3,11 @@ package SL::Presenter::Part;
 use strict;
 
 use SL::DB::Part;
-use SL::DB::Manager::PartsClassification;
+use SL::DB::PartClassification;
+use SL::Locale::String qw(t8);
 
 use Exporter qw(import);
-our @EXPORT = qw(part_picker part select_classification classification_abbreviation type_abbreviation type_and_classification);
+our @EXPORT = qw(part_picker part select_classification classification_abbreviation type_abbreviation separate_abbreviation);
 
 use Carp;
 
@@ -48,11 +49,10 @@ sub part_picker {
 }
 
 #
-# Must be addapted to new type table
+# shortcut for article type
 #
 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';
@@ -74,17 +74,34 @@ sub type_abbreviation {
 # $::locale->text('Merchandise')
 # $::locale->text('Production')
 
+#
+# shortcut for article type
+#
 sub classification_abbreviation {
   my ($self, $id) = @_;
-  $main::lxdebug->message(LXDebug->DEBUG2(),"classif=".$id);
-  return $::locale->text(SL::DB::Manager::PartsClassification->get_abbreviation($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::PartsClassification->get_all_sorted();
+  my $collection = SL::DB::Manager::PartClassification->get_all_sorted();
   $_->description($::locale->text($_->description)) for @{ $collection };
   return $self->select_tag( $name, $collection, %attributes );
 }
@@ -136,6 +153,40 @@ to the corresponding 'edit' action.
 
 =over 2
 
+=item C<classification_abbreviation $classification_id>
+
+Returns the shortcut of the classification
+
+=back
+
+=over 2
+
+=item C<separate_abbreviation $classification_id>
+
+Returns the shortcut of the classification if the classifiaction has the separate flag set.
+
+=back
+
+=over 2
+
+=item C<select_classification $name,%params>
+
+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<part_picker $name, $value, %params>
 
 All-in-one picker widget for parts. The name will be both id and name
@@ -257,4 +308,6 @@ None atm :)
 
 Sven Schöling E<lt>s.schoeling@linet-services.deE<gt>
 
+Martin Helmling E<lt>martin.helmling@opendynamic.deE<gt>
+
 =cut