diff options
Diffstat (limited to 'bin/fs-migrate-part_svc')
| -rwxr-xr-x | bin/fs-migrate-part_svc | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/bin/fs-migrate-part_svc b/bin/fs-migrate-part_svc new file mode 100755 index 000000000..b0f3ac57e --- /dev/null +++ b/bin/fs-migrate-part_svc @@ -0,0 +1,41 @@ +#!/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";  +} + | 
