+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,
+ );
+}
+