]> wagnertech.de Git - mfinanz.git/blobdiff - SL/DB/Manager/Unit.pm
Rechnungsadresse aus den Stammdaten bei periodischen Rechnungen verwenden (Anzeige...
[mfinanz.git] / SL / DB / Manager / Unit.pm
index f081af49ee8ba6d4aa1bcfa86c6ad33b4abc1b60..aa55ffa7682ecad2e9a092ee49cf31afe72ae9c9 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;
@@ -41,4 +43,23 @@ sub convertible_to_filter {
   return ("${prefix}name" => [ map { $_->name } @{ $unit->convertible_units } ]);
 }
 
+sub all_units {
+  my ($class) = @_;
+  $::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;