summaryrefslogtreecommitdiff
path: root/FS/FS/contact.pm
diff options
context:
space:
mode:
Diffstat (limited to 'FS/FS/contact.pm')
-rw-r--r--FS/FS/contact.pm133
1 files changed, 5 insertions, 128 deletions
diff --git a/FS/FS/contact.pm b/FS/FS/contact.pm
index 774aed0..d3ab411 100644
--- a/FS/FS/contact.pm
+++ b/FS/FS/contact.pm
@@ -2,12 +2,10 @@ package FS::contact;
use strict;
use base qw( FS::Record );
-use FS::Record qw( qsearch qsearchs dbh );
+use FS::Record qw( qsearch qsearchs );
use FS::prospect_main;
use FS::cust_main;
use FS::cust_location;
-use FS::contact_phone;
-use FS::contact_email;
=head1 NAME
@@ -98,59 +96,7 @@ otherwise returns false.
=cut
-sub insert {
- my $self = shift;
-
- local $SIG{INT} = 'IGNORE';
- local $SIG{QUIT} = 'IGNORE';
- local $SIG{TERM} = 'IGNORE';
- local $SIG{TSTP} = 'IGNORE';
- local $SIG{PIPE} = 'IGNORE';
-
- my $oldAutoCommit = $FS::UID::AutoCommit;
- local $FS::UID::AutoCommit = 0;
- my $dbh = dbh;
-
- my $error = $self->SUPER::insert;
- if ( $error ) {
- $dbh->rollback if $oldAutoCommit;
- return $error;
- }
-
- foreach my $pf ( grep { /^phonetypenum(\d+)$/ && $self->get($_) =~ /\S/ }
- keys %{ $self->hashref } ) {
- $pf =~ /^phonetypenum(\d+)$/ or die "wtf (daily, the)";
- my $phonetypenum = $1;
-
- my $contact_phone = new FS::contact_phone {
- 'contactnum' => $self->contactnum,
- 'phonetypenum' => $phonetypenum,
- _parse_phonestring( $self->get($pf) ),
- };
- $error = $contact_phone->insert;
- if ( $error ) {
- $dbh->rollback if $oldAutoCommit;
- return $error;
- }
- }
-
- if ( $self->get('emailaddress') =~ /\S/ ) {
- my $contact_email = new FS::contact_email {
- 'contactnum' => $self->contactnum,
- 'emailaddress' => $self->get('emailaddress'),
- };
- $error = $contact_email->insert;
- if ( $error ) {
- $dbh->rollback if $oldAutoCommit;
- return $error;
- }
- }
-
- $dbh->commit or die $dbh->errstr if $oldAutoCommit;
-
- '';
-
-}
+# the insert method can be inherited from FS::Record
=item delete
@@ -160,8 +106,6 @@ Delete this record from the database.
# the delete method can be inherited from FS::Record
-# XXX delete contact_phone, contact_email
-
=item replace OLD_RECORD
Replaces the OLD_RECORD with this one in the database. If there is an error,
@@ -169,76 +113,7 @@ returns the error, otherwise returns false.
=cut
-sub replace {
- my $self = shift;
-
- local $SIG{INT} = 'IGNORE';
- local $SIG{QUIT} = 'IGNORE';
- local $SIG{TERM} = 'IGNORE';
- local $SIG{TSTP} = 'IGNORE';
- local $SIG{PIPE} = 'IGNORE';
-
- my $oldAutoCommit = $FS::UID::AutoCommit;
- local $FS::UID::AutoCommit = 0;
- my $dbh = dbh;
-
- my $error = $self->SUPER::replace(@_);
- if ( $error ) {
- $dbh->rollback if $oldAutoCommit;
- return $error;
- }
-
- foreach my $pf ( grep { /^phonetypenum(\d+)$/ && $self->get($_) }
- keys %{ $self->hashref } ) {
- $pf =~ /^phonetypenum(\d+)$/ or die "wtf (daily, the)";
- my $phonetypenum = $1;
-
- my %cp = ( 'contactnum' => $self->contactnum,
- 'phonetypenum' => $phonetypenum,
- );
- my $contact_phone = qsearchs('contact_phone', \%cp)
- || new FS::contact_phone \%cp;
-
- my %cpd = _parse_phonestring( $self->get($pf) );
- $contact_phone->set( $_ => $cpd{$_} ) foreach keys %cpd;
-
- my $method = $contact_phone->contactphonenum ? 'replace' : 'insert';
-
- $error = $contact_phone->$method;
- if ( $error ) {
- $dbh->rollback if $oldAutoCommit;
- return $error;
- }
- }
-
- $dbh->commit or die $dbh->errstr if $oldAutoCommit;
-
- '';
-
-}
-
-#i probably belong in contact_phone.pm
-sub _parse_phonestring {
- my $value = shift;
-
- my($countrycode, $extension) = ('1', '');
-
- #countrycode
- if ( $value =~ s/^\s*\+\s*(\d+)// ) {
- $countrycode = $1;
- } else {
- $value =~ s/^\s*1//;
- }
- #extension
- if ( $value =~ s/\s*(ext|x)\s*(\d+)\s*$//i ) {
- $extension = $2;
- }
-
- ( 'countrycode' => $countrycode,
- 'phonenum' => $value,
- 'extension' => $extension,
- );
-}
+# the replace method can be inherited from FS::Record
=item check
@@ -290,6 +165,8 @@ sub line {
=head1 BUGS
+The author forgot to customize this manpage.
+
=head1 SEE ALSO
L<FS::Record>, schema.html from the base documentation.