Freeside:1.7:Documentation:Developer/FS/cust svc

From Freeside
< Freeside:1.7:Documentation:Developer‎ | FS
Revision as of 13:01, 23 July 2009 by Ivan (talk | contribs) (Edit via perl MediaWiki framework (1.13))

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

NAME

FS::cust_svc - Object method for cust_svc objects

SYNOPSIS

 use FS::cust_svc;

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

 $error = $record->insert;

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

 $error = $record->delete;

 $error = $record->check;

 ($label, $value) = $record->label;

DESCRIPTION

An FS::cust_svc represents a service. FS::cust_svc inherits from FS::Record. The following fields are currently supported:

svcnum - primary key (assigned automatically for new services); pkgnum - Package (see FS::cust_pkg); svcpart - Service definition (see FS::part_svc); overlimit - date the service exceeded its usage limit

METHODS

new HASHREF
Creates a new service. To add the refund to the database, see "insert". Services are normally created by creating FS::svc_ objects (see FS::svc_acct, FS::svc_domain, and FS::svc_forward, among others).
insert
Adds this service to the database. If there is an error, returns the error, otherwise returns false.
delete
Deletes this service from the database. If there is an error, returns the error, otherwise returns false. Note that this only removes the cust_svc record - you should probably use the cancel method instead.
cancel
Cancels the relevant service by calling the cancel method of the associated FS::svc_XXX object (i.e. an FS::svc_acct object or FS::svc_domain object), deleting the FS::svc_XXX record and then deleting this record.
If there is an error, returns the error, otherwise returns false.
overlimit [ ACTION ]
Retrieves or sets the overlimit date. If ACTION is absent, return the present value of overlimit. If ACTION is present, it can have the value 'suspend' or 'unsuspend'. In the case of 'suspend' overlimit is set to the current time if it is not already set. The 'unsuspend' value causes the time to be cleared.
If there is an error on setting, returns the error, otherwise returns false.
replace OLD_RECORD
Replaces the OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns false.
check
Checks all fields to make sure this is a valid service. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods.
part_svc
Returns the definition for this service, as a FS::part_svc object (see FS::part_svc).
cust_pkg
Returns the package this service belongs to, as a FS::cust_pkg object (see FS::cust_pkg).
pkg_svc
Returns the pkg_svc record for for this service, if applicable.
date_inserted
Returns the date this service was inserted.
label
Returns a list consisting of: - The name of this service (from part_svc) - A meaningful identifier (username, domain, or mail alias) - The table name (i.e. svc_domain) for this service - svcnum
Usage example:

 my($label, $value, $svcdb) = $cust_svc->label;

label_long
Like the label method, except the second item in the list ("meaningful identifier") may be longer - typically, a full name is included.
export_links
Returns a list of html elements associated with this services exports.
svc_x
Returns the FS::svc_XXX object for this service (i.e. an FS::svc_acct object or FS::svc_domain object, etc.)
seconds_since TIMESTAMP
See "seconds since" in FS/svc acct|FS::svc_acct#seconds_since|"seconds_since" in FS::svc_acct. Equivalent to $cust_svc->svc_x->seconds_since, but more efficient. Meaningless for records where svcdb is not "svc_acct".
seconds_since_sqlradacct TIMESTAMP_START TIMESTAMP_END
See "seconds since sqlradacct" in FS/svc acct|FS::svc_acct#seconds_since_sqlradacct|"seconds_since_sqlradacct" in FS::svc_acct. Equivalent to $cust_svc->svc_x->seconds_since_sqlradacct, but more efficient. Meaningless for records where svcdb is not "svc_acct".
attribute_since_sqlradacct TIMESTAMP_START TIMESTAMP_END ATTRIBUTE
See "attribute since sqlradacct" in FS/svc acct|FS::svc_acct#attribute_since_sqlradacct|"attribute_since_sqlradacct" in FS::svc_acct. Equivalent to $cust_svc->svc_x->attribute_since_sqlradacct, but more efficient. Meaningless for records where svcdb is not "svc_acct".
get_session_history TIMESTAMP_START TIMESTAMP_END
See "get session history" in FS/svc acct|FS::svc_acct#get_session_history|"get_session_history" in FS::svc_acct. Equivalent to $cust_svc->svc_x->get_session_history, but more efficient. Meaningless for records where svcdb is not "svc_acct".
get_cdrs_for_update
Returns (and SELECTs "FOR UPDATE") all unprocessed (freesidestatus NULL) CDR objects (see FS::cdr) associated with this service.
CDRs are associated with svc_phone services via svc_phone.phonenum

BUGS

Behaviour of changing the svcpart of cust_svc records is undefined and should possibly be prohibited, and pkg_svc records are not checked.

pkg_svc records are not checked in general (here).

Deleting this record doesn't check or delete the svc_* record associated with this record.

In seconds_since_sqlradacct, specifying a DATASRC/USERNAME/PASSWORD instead of a DBI database handle is not yet implemented.

SEE ALSO

FS::Record, FS::cust_pkg, FS::part_svc, FS::pkg_svc, schema.html from the base documentation