X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_export%2Fsoma.pm;h=c73d9f978587155a2bb3be37efb618256376340a;hb=389b6f1116c3309c2ee57a6c295ed1a793503095;hp=b290db844af299f1e2713bd51ace568d9644f3f6;hpb=e1fbc0653fe71b540d9f58c225a9b9cc6b9f796b;p=freeside.git diff --git a/FS/FS/part_export/soma.pm b/FS/FS/part_export/soma.pm index b290db844..c73d9f978 100644 --- a/FS/FS/part_export/soma.pm +++ b/FS/FS/part_export/soma.pm @@ -140,9 +140,9 @@ sub queue_statuschange { my $queue = new FS::queue { 'svcnum' => $svc->svcnum, - 'job' => 'FS::part_export::soma::$method', + 'job' => 'FS::part_export::soma::statuschange', }; - my $error = $queue->insert( $self->option('url'), %args ); + my $error = $queue->insert( %args ); return $error if $error; @@ -311,11 +311,13 @@ sub _queueable_suspend { next unless $application->definitionId == $appid; $instance_id = $application->instanceId; - $app_def = $app_catalog->getApplicationDef($appid, $cpeid); - @attr_def = grep { $_->internalName eq 'status' } @{$app_def->attributes}; + my $app_def = + $soma_objects->{AppCatalog}->getApplicationDef($appid, $cpeid); + my @attr_def = grep { $_->internalName eq 'status' } + @{$app_def->attributes}; foreach my $attribute ( @{$application->attributes} ) { - next unless $attibute->definitionId == $attr_def[0]->definitionId; + next unless $attribute->definitionId == $attr_def[0]->definitionId; $attribute->{value} = 'S'; $soma_objects->{Applications}->setAppAttribute( $cpeid, @@ -351,11 +353,13 @@ sub _queueable_unsuspend { next unless $application->definitionId == $appid; $instance_id = $application->instanceId; - $app_def = $app_catalog->getApplicationDef($appid, $cpeid); - @attr_def = grep { $_->internalName eq 'status' } @{$app_def->attributes}; + my $app_def = + $soma_objects->{AppCatalog}->getApplicationDef($appid, $cpeid); + my @attr_def = grep { $_->internalName eq 'status' } + @{$app_def->attributes}; - foreach my $attribute ( @{$applicate->attributes} ) { - next unless $attibute->definitionId == $attr_def[0]->definitionId; + foreach my $attribute ( @{$application->attributes} ) { + next unless $attribute->definitionId == $attr_def[0]->definitionId; $attribute->{value} = 'E'; $soma_objects->{Applications}->setAppAttribute( $cpeid, @@ -381,7 +385,11 @@ sub esn { my ( $self, $svc ) = @_; my $svcdb = $svc->cust_svc->part_svc->svcdb; - return sprintf( '%016X', $svc->title ) if $svcdb eq 'svc_external'; + if ($svcdb eq 'svc_external') { + my $esn = $svc->title; + $esn =~ /^\s*([\da-fA-F]{1,16})\s*$/ && ($esn = $1); + return sprintf( '%016s', $esn ); + } my $cust_pkg = $svc->cust_svc->cust_pkg; return '' unless $cust_pkg; @@ -394,7 +402,10 @@ sub esn { warn "part_export::soma found multiple ESNs for cust_svc ". $svc->svcnum if scalar( @cust_svc ) > 1; - sprintf( '%016X', $cust_svc[0]->svc_x->title ); + my $esn = $cust_svc[0]->svc_x->title; + $esn =~ /^\s*([\da-fA-F]{1,16})\s*$/ && ($esn = $1); + + sprintf( '%016s', $esn ); }