summaryrefslogtreecommitdiff
path: root/FS/FS/part_export/soma.pm
diff options
context:
space:
mode:
authorjeff <jeff>2008-11-24 15:18:42 +0000
committerjeff <jeff>2008-11-24 15:18:42 +0000
commit6d13a0d4dd94fd0294b25e5cd15be91e890db84c (patch)
tree683004a73b58e7d1f4fc91d92e3ce9d8421201b7 /FS/FS/part_export/soma.pm
parente1fbc0653fe71b540d9f58c225a9b9cc6b9f796b (diff)
be more accepting
Diffstat (limited to 'FS/FS/part_export/soma.pm')
-rw-r--r--FS/FS/part_export/soma.pm11
1 files changed, 9 insertions, 2 deletions
diff --git a/FS/FS/part_export/soma.pm b/FS/FS/part_export/soma.pm
index b290db8..a0b433d 100644
--- a/FS/FS/part_export/soma.pm
+++ b/FS/FS/part_export/soma.pm
@@ -381,7 +381,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*(\d[a-fA-F])+\s*$/ && ($esn = $1);
+ return sprintf( '%016X', $esn ) if $svcdb eq 'svc_external';
+ }
my $cust_pkg = $svc->cust_svc->cust_pkg;
return '' unless $cust_pkg;
@@ -394,7 +398,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*(\d[a-fA-F])+\s*$/ && ($esn = $1);
+
+ sprintf( '%016X', $esn );
}