1 package FS::contact_phone;
4 use base qw( FS::Record );
5 use FS::Record qw( qsearch qsearchs );
9 FS::contact_phone - Object methods for contact_phone records
13 use FS::contact_phone;
15 $record = new FS::contact_phone \%hash;
16 $record = new FS::contact_phone { 'column' => 'value' };
18 $error = $record->insert;
20 $error = $new_record->replace($old_record);
22 $error = $record->delete;
24 $error = $record->check;
28 An FS::contact_phone object represents an example. FS::contact_phone inherits from
29 FS::Record. The following fields are currently supported:
66 Creates a new example. To add the example to the database, see L<"insert">.
68 Note that this stores the hash reference, not a distinct copy of the hash it
69 points to. You can ask the object for a copy with the I<hash> method.
73 # the new method can be inherited from FS::Record, if a table method is defined
75 sub table { 'contact_phone'; }
79 Adds this record to the database. If there is an error, returns the error,
80 otherwise returns false.
84 # the insert method can be inherited from FS::Record
88 Delete this record from the database.
92 # the delete method can be inherited from FS::Record
94 =item replace OLD_RECORD
96 Replaces the OLD_RECORD with this one in the database. If there is an error,
97 returns the error, otherwise returns false.
101 # the replace method can be inherited from FS::Record
105 Checks all fields to make sure this is a valid example. If there is
106 an error, returns the error, otherwise returns false. Called by the insert
111 # the check method should currently be supplied - FS::Record contains some
112 # data checking routines
118 $self->ut_numbern('contactphonenum')
119 || $self->ut_number('contactnum')
120 || $self->ut_number('phonetypenum')
121 || $self->ut_text('countrycode')
122 || $self->ut_text('phonenum')
123 || $self->ut_textn('extension')
125 return $error if $error;
127 #strip non-digits, UI should format numbers per countrycode
128 (my $phonenum = $self->phonenum ) =~ s/\D//g;
129 $self->phonenum($phonenum);
134 sub phonenum_pretty {
137 #until/unless we have the upgrade strip all whitespace
138 (my $phonenum = $self->phonenum ) =~ s/\D//g;
140 if ( $self->countrycode == 1 ) {
142 $phonenum =~ /^(\d{3})(\d{3})(\d{4})(\d*)$/
143 or return $self->phonenum; #wtf?
145 $phonenum = "($1) $2-$3";
146 $phonenum .= " x$4" if $4;
150 warn "don't know how to format phone numbers for country +". $self->countrycode;
151 #also, the UI doesn't have a good way for you to enter them yet or parse a countrycode from the number
152 return $self->phonenum;
163 L<FS::Record>, schema.html from the base documentation.