X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FManager%2FUnit.pm;h=aa55ffa7682ecad2e9a092ee49cf31afe72ae9c9;hb=2a0cbd885790174fa0f212e6661b30362650a42c;hp=f081af49ee8ba6d4aa1bcfa86c6ad33b4abc1b60;hpb=c312836ce432677d4f7876f1e3a2b6d99f433cd6;p=kivitendo-erp.git diff --git a/SL/DB/Manager/Unit.pm b/SL/DB/Manager/Unit.pm index f081af49e..aa55ffa76 100644 --- a/SL/DB/Manager/Unit.pm +++ b/SL/DB/Manager/Unit.pm @@ -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;