RT# 83450 - fixed rateplan export
[freeside.git] / FS / FS / part_export / prizm.pm
index b697992..9964489 100644 (file)
@@ -79,11 +79,12 @@ possibly harmful.
 EOT
 
 %info = (
-  'svc'      => 'svc_broadband',
-  'desc'     => 'Real-time export to Northbound Interface',
-  'options'  => \%options,
-  'nodomain' => 'Y',
-  'notes'    => $notes,
+  'svc'        => 'svc_broadband',
+  'desc'       => 'Real-time export to Northbound Interface',
+  'options'    => \%options,
+  'nodomain'   => 'Y',
+  'no_machine' => 1,
+  'notes'      => $notes,
 );
 
 sub prizm_command {
@@ -206,6 +207,29 @@ sub _export_insert {
 #    }
 #  }
 
+# here we cope with a problem of prizm failing to insert for reason
+# of duplicate mac addr, but doing so inconsistently... a race in prizm?
+
+  $self->prizm_command( 'CustomerIfService', 'removeElementFromCustomer',
+                        0,
+                        $cust_main->custnum,
+                        0,
+                        $svc->mac_addr,
+                      );
+
+  $err_or_som = $self->prizm_command( 'NetworkIfService', 'getPrizmElements',
+                                      [ 'MAC Address' ],
+                                      [ $svc->mac_addr ],
+                                      [ '=' ],
+                                    );
+  if ( ref($err_or_som) && $err_or_som->result->[0] ) { # ignore errors
+    $self->prizm_command( 'NetworkIfService', 'deleteElement',
+                          $err_or_som->result->[0],
+                          1,
+                        );
+  }
+# end of coping
+
   my $performance_profile = $svc->performance_profile;
   $performance_profile ||= $svc->cust_svc->cust_pkg->part_pkg->pkg;
 
@@ -493,7 +517,8 @@ sub _export_unsuspend {
 sub export_links {
   my( $self, $svc, $arrayref ) = ( shift, shift, shift );
 
-  push @$arrayref, '<A HREF="http://'. $svc->ip_addr. '">SM</A>';
+  push @$arrayref,
+    '<A HREF="http://'. $svc->ip_addr. '" target="_blank">SM</A>';
 
   '';
 }