From: levinse Date: Thu, 7 Jul 2011 01:43:48 +0000 (+0000) Subject: various DID inventory changes, RT12754 X-Git-Tag: freeside_2_3_0~39 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=c9019d74d5e5d27bd9dd55d9a3e104b85b99cb65 various DID inventory changes, RT12754 --- diff --git a/FS/FS/phone_avail.pm b/FS/FS/phone_avail.pm index cd4b4b6ba..8403f504b 100644 --- a/FS/FS/phone_avail.pm +++ b/FS/FS/phone_avail.pm @@ -5,6 +5,8 @@ use vars qw( @ISA $DEBUG $me ); use FS::Record qw( qsearch qsearchs dbh ); use FS::cust_svc; use FS::Misc::DateTime qw( parse_datetime ); +use FS::msa; +use Data::Dumper; @ISA = qw(FS::cust_main_Mixin FS::Record); @@ -201,11 +203,23 @@ Translate free-form MSA name to a msa.msanum sub msa2msanum { my $self = shift; my $msa = shift; - my $res = qsearchs('msa', { 'description' => { 'op' => 'ILIKE', - 'value' => $msa, } + my @msas = qsearch('msa', { 'description' => { 'op' => 'ILIKE', + 'value' => "%$msa%", } }); - return 0 unless $res; - $res->msanum; + return 0 unless scalar(@msas); + my @msa = grep { $self->msatest($msa,$_->description) } @msas; + return 0 unless scalar(@msa) == 1; + $msa[0]->msanum; +} + +sub msatest { + my $self = shift; + my ($their,$our) = (shift,shift); + my $a = $our; + $a =~ s/,.*?$//; + return 1 if $a eq $their; + return 1 if ($our =~ /^([\w\s]+)-/ && $1 eq $their); + 0; } sub process_batch_import { @@ -223,6 +237,7 @@ sub process_batch_import { my $msasub = sub { my( $phone_avail, $value ) = @_; + return '' if !$value; my $msanum = $phone_avail->msa2msanum($value); die "cannot translate MSA ($value) to msanum" unless $msanum; $phone_avail->msanum($msanum); diff --git a/httemplate/edit/process/did_order.html b/httemplate/edit/process/did_order.html index 6a2884413..23fe62bfd 100644 --- a/httemplate/edit/process/did_order.html +++ b/httemplate/edit/process/did_order.html @@ -28,7 +28,7 @@ foreach my $param ( @params ) { if ( $param =~ /^(orderitemnum[0-9]+)_rc_new$/ ) { my $prefix = $1; my $value = $cgi->param($param); - if( $value =~ /^[A-Za-z0-9\- ]+$/ ) { + if( $value =~ /^[A-Za-z0-9:\- ]+$/ ) { my $rc = new FS::rate_center({ description => $value }); my $error = $rc->insert; die "error inserting new rate center: $error" if $error;