029d0ed14f70ff50f1da5e716010086db1271e97
[freeside.git] / FS / bin / freeside-phonenum_list
1 #!/usr/bin/perl
2
3 use strict;
4 use vars qw( $opt_c $opt_p $opt_b $opt_d $opt_s $opt_t );
5 use Getopt::Std;
6 use FS::UID qw(adminsuidsetup);
7 use FS::Record qw(qsearch);
8 use FS::svc_phone;
9
10 getopts('cp:b:d:s:t:');
11
12 my $user = shift or &usage;
13 adminsuidsetup $user;
14
15 my %search = ();
16
17 $search{payby}        = [ split(/\s*,\s*/, $opt_p) ] if $opt_p;
18 $search{balance}      = $opt_b                       if $opt_b;
19 $search{balance_days} = $opt_d                       if $opt_d;
20 $search{svcpart}      = [ split(/\s*,\s*/, $opt_s) ] if $opt_s;
21 $search{cust_status}  = lc($opt_t)                   if $opt_t;
22
23 my @svc_phone = qsearch( FS::svc_phone->search(\%search) );
24
25 foreach my $svc_phone (@svc_phone) {
26   print $svc_phone->countrycode if $opt_c;
27   print $svc_phone->phonenum. "\n";  
28 }
29
30 sub usage {
31   die "usage: freeside-phonenum_list [ -c ] [ -p payby,payby... ] [ -b balance [ -d balance_days ] ] [ -s svcpart,svcpart... ] username \n";
32 }
33
34 =head1 NAME
35
36 freeside-phonenum_list
37
38 =head1 SYNOPSIS
39   freeside-phonenum_list [ -c ] [ -p payby,payby... ] [ -b balance [ -d balance_days ] ] [ -s svcpart,svcpart... ] username
40
41 =head1 DESCRIPTION
42
43 Command-line tool to list phone numbers.
44
45 -c: Include country code in results
46
47 -p: Customer payby (CARD, BILL, etc.).  Separate multiple values with commas.
48
49 -b: Customer balance over (or equal to) this amount
50
51 -d: Customer balance age over this many days 
52
53 -s: Service definition (svcpart).  Separate multiple values with commas.
54
55 -t: Customer status: prospect, active, ordered, inactive, suspended or cancelled
56
57 username: Employee username
58
59 =head1 BUGS
60
61 =head1 SEE ALSO
62
63 L<FS::svc_phone>, L<FS::cust_main>
64
65 =cut
66
67 1;
68