use strict;
use FS::UID qw(adminsuidsetup);
-use FS::Record qw(qsearchs);
-use FS::part_svc
+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
+local $FS::UID::AutoCommit = 0;
foreach my $part_svc ( qsearch('part_svc', {} ) ) {
foreach my $field (
- grep { defined($part_svc->getfield($part_svc->svcdb.'__'.$field.'_flag') ) }
- fields($self->svcdb)
+ grep { defined($part_svc->getfield($part_svc->svcdb.'__'.$_.'_flag') ) }
+ fields($part_svc->svcdb)
) {
- my $flag = $self->getfield($part_svc->svcdb.'__'.$field.'_flag');
+ my $flag = $part_svc->getfield($part_svc->svcdb.'__'.$field.'_flag');
if ( uc($flag) =~ /^([DF])$/ ) {
- $part_svc_column->setfield('columnflag', $1);
- $part_svc_column->setfield('columnvalue',
- $self->getfield($part_svc->svcdb.'__'.$field)
- );
- $error = $part_svc_column->insert;
- } else {
- $error = $part_svc_column->delete;
+ 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;
+ }
}
- 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";
}