X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=bin%2Fsvc_broadband_update_speeds;h=6bbd93e637d724fbfdc956e6cc4bfbfb8c02c6c8;hp=373ee2f4edf66774789da4b74fae15dec7b7b1d0;hb=68bbe026eecdd3deb072496993fd26e208f9b571;hpb=af2e0f2bcb710bbd288523071d2dd630e6cf401f diff --git a/bin/svc_broadband_update_speeds b/bin/svc_broadband_update_speeds index 373ee2f4e..6bbd93e63 100755 --- a/bin/svc_broadband_update_speeds +++ b/bin/svc_broadband_update_speeds @@ -11,17 +11,15 @@ use Data::Dumper; # parse command line ### -use vars qw( $opt_h $opt_v $opt_e $opt_s $opt_c $opt_r $opt_p $opt_d ); -getopts('hves:c:r:pd:'); - -warn ("running\n"); +use vars qw( $opt_h $opt_v $opt_n $opt_e $opt_s $opt_c $opt_r $opt_p $opt_d ); +getopts('hvnes:c:r:pd:'); my $user = shift or die &usage; adminsuidsetup $user; sub usage { " Usage: - svc_broadband_update_speeds [ -h help] [ -v verbose] [ -e export service ] [ -s service_part_num (required) ] [ -c sibling service_part_num ] [ -r (speed rate in KB 'up,down') ] [ -p (get speed from package fcc rate) ] [ -d directory for exception file (required) ] user (required)\n + svc_broadband_update_speeds [ -h help] [ -v verbose] [ -n only update services with a null up/down speed] [ -e export service ] [ -s service_part_num (required) ] [ -c sibling service_part_num ] [ -r (speed rate in KB 'up,down') ] [ -p (get speed from package fcc rate) ] [ -d directory for exception file (required) ] user (required)\n A directory for the exception file, freeside user name and a service to update is required.\n Must set one or more of options p, c, or r. \n Also must run this report as user freeside.\n @@ -34,16 +32,19 @@ unless ($opt_d && $opt_s) { die &usage(); } if ($opt_h) { die &usage(); } unless ($opt_p || $opt_c || $opt_r) { die &usage(); } -my $extra_sql; -$extra_sql = " WHERE cust_svc.svcpart = $opt_s" if $opt_s; +my $exception_file = "$opt_d/svcbroadband_update_exceptions_".time().".txt"; ### get list of all provisioned services +my $only_null_speed_services = " AND (svc_broadband.speed_up IS NULL OR svc_broadband.speed_down IS NULL)" if $opt_n; +my $extra_sql = " WHERE cust_svc.svcpart = $opt_s $only_null_speed_services"; my @services = qsearch({ 'select' => 'svc_broadband.*, cust_svc.svcpart, cust_svc.pkgnum, cust_pkg.pkgpart', 'table' => 'svc_broadband', 'addl_from' => 'LEFT JOIN cust_svc USING ( svcnum ) LEFT JOIN cust_pkg USING (pkgnum)', 'extra_sql' => $extra_sql, }); + +### get list of all unprovisioned services my $ups_extra_sql = "where cust_pkg.cancel is null and pkg_svc.quantity > 0 and pkg_svc.quantity > (select count(1) from cust_svc where cust_svc.pkgnum = cust_pkg.pkgnum and cust_svc.svcpart = pkg_svc.svcpart) and pkg_svc.svcpart = $opt_s"; my @unprovisioned_services = qsearchs({ 'table' => 'cust_pkg', @@ -55,11 +56,12 @@ my $speed; $speed = 'package' if $opt_p; foreach my $svc (@services) { - _update_service($svc); + _update_service($svc, $exception_file); } sub _update_service { my $service = shift; + my $exception_file = shift; my $speed_up; my $speed_down; @@ -107,13 +109,30 @@ sub _update_service { ###todo: if no error provision service if not provisioned ie new svc_broadband. } else { - open(FILE, ">$opt_d/svcbroadband_update_exceptions.txt") + open(FILE, ">>$exception_file") or die "can't open $opt_d: $!"; - print FILE $service->description."(".$service->svcnum.") Has no up or download speed and could not set one.\n"; + print FILE "Service ".$service->description."(".$service->svcnum.") could not set a up or download speed.\n"; close FILE or die "can't close $opt_d: $!"; - warn($service->description."(".$service->svcnum.") Has no up or download speed\n") if $opt_v; + warn($service->description."(".$service->svcnum.") could not set a up or download speed, added to exception file.\n") if $opt_v; } return; } exit; + +=head2 svc_broadband_update_speeds + +This script allows for the mas update of up and down speeds for a svc_broadband service. + +the script will obtain the new speed from option p (package fcc rates) first if set, +if no rates found then checks for option c (rate of sibling service) if set, +if still no rates found checks for rate in option r if set. +If no rates found service will be placed in exception file. + +Script must be run as user freeside. +Options -s, -d and freeside user are required. + +example: +sudo -u freeside ./svc_broadband_update_speeds -v -s 4 -c 2 -r 148000,248000 -p -d /home/freeside/ freesideuser + +=cut \ No newline at end of file