RT# 83450 - fixed rateplan export
[freeside.git] / FS / FS / part_export / vitelity.pm
index 4dd9caa..d715535 100644 (file)
@@ -286,8 +286,8 @@ sub _export_insert {
 
     my $cust_main = $svc_phone->cust_svc->cust_pkg->cust_main;
 
-    return 'Customer company is required'
-      unless $cust_main->company;
+    #return 'Customer company is required'
+    #  unless $cust_main->company;
 
     return 'Customer day phone (for contact, not porting) is required'
       unless $cust_main->daytime;
@@ -306,7 +306,7 @@ sub _export_insert {
       'partial'       => 'no',
       'wireless'      => 'no',
       'carrier'       => $svc_phone->lnp_other_provider,
-      'company'       => $cust_main->company,
+      'company'       => $cust_main->company || $cust_main->contact,
       'accnumber'     => $svc_phone->lnp_other_provider_account,
       'name'          => $svc_phone->phone_name_or_cust,
       'streetnumber'  => $sa->{number},
@@ -374,7 +374,7 @@ sub _export_insert {
   my $cnam_result = $self->vitelity_command('cnamenable',
                                               'did'=>$svc_phone->phonenum,
                                            );
-  if ( $result ne 'ok' ) {
+  if ( $result !~ /^(ok|success)/i ) {
     #we already provisioned the DID, so...
     warn "Vitelity error enabling CNAM for ". $svc_phone->phonenum. ": $result";
   } elsif ( $self->option('debug') ) {
@@ -387,7 +387,13 @@ sub _export_insert {
 
   my $e911_error = $self->e911_send($svc_phone);
 
-  if ( $e911_error =~ /^(missingdata|invalid)/i ) {
+  if ( $e911_error =~ /status=(missingdata|invalid)/i ) {
+
+    my $status = $1;
+    if ( $e911_error =~ /error=(.*)/ ) {
+      $e911_error = "status=$status, error=$1";
+    }
+
     #but we already provisioned the DID, so:
     $self->vitelity_command('removedid', 'did'=> $svc_phone->phonenum,);
     #and check the results?  if it failed, then what?
@@ -404,6 +410,7 @@ sub e911_send {
   return '' if $self->option('disable_e911');
 
   my %location = $svc_phone->location_hash;
+  $location{'zip'} =~ s/\-\d{4}$//;
   my %e911send = (
     'did'     => $svc_phone->phonenum,
     'name'    => $svc_phone->phone_name_or_cust,
@@ -419,7 +426,7 @@ sub e911_send {
 
   my $e911_result = $self->vitelity_command('e911send', %e911send);
 
-  unless ( $e911_result =~ /^(missingdata|invalid)/i ) {
+  unless ( $e911_result =~ /status=(missingdata|invalid)/i ) {
     warn "Vitelity response: $e911_result" if $self->option('debug');
     return '';
   }