diff options
author | Ivan Kohler <ivan@freeside.biz> | 2013-03-05 04:09:53 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2013-03-05 04:09:53 -0800 |
commit | f0264bb8437b5ea5775c99a85efefc3e535b1822 (patch) | |
tree | 64b622b4e07168090124b2a34bfa37208797bf19 /bin | |
parent | 0e3d3f5ac1f1169a92ac41c063df85f0cabf441d (diff) |
add -a and -k options to cust_main-bulk_change script, RT#21728
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/cust_main-bulk_change | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/bin/cust_main-bulk_change b/bin/cust_main-bulk_change index 02931abed..32a6d7bd6 100755 --- a/bin/cust_main-bulk_change +++ b/bin/cust_main-bulk_change @@ -1,14 +1,15 @@ #!/usr/bin/perl use strict; -use vars qw( $opt_p $opt_t ); +use vars qw( $opt_a $opt_p $opt_t $opt_k ); use Getopt::Std; use FS::UID qw(adminsuidsetup); -use FS::Record qw(qsearchs); +use FS::Record qw(qsearch qsearchs); use FS::cust_main; use FS::cust_tag; +use FS::cust_pkg; -getopts('p:t:'); +getopts('a:p:t:k:'); my $user = shift or &usage; adminsuidsetup $user; @@ -39,17 +40,34 @@ while (<STDIN>) { die "$error\n" if $error; } - if ( $opt_p ) { - $cust_main->payby($opt_p); + if ( $opt_p || $opt_a ) { + $cust_main->agentnum($opt_a) if $opt_a; + $cust_main->payby($opt_p) if $opt_p; my $error = $cust_main->replace; die "$error\n" if $error; } + if ( $opt_k ) { + foreach my $k (split(/\s*,\s*/, $opt_k)) { + my($old, $new) = split(/\s*:\s*/, $k); + foreach my $cust_pkg ( qsearch('cust_pkg', { + 'custnum' => $cust_main->custnum, + 'pkgpart' => $old, + }) + ) + { + $cust_pkg->pkgpart($new); + my $error = $cust_pkg->replace; + die "$error\n" if $error; + } + } + } + } sub usage { - die "usage: cust_main-bulk_change [ -p NEW_PAYBY ] [ -t tagnum ] employee_username <custnums.txt\n"; + die "usage: cust_main-bulk_change [ -a agentnum ] [ -p NEW_PAYBY ] [ -t tagnum ] [ -k old_pkgpart:new_pkgpart,... ] employee_username <custnums.txt\n"; } =head1 NAME @@ -58,16 +76,20 @@ cust_main-bulk_change =head1 SYNOPSIS - cust_main-bulk_change [ -p NEW_PAYBY ] [ -t tagnum ] username <custnums.txt + cust_main-bulk_change [ -a agentnum ] [ -p NEW_PAYBY ] [ -t tagnum ] [ -k old_pkgpart:new_pkgpart,... ] username <custnums.txt =head1 DESCRIPTION Command-line tool to make bulk changes to a group of customers. +-a: new agentnum + -p: new payby, for example, I<CARD> or I<DCRD> -t: tagnum to add if not present +-k: old_pkgpart:new_pkgpart, for example, I<5:4>. Multiple entries can be comma-separated. + user: Employee username =head1 BUGS |