<% include( '/elements/header.html', 'Developer Documentation' ) %> <& /elements/menubar.html, 'Freeside Perl Modules' => $fsurl.'docs/library/FS.html', 'Complete Index' => $fsurl.'docs/library/index.html', &>

FS::contact

NAME

FS::contact - Object methods for contact records

SYNOPSIS

  use FS::contact;

  $record = new FS::contact \%hash;
  $record = new FS::contact { 'column' => 'value' };

  $error = $record->insert;

  $error = $new_record->replace($old_record);

  $error = $record->delete;

  $error = $record->check;

DESCRIPTION

An FS::contact object represents an specific contact person for a prospect or customer. FS::contact inherits from FS::Record. The following fields are currently supported:

contactnum

primary key

prospectnum

prospectnum

custnum

custnum

locationnum

locationnum

last

last

first

first

title

title

comment

comment

selfservice_access

empty or Y

_password
_password_encoding

empty or bcrypt

disabled

disabled

METHODS

new HASHREF

Creates a new contact. To add the contact to the database, see "insert".

Note that this stores the hash reference, not a distinct copy of the hash it points to. You can ask the object for a copy with the hash method.

insert

Adds this record to the database. If there is an error, returns the error, otherwise returns false.

If the object has an emailaddress field, FS::contact_email records will be created for each (comma-separated) email address in that field. If any of these coincide with an existing email address, this contact will be merged with the contact with that address.

Then, if the object has any fields named phonetypenumN an FS::contact_phone record will be created for each of them. Those fields should contain phone numbers of the appropriate types (where N is the key of an FS::phone_type record identifying the type of number: daytime, night, etc.).

After inserting the record, if the object has a 'custnum' or 'prospectnum' field, an FS::cust_contact or FS::prospect_contact record will be created to link the contact to the customer. The following fields will also be included in that record, if they are set on the object: - classnum - comment - selfservice_access - invoice_dest

delete

Delete this record from the database.

replace OLD_RECORD

Replaces the OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns false.

_parse_phonestring PHONENUMBER_STRING

Subroutine, takes a string and returns a list (suitable for assigning to a hash) with keys 'countrycode', 'phonenum' and 'extension'

(Should probably be moved to contact_phone.pm, hence the initial underscore.)

queue_fuzzyfiles_update

Used by insert & replace to update the fuzzy search cache

check

Checks all fields to make sure this is a valid contact. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods.

line

Returns a formatted string representing this contact, including name, title and comment.

firstlast

Returns a formatted string representing this contact, with just the name.

by_selfservice_email EMAILADDRESS

Alternate search constructor (class method). Given an email address, returns the contact for that address. If that contact doesn't have selfservice access, or there isn't one, returns the empty string.

by_selfservice_email_custnum EMAILADDRESS, CUSTNUM

Alternate search constructor (class method). Given an email address and custnum, returns the contact for that address and custnum. If that contact doesn't have selfservice access, or there isn't one, returns the empty string.

change_password NEW_PASSWORD

Changes the contact's selfservice access password to NEW_PASSWORD. This does not check password policy rules (see is_password_allowed) and will return an error only if editing the record fails for some reason.

If NEW_PASSWORD is the same as the existing password, this does nothing.

cgi_contact_fields

Returns a list reference containing the set of contact fields used in the web interface for one-line editing (i.e. excluding contactnum, prospectnum, custnum and locationnum, as well as password fields, but including fields for contact_email and contact_phone records.)

BUGS

SEE ALSO

FS::Record, schema.html from the base documentation.

<% include ('/elements/footer.html' ) %>