+sub _determine_cvar_validity {
+ my ($self, $vc) = @_;
+
+ my @part_ids = uniq map { $_->parts_id } @{ $self->items };
+ my @parts = map { SL::DB::Part->new(id => $_)->load } @part_ids;
+
+ my %item_cvar_validity;
+ foreach my $part (@parts) {
+ $item_cvar_validity{ $part->id } = { map { ($_->config_id => $_->is_valid) } @{ $part->cvars_by_config } };
+ }
+
+ my %vc_cvar_validity = map { ($_->config_id => $_->is_valid) } @{ $self->$vc->cvars_by_config };
+
+ return (
+ items => \%item_cvar_validity,
+ vc => \%vc_cvar_validity,
+ );
+}
+
+sub _handle_user_data {
+ my ($self, $form) = @_;
+
+ foreach my $type (qw(employee salesman)) {
+ next if !_has($self, "${type}_id");
+
+ my $user = User->new(login => $self->$type->login);
+ $form->{"${type}_$_"} = $user->{$_} for qw(tel email fax signature);
+
+ if ($self->$type->deleted) {
+ for my $key (grep { $_ =~ m{^deleted_} } SL::DB::Employee->meta->columns) {
+ $key =~ s{^deleted_}{};
+ $form->{"${type}_${key}"} = $form->{"${type}_deleted_${key}"}
+ }
+ }
+
+ }
+}
+