Term::ReadLine::Perl::Bind in Console nicht nutzen
[kivitendo-erp.git] / SL / DB / RequirementSpec.pm
index 52ae4ec..e5dae7e 100644 (file)
@@ -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__