X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/d17e1b9d1b761bb19d0cb79a742ea70a07028998..b42a86ead32ac2a4cefcc972f35b3e723f21d6bc:/SL/DB/RequirementSpec.pm diff --git a/SL/DB/RequirementSpec.pm b/SL/DB/RequirementSpec.pm index 99bf11631..3a3f4ccf4 100644 --- a/SL/DB/RequirementSpec.pm +++ b/SL/DB/RequirementSpec.pm @@ -2,7 +2,10 @@ package SL::DB::RequirementSpec; use strict; +use Carp; + use SL::DB::MetaSetup::RequirementSpec; +use SL::DB::Manager::RequirementSpec; use SL::Locale::String; __PACKAGE__->meta->add_relationship( @@ -18,11 +21,10 @@ __PACKAGE__->meta->add_relationship( }, ); -# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all. -__PACKAGE__->meta->make_manager_class; - __PACKAGE__->meta->initialize; +__PACKAGE__->before_save('_before_save_initialize_not_null_columns'); + sub validate { my ($self) = @_; @@ -32,4 +34,33 @@ sub validate { return @errors; } +sub _before_save_initialize_not_null_columns { + my ($self) = @_; + + $self->previous_section_number(0) if !defined $self->previous_section_number; + $self->previous_fb_number(0) if !defined $self->previous_fb_number; + + return 1; +} + +sub text_blocks_for_position { + my ($self, $output_position) = @_; + + return [ sort { $a->position <=> $b->position } grep { $_->output_position == $output_position } @{ $self->text_blocks } ]; +} + +sub sections { + my ($self, @rest) = @_; + + croak "This sub is not a writer" if @rest; + + return [ sort { $a->position <=> $b->position } grep { !$_->parent_id } @{ $self->items } ]; +} + +sub displayable_name { + my ($self) = @_; + + return sprintf('%s: "%s"', $self->type->description, $self->title); +} + 1;