summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-02-03 14:12:00 -0800
committerIvan Kohler <ivan@freeside.biz>2013-02-03 14:12:00 -0800
commit8b6cc52d49073946eebe28cc9fdcc16789952650 (patch)
tree65780417daa1cc2e9026c9f6861aecca75fb1aff /FS
parent6e2e2e192be2ac9267db44c736de34082262cc65 (diff)
add command-line tool to list phone numbers, RT#21054
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/svc_Common.pm2
-rw-r--r--FS/MANIFEST1
-rwxr-xr-xFS/bin/freeside-phonenum_list68
3 files changed, 70 insertions, 1 deletions
diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm
index af655e7b6..21710226a 100644
--- a/FS/FS/svc_Common.pm
+++ b/FS/FS/svc_Common.pm
@@ -1360,7 +1360,7 @@ sub search {
}
#customer balance
- if ( $params->{'balance'} =~ /^\s*(\d*(\.\d{1,2})?)\s*$/ && length($1) ) {
+ if ( $params->{'balance'} =~ /^\s*(\-?\d*(\.\d{1,2})?)\s*$/ && length($1) ) {
my $balance = $1;
my $age = '';
diff --git a/FS/MANIFEST b/FS/MANIFEST
index 9504c9c87..3ef42b1f2 100644
--- a/FS/MANIFEST
+++ b/FS/MANIFEST
@@ -13,6 +13,7 @@ bin/freeside-deloutsource
bin/freeside-deloutsourceuser
bin/freeside-deluser
bin/freeside-email
+bin/freeside-phonenum_list
bin/freeside-queued
bin/freeside-radgroup
bin/freeside-reexport
diff --git a/FS/bin/freeside-phonenum_list b/FS/bin/freeside-phonenum_list
new file mode 100755
index 000000000..029d0ed14
--- /dev/null
+++ b/FS/bin/freeside-phonenum_list
@@ -0,0 +1,68 @@
+#!/usr/bin/perl
+
+use strict;
+use vars qw( $opt_c $opt_p $opt_b $opt_d $opt_s $opt_t );
+use Getopt::Std;
+use FS::UID qw(adminsuidsetup);
+use FS::Record qw(qsearch);
+use FS::svc_phone;
+
+getopts('cp:b:d:s:t:');
+
+my $user = shift or &usage;
+adminsuidsetup $user;
+
+my %search = ();
+
+$search{payby} = [ split(/\s*,\s*/, $opt_p) ] if $opt_p;
+$search{balance} = $opt_b if $opt_b;
+$search{balance_days} = $opt_d if $opt_d;
+$search{svcpart} = [ split(/\s*,\s*/, $opt_s) ] if $opt_s;
+$search{cust_status} = lc($opt_t) if $opt_t;
+
+my @svc_phone = qsearch( FS::svc_phone->search(\%search) );
+
+foreach my $svc_phone (@svc_phone) {
+ print $svc_phone->countrycode if $opt_c;
+ print $svc_phone->phonenum. "\n";
+}
+
+sub usage {
+ die "usage: freeside-phonenum_list [ -c ] [ -p payby,payby... ] [ -b balance [ -d balance_days ] ] [ -s svcpart,svcpart... ] username \n";
+}
+
+=head1 NAME
+
+freeside-phonenum_list
+
+=head1 SYNOPSIS
+ freeside-phonenum_list [ -c ] [ -p payby,payby... ] [ -b balance [ -d balance_days ] ] [ -s svcpart,svcpart... ] username
+
+=head1 DESCRIPTION
+
+Command-line tool to list phone numbers.
+
+-c: Include country code in results
+
+-p: Customer payby (CARD, BILL, etc.). Separate multiple values with commas.
+
+-b: Customer balance over (or equal to) this amount
+
+-d: Customer balance age over this many days
+
+-s: Service definition (svcpart). Separate multiple values with commas.
+
+-t: Customer status: prospect, active, ordered, inactive, suspended or cancelled
+
+username: Employee username
+
+=head1 BUGS
+
+=head1 SEE ALSO
+
+L<FS::svc_phone>, L<FS::cust_main>
+
+=cut
+
+1;
+