finally fix part_svc!!!
[freeside.git] / bin / fs-migrate-part_svc
1 #!/usr/bin/perl
2
3 use strict;
4 use FS::UID qw(adminsuidsetup);
5 use FS::Record qw(qsearchs);
6 use FS::part_svc
7
8 my $user = shift or die &usage;
9 my $dbh = adminsuidsetup $user;
10
11 my $oldAutoCommit = $FS::UID::AutoCommit;
12 local $FS::UID::AutoCommit = 0
13
14 foreach my $part_svc ( qsearch('part_svc', {} ) ) {
15   foreach my $field (
16     grep { defined($part_svc->getfield($part_svc->svcdb.'__'.$field.'_flag') ) }
17       fields($self->svcdb)
18   ) {
19     my $flag = $self->getfield($part_svc->svcdb.'__'.$field.'_flag');
20     if ( uc($flag) =~ /^([DF])$/ ) {
21       $part_svc_column->setfield('columnflag', $1);
22       $part_svc_column->setfield('columnvalue',
23         $self->getfield($part_svc->svcdb.'__'.$field)
24       );
25       $error = $part_svc_column->insert;
26     } else {
27       $error = $part_svc_column->delete;
28     }
29     if ( $error ) {
30       $dbh->rollback if $oldAutoCommit;
31       die $error;
32     }
33
34   }
35 }
36
37 sub usage {
38   die "Usage:\n  fs-migrate-part_svc user\n"; 
39 }
40