From 8b6cc52d49073946eebe28cc9fdcc16789952650 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Sun, 3 Feb 2013 14:12:00 -0800 Subject: [PATCH] add command-line tool to list phone numbers, RT#21054 --- FS/FS/svc_Common.pm | 2 +- FS/MANIFEST | 1 + FS/bin/freeside-phonenum_list | 68 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100755 FS/bin/freeside-phonenum_list 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, L + +=cut + +1; + -- 2.11.0