X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/6ac47be4e3e318ea212ca595195b0b55a9c386a3..b293ff8ad52fc76ba0c44783e3982418114d6b08:/SL/DB/CustomVariableConfig.pm 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;