stray closing /TABLE in the no-ticket case
[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(qsearch fields);
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.'__'.$_.'_flag') ) }
17       fields($part_svc->svcdb)
18   ) {
19     my $flag = $part_svc->getfield($part_svc->svcdb.'__'.$field.'_flag');
20     if ( uc($flag) =~ /^([DF])$/ ) {
21       my $part_svc_column = new FS::part_svc_column {
22         'svcpart' => $part_svc->svcpart,
23         'columnname' => $field,
24         'columnflag' => $1,
25         'columnvalue' => $part_svc->getfield($part_svc->svcdb.'__'.$field),
26       };
27       my $error = $part_svc_column->insert;
28       if ( $error ) {
29         $dbh->rollback if $oldAutoCommit;
30         die $error;
31       }
32     }
33   }
34 }
35
36 $dbh->commit or die $dbh->errstr;
37
38 sub usage {
39   die "Usage:\n  fs-migrate-part_svc user\n"; 
40 }
41