#!/usr/bin/perl use strict; use FS::UID qw(adminsuidsetup); use FS::Record qw(qsearch fields); use FS::part_svc; my $user = shift or die &usage; my $dbh = adminsuidsetup $user; my $oldAutoCommit = $FS::UID::AutoCommit; local $FS::UID::AutoCommit = 0; foreach my $part_svc ( qsearch('part_svc', {} ) ) { foreach my $field ( grep { defined($part_svc->getfield($part_svc->svcdb.'__'.$_.'_flag') ) } fields($part_svc->svcdb) ) { my $flag = $part_svc->getfield($part_svc->svcdb.'__'.$field.'_flag'); if ( uc($flag) =~ /^([DF])$/ ) { my $part_svc_column = new FS::part_svc_column { 'svcpart' => $part_svc->svcpart, 'columnname' => $field, 'columnflag' => $1, 'columnvalue' => $part_svc->getfield($part_svc->svcdb.'__'.$field), }; my $error = $part_svc_column->insert; if ( $error ) { $dbh->rollback if $oldAutoCommit; die $error; } } } } $dbh->commit or die $dbh->errstr; sub usage { die "Usage:\n fs-migrate-part_svc user\n"; }