diff options
author | cvs2git <cvs2git> | 2010-12-27 00:04:45 +0000 |
---|---|---|
committer | cvs2git <cvs2git> | 2010-12-27 00:04:45 +0000 |
commit | c82d349f864e6bd9f96fd1156903bc1f7193a203 (patch) | |
tree | e117a87533656110b6acd56fc0ca64289892a9f5 /bin/make-pkg-fruit | |
parent | 74e058c8a010ef6feb539248a550d0bb169c1e94 (diff) |
This commit was manufactured by cvs2svn to create tag 'TORRUS_1_0_9'.TORRUS_1_0_9
Diffstat (limited to 'bin/make-pkg-fruit')
-rwxr-xr-x | bin/make-pkg-fruit | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/bin/make-pkg-fruit b/bin/make-pkg-fruit deleted file mode 100755 index 61d707f4a..000000000 --- a/bin/make-pkg-fruit +++ /dev/null @@ -1,172 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use FS::UID qw( adminsuidsetup ); -use FS::Record qw( qsearch qsearchs ); -use FS::part_export; -use FS::export_svc; -use FS::pkg_svc; -use FS::part_svc; -use FS::part_pkg; -use FS::cust_svc; -use FS::svc_Common; -use FS::svc_broadband; -use FS::part_svc_router; - -my $exporttype = 'prizm'; -my $pkg_property = 'pkg'; -my $svc_property = 'performance_profile'; - -my $user = shift or die &usage; - -$FS::svc_Common::noexport_hack = 1; -$FS::cust_svc::ignore_quantity = 1; -$FS::UID::AutoCommit = 0; - -my $DEBUG = 0; - -my $dbh = adminsuidsetup($user); - -my @exportnum = map { $_->exportnum } - qsearch( 'part_export', { 'exporttype' => $exporttype } ); - -die "no $exporttype exports found\n" unless scalar(@exportnum); - -my %pkg_svc_map = (); - -my @old_svcpart = (); -push @old_svcpart, map { $_->svcpart } - qsearch ( 'export_svc', { 'exportnum' => $_ } ) - foreach @exportnum; - -die "no svcparts found\n" unless scalar(@old_svcpart); - -foreach (@old_svcpart) { - foreach my $pkg_svc ( qsearch( 'pkg_svc', - { 'svcpart' => $_, - 'quantity' => { 'op' => '>', - 'value' => '0', - }, - } - ) - ) - { - warn "updating package ". $pkg_svc->pkgpart. "\n" if $DEBUG; - my $pkg_from = $pkg_svc->part_pkg->$pkg_property; - unless ( $pkg_svc_map{ $pkg_from }{ $pkg_svc->svcpart } ) { - my $old_part_svc = $pkg_svc->part_svc; - my $part_svc = new FS::part_svc( { $old_part_svc->hash } ); - $part_svc->svcpart(''); - - my $svcdb = $part_svc->svcdb; - foreach ( $old_part_svc->all_part_svc_column ) { - my $formatter = FS::part_svc->svc_table_fields($svcdb)->{$_}->{format} - || sub { shift }; - - $part_svc->setfield( $svcdb.'__'.$_->columnname.'_flag', $_->columnflag); - $part_svc->setfield( $svcdb.'__'.$_->columnname, - &$formatter($_->columnvalue) - ); - } - - my $formatter = - FS::part_svc->svc_table_fields($svcdb)->{$svc_property}->{format} - || sub { shift }; - $part_svc->setfield( $svcdb.'__'.$svc_property.'_flag', 'F'); - $part_svc->setfield( $svcdb.'__'.$svc_property, - &$formatter($pkg_svc->part_pkg->$pkg_property) - ); - my $error = $part_svc->insert( [], - { map { $_->exportnum => 1 } - $old_part_svc->part_export - }, - ); - die "error inserting service: $error\n" if $error; - - # this part is specific to svc_broadband - foreach (qsearch( 'part_svc_router', { 'svcpart' => $pkg_svc->svcpart } )) - { - my $part_svc_router = new FS::part_svc_router( { $_->hash } ); - $part_svc_router->svcrouternum( '' ); - $part_svc_router->svcpart( $part_svc->svcpart ); - my $error = $part_svc_router->insert; - die "error associating service with router: $error\n" if $error; - } - - $pkg_svc_map{ $pkg_from }{ $pkg_svc->svcpart } = $part_svc->svcpart; - - } - - my $new_pkg_svc = new FS::pkg_svc( { $pkg_svc->hash } ); - $new_pkg_svc->svcpart( $pkg_svc_map{ $pkg_from }{ $pkg_svc->svcpart } ); - my $error = $pkg_svc->delete; - die "error removing old service from package: $error\n" if $error; - $error = $new_pkg_svc->insert; - die "error adding new service to package: $error\n" if $error; - - } -} -warn "done with packages\n" if $DEBUG; - -foreach my $svcpart ( @old_svcpart ) { - foreach my $cust_svc ( qsearch( 'cust_svc', { 'svcpart' => $svcpart } ) ) { - my $svc_x = $cust_svc->svc_x; - my $cust_pkg = $cust_svc->cust_pkg; - die "can't handle unattached service ". $cust_svc->svcnum unless $cust_pkg; - my $pkg_from = $cust_pkg->part_pkg->$pkg_property; - $svc_x->setfield( $svc_property, $pkg_from ); - $svc_x->setfield( 'svcpart', $pkg_svc_map{ $pkg_from }{ $svcpart } ); - my $error = $svc_x->replace; - die "error replacing service ". $svc_x->svcnum. ": $error\n" if $error; - - $cust_svc->svcpart( $pkg_svc_map{ $pkg_from }{ $svcpart } ); - $error = $cust_svc->replace; - die "error replacing customer service ". $cust_svc->svcnum. ": $error\n" - if $error; - } - - my $part_svc = qsearchs( 'part_svc', { 'svcpart' => $svcpart } ); - die "can't find old part_svc!" unless $part_svc; - - my $new_part_svc = new FS::part_svc( { $part_svc->hash } ); - $new_part_svc->disabled('Y'); - my $svcdb = $part_svc->svcdb; - foreach ( $part_svc->all_part_svc_column ) { - my $formatter = FS::part_svc->svc_table_fields($svcdb)->{$_}->{format} - || sub { shift }; - - $part_svc->setfield( $svcdb.'__'.$_->columnname.'_flag', $_->columnflag); - $part_svc->setfield( $svcdb.'__'.$_->columnname, - &$formatter($_->columnvalue) - ); - } - my $error = $new_part_svc->replace($part_svc, '1.3-COMPAT'); - die "error disabling service: $error\n" if $error; -} - -$dbh->commit or die $dbh->errstr; -$dbh->disconnect or die $dbh->errstr; - - -sub usage { - die "Usage:\n\n make-pkg-fruit user\n"; -} - -=head1 NAME - -make-pkg-fruit - Tool to migrate package properties to services - -=head1 SYNOPSIS - - make-pkg-fruit - -=head1 DESCRIPTION - -Multiplies out services with package properties and migrates package -definitions and customer services to the new services. Read the source. - -=head1 SEE ALSO - -=cut - -1; |