+sub _before_save_create_fb_number {
+ my ($self) = @_;
+
+ return 1 if $self->fb_number;
+ return 0 if !$self->requirement_spec_id;
+
+ my $method = 'previous_' . ($self->parent_id ? 'fb' : 'section') . '_number';
+ my $next_number = $self->requirement_spec->$method + 1;
+
+ $self->requirement_spec->update_attributes($method => $next_number) || return 0;
+
+ my $method = 'requirement_spec_' . ($self->parent_id ? 'function_block' : 'section') . '_number_format';
+ my $format = SL::DB::Default->get->$method;
+
+ $self->fb_number(SL::PrefixedNumber->new(number => $format || 0)->set_to($next_number));
+
+ return 1;
+}
+