X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/36703a86a998c7c395f110f94b3b3feebc2a3a80..3f21f766920411eeb17e21887943e6fb6ff43b5c:/SL/DB/PartsGroup.pm diff --git a/SL/DB/PartsGroup.pm b/SL/DB/PartsGroup.pm index cc4508bde..d6122949c 100644 --- a/SL/DB/PartsGroup.pm +++ b/SL/DB/PartsGroup.pm @@ -6,6 +6,8 @@ package SL::DB::PartsGroup; use strict; use SL::DB::MetaSetup::PartsGroup; +use SL::DB::Manager::PartsGroup; +use SL::DB::Helper::ActsAsList; __PACKAGE__->meta->add_relationship( custom_variable_configs => { @@ -16,7 +18,40 @@ __PACKAGE__->meta->add_relationship( __PACKAGE__->meta->initialize; -# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all. -__PACKAGE__->meta->make_manager_class; +sub displayable_name { + my $self = shift; + + return join ' ', grep $_, $self->id, $self->partsgroup; +} + +sub validate { + my ($self) = @_; + require SL::DB::Customer; + + my @errors; + + push @errors, $::locale->text('The description is missing.') if $self->id and !$self->partsgroup; + + return @errors; +} + +sub orphaned { + my ($self) = @_; + die 'not an accessor' if @_ > 1; + + return 1 unless $self->id; + + my @relations = qw( + SL::DB::Part + SL::DB::CustomVariableConfigPartsgroup + ); + + for my $class (@relations) { + eval "require $class"; + return 0 if $class->_get_manager_class->get_all_count(query => [ partsgroup_id => $self->id ]); + } + + return 1; +} 1;