X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FCustomVariableConfig.pm;h=6ba2238af9af37de28101792a8f066663dd00c6f;hb=9f3c46ffb16c200246c545faa7f17686aa461483;hp=203f83a90d0a374d7725dc680a812a86cf727e5d;hpb=a12274fdfe51e4ca9ea0dd91bb94b147bb641a29;p=kivitendo-erp.git diff --git a/SL/DB/CustomVariableConfig.pm b/SL/DB/CustomVariableConfig.pm index 203f83a90..6ba2238af 100644 --- a/SL/DB/CustomVariableConfig.pm +++ b/SL/DB/CustomVariableConfig.pm @@ -5,10 +5,19 @@ package SL::DB::CustomVariableConfig; use strict; +use List::MoreUtils qw(any); + use SL::DB::MetaSetup::CustomVariableConfig; use SL::DB::Manager::CustomVariableConfig; use SL::DB::Helper::ActsAsList; +__PACKAGE__->meta->add_relationship( + partsgroups => { + type => 'many to many', + map_class => 'SL::DB::CustomVariableConfigPartsgroup', + }, +); + __PACKAGE__->meta->initialize; __PACKAGE__->configure_acts_as_list(group_by => [qw(module)]); @@ -28,8 +37,8 @@ sub validate { use constant OPTION_DEFAULTS => { MAXLENGTH => 75, - WIDTH => 30, - HEIGHT => 5, + WIDTH => 225, + HEIGHT => 90, }; sub processed_options { @@ -66,7 +75,7 @@ sub processed_flags { } my $flags = $self->flags; - my $ret; + my $ret = {}; foreach my $flag (split m/:/, $flags) { if ( $flag =~ m/(.*?)=(.*)/ ) { @@ -87,4 +96,32 @@ sub has_flag { return $self->processed_flags()->{$flag}; } +sub type_dependent_default_value { + my ($self) = @_; + + return $self->default_value if $self->type ne 'select'; + return (any { $_ eq $self->default_value } @{ $self->processed_options }) ? $self->default_value : $self->processed_options->[0]; +} + +sub value_col { + my ($self) = @_; + + my $type = $self->type; + + return { + bool => 'bool_value', + timestamp => 'timestamp_value', + date => 'timestamp_value', + number => 'number_value', + integer => 'number_value', + customer => 'number_value', + vendor => 'number_value', + part => 'number_value', + htmlfield => 'text_value', + text => 'text_value', + textfield => 'text_value', + select => 'text_value' + }->{$type}; +} + 1;