X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=bin%2Ffs-migrate-part_svc;h=b0f3ac57eabd8f13a6fd7076bdf1f8413a41b729;hp=96332f72a75885d32d6ebcb48f2e9c516dd48742;hb=aed8ec35ccb9cdeb7ea0cb6ff2946f9d83d582f6;hpb=57d69d5c1f98f778a0df82795ce21ee7bd21042a diff --git a/bin/fs-migrate-part_svc b/bin/fs-migrate-part_svc index 96332f72a..b0f3ac57e 100755 --- a/bin/fs-migrate-part_svc +++ b/bin/fs-migrate-part_svc @@ -2,38 +2,39 @@ 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"; }