summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/contact_phone.pm23
-rw-r--r--httemplate/elements/contact.html2
-rw-r--r--httemplate/view/cust_main/contacts_new.html2
3 files changed, 25 insertions, 2 deletions
diff --git a/FS/FS/contact_phone.pm b/FS/FS/contact_phone.pm
index 55cb09dc3..7ba85234a 100644
--- a/FS/FS/contact_phone.pm
+++ b/FS/FS/contact_phone.pm
@@ -131,6 +131,29 @@ sub check {
$self->SUPER::check;
}
+sub phonenum_pretty {
+ my $self = shift;
+
+ #until/unless we have the upgrade strip all whitespace
+ (my $phonenum = $self->phonenum ) =~ s/\D//g;
+
+ if ( $self->countrycode == 1 ) {
+
+ $phonenum =~ /^(\d{3})(\d{3})(\d{4})(\d*)$/
+ or return $self->phonenum; #wtf?
+
+ $phonenum = "($1) $2-$3";
+ $phonenum .= " x$4" if $4;
+ return $phonenum;
+
+ } else {
+ warn "don't know how to format phone numbers for country +". $self->countrycode;
+ #also, the UI doesn't have a good way for you to enter them yet or parse a countrycode from the number
+ return $self->phonenum;
+ }
+
+}
+
=back
=head1 BUGS
diff --git a/httemplate/elements/contact.html b/httemplate/elements/contact.html
index 3d5177612..8abce058e 100644
--- a/httemplate/elements/contact.html
+++ b/httemplate/elements/contact.html
@@ -31,7 +31,7 @@
% 'phonetypenum' => $1,
% });
% if ( $contact_phone ) {
-% $value = $contact_phone->phonenum;
+% $value = $contact_phone->phonenum_pretty;
% $value .= 'x'.$contact_phone->extension
% if $contact_phone->extension;
% $value = '+'. $contact_phone->countrycode. " $value"
diff --git a/httemplate/view/cust_main/contacts_new.html b/httemplate/view/cust_main/contacts_new.html
index 63a050c04..a851d99ed 100644
--- a/httemplate/view/cust_main/contacts_new.html
+++ b/httemplate/view/cust_main/contacts_new.html
@@ -22,7 +22,7 @@
% })
% or next;
<TD ALIGN="right">&nbsp;&nbsp;&nbsp;<% $phone_type->typename %> phone</TD>
- <TD BGCOLOR="#FFFFFF"><% $contact_phone->phonenum |h %></TD>
+ <TD BGCOLOR="#FFFFFF"><% $contact_phone->phonenum_pretty |h %></TD>
% }
</TR>