- # commit
- my $rc = $dbh->commit;
-
- $main::lxdebug->leave_sub();
-
- return $rc;
-}
-
-sub update_assembly {
- $main::lxdebug->enter_sub();
-
- my ($dbh, $form, $id, $qty, $sellprice, $weight) = @_;
-
- my $query = qq|SELECT id, qty FROM assembly WHERE parts_id = ?|;
- my $sth = prepare_execute_query($form, $dbh, $query, conv_i($id));
-
- while (my ($pid, $aqty) = $sth->fetchrow_array) {
- &update_assembly($dbh, $form, $pid, $aqty * $qty, $sellprice, $weight);
- }
- $sth->finish;
-
- $query =
- qq|UPDATE parts SET sellprice = sellprice + ?, weight = weight + ?
- WHERE id = ?|;
- my @values = ($qty * ($form->{sellprice} - $sellprice),
- $qty * ($form->{weight} - $weight), conv_i($id));
- do_query($form, $dbh, $query, @values);
+ # Delete saved custom variable values for configs that have been
+ # marked invalid for this part.
+ $query = <<SQL;
+ DELETE FROM custom_variables
+ WHERE (config_id IN (
+ SELECT val.config_id
+ FROM custom_variables_validity val
+ LEFT JOIN custom_variable_configs val_cfg ON (val.config_id = val_cfg.id)
+ WHERE (val_cfg.module = 'IC')
+ AND (val.trans_id = ?)))
+ AND (trans_id = ?)
+SQL
+ do_query($form, $dbh, $query, ($form->{id}) x 2);