Pflichtenheftaufträge: beliebige Artikel auswählen können
[kivitendo-erp.git] / SL / DB / Manager / Unit.pm
index 673fcb0..aa55ffa 100644 (file)
@@ -8,6 +8,8 @@ use base qw(SL::DB::Helper::Manager);
 use SL::DB::Helper::Sorted;
 use SL::DB::Helper::Filtered;
 
+use List::Util qw(first);
+
 sub object_class { 'SL::DB::Unit' }
 
 __PACKAGE__->make_manager_methods;
@@ -46,4 +48,18 @@ sub all_units {
   $::request->cache('all_units')->{sorted} //= $class->get_all_sorted;
 }
 
+sub find_h_unit {
+  my ($class) = @_;
+
+  return $::request->cache('unit_manager')->{h_unit} //= first { $_->name =~ m{^(?: Std | h | Stunde )$}x } @{ $class->all_units };
+}
+
+sub time_based_units {
+  my ($class) = @_;
+
+  my $h_unit = $class->find_h_unit;
+  return [] if !$h_unit;
+  return $::request->cache('unit_manager')->{units} //= $h_unit->convertible_units;
+}
+
 1;