X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FPartsGroup.pm;h=d6122949ce8c67227b4fea5e4d89b21ba553a350;hb=c59e85c3a7538b1279e25022a6cf431ca1dee700;hp=f81e977a10cffcf6ce1e6a2b732078be66781bcf;hpb=2d7e4203055156dccb2ca3fba82bbb32873ecd2e;p=kivitendo-erp.git diff --git a/SL/DB/PartsGroup.pm b/SL/DB/PartsGroup.pm index f81e977a1..d6122949c 100644 --- a/SL/DB/PartsGroup.pm +++ b/SL/DB/PartsGroup.pm @@ -6,10 +6,52 @@ 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 => { + type => 'many to many', + map_class => 'SL::DB::CustomVariableConfigPartsgroup', + }, +); __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;