add command-line tool to list phone numbers, RT#21054
authorIvan Kohler <ivan@freeside.biz>
Sun, 3 Feb 2013 22:12:00 +0000 (14:12 -0800)
committerIvan Kohler <ivan@freeside.biz>
Sun, 3 Feb 2013 22:12:00 +0000 (14:12 -0800)
FS/FS/svc_Common.pm
FS/MANIFEST
FS/bin/freeside-phonenum_list [new file with mode: 0755]

index af655e7..2171022 100644 (file)
@@ -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 = '';
index 9504c9c..3ef42b1 100644 (file)
@@ -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 (executable)
index 0000000..029d0ed
--- /dev/null
@@ -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;
+