X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/13fbd33663c229ec309a858ac1d393fdd508ddbe..ae906113e922e784aadaadf1681eede43d7967c2:/SL/DB/RequirementSpec.pm diff --git a/SL/DB/RequirementSpec.pm b/SL/DB/RequirementSpec.pm index 52ae4eca7..e5dae7ebd 100644 --- a/SL/DB/RequirementSpec.pm +++ b/SL/DB/RequirementSpec.pm @@ -8,6 +8,7 @@ use Rose::DB::Object::Helpers; use SL::DB::MetaSetup::RequirementSpec; use SL::DB::Manager::RequirementSpec; +use SL::DB::Helper::LinkedRecords; use SL::Locale::String; use SL::Util qw(_hashify); @@ -60,8 +61,9 @@ sub validate { 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; + for (qw(previous_section_number previous_fb_number previous_picture_number)) { + $self->$_(0) if !defined $self->$_; + } return 1; } @@ -149,17 +151,25 @@ sub _copy_from { # Copy attributes. if (!$params->{paste_template}) { - $self->assign_attributes(map({ ($_ => $source->$_) } qw(type_id status_id customer_id project_id title hourly_rate time_estimation previous_section_number previous_fb_number is_template)), + $self->assign_attributes(map({ ($_ => $source->$_) } qw(type_id status_id customer_id project_id title hourly_rate time_estimation previous_section_number previous_fb_number previous_picture_number is_template)), %attributes); } my %paste_template_result; - # Clone text blocks. + # Clone text blocks and pictures. + my $clone_picture = sub { + my ($picture) = @_; + my $cloned = Rose::DB::Object::Helpers::clone_and_reset($picture); + $cloned->position(undef); + return $cloned; + }; + my $clone_text_block = sub { my ($text_block) = @_; my $cloned = Rose::DB::Object::Helpers::clone_and_reset($text_block); $cloned->position(undef); + $cloned->pictures([ map { $clone_picture->($_) } @{ $text_block->pictures_sorted } ]); return $cloned; }; @@ -292,6 +302,12 @@ sub invalidate_version { ); } +sub compare_to { + my ($self, $other) = @_; + + return $self->id <=> $other->id; +} + 1; __END__