Freeside:3:Documentation:Developer/FS/rate

From Freeside
Jump to: navigation, search

NAME

FS::rate - Object methods for rate records

SYNOPSIS

 use FS::rate;

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

 $error = $record->insert;

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

 $error = $record->delete;

 $error = $record->check;

DESCRIPTION

An FS::rate object represents an rate plan. FS::rate inherits from FS::Record. The following fields are currently supported:

ratenum
primary key
ratename
Rate name
agentnum
Optional agent (see FS::agent) for agent-virtualized rates.
default_detailnum
Optional rate detail to apply when a call doesn't match any region in the rate plan. If this is not set, the call will either be left unrated (though it may still be processed under a different pricing addon package), or be marked as 'skipped', or throw a fatal error, depending on the setting of the 'ignore_unrateable' package option.

METHODS

new HASHREF
Creates a new rate plan. To add the rate plan 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 [ , OPTION => VALUE ... ]
Adds this record to the database. If there is an error, returns the error, otherwise returns false.
Currently available options are: rate_detail
If rate_detail is set to an array reference of FS::rate_detail objects, the objects will have their ratenum field set and will be inserted after this record.
delete
Delete this record from the database.
replace OLD_RECORD [ , OPTION => VALUE ... ]
Replaces the OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns false.
Currently available options are: rate_detail
If rate_detail is set to an array reference of FS::rate_detail objects, the objects will have their ratenum field set and will be inserted after this record. Any existing rate_detail records associated with this record will be deleted.
check
Checks all fields to make sure this is a valid rate plan. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods.
dest_detail REGIONNUM | RATE_REGION_OBJECTD | HASHREF
Returns the rate detail (see FS::rate_detail) for this rate to the specificed destination. If no rate can be found, returns the default rate if there is one, and an empty string otherwise.
Destination can be specified as an FS::rate_detail object or regionnum (see FS::rate_detail), or as a hashref containing the following keys:
countrycode - required.
; phonenum - required.:; weektime - optional. Specifies a time in seconds from the start of the week, and will return a timed rate (one with a non-null ratetimenum) if one exists at that time. If not, returns a non-timed rate.:; cdrtypenum - optional. Specifies a value for the cdrtypenum field, and will return a rate matching that, if one exists. If not, returns a rate with null cdrtypenum.:; rate_detail
Returns all region-specific details (see FS::rate_detail) for this rate.
agent; default_detail
Returns the default rate detail, if there is one.

SUBROUTINES

process
Job-queue processor for web interface adds/edits

BUGS

SEE ALSO

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

POD ERRORS

Hey! The above document had some coding errors, which are explained below:

Around line 434:
You forgot a '=back' before '=head1'
Around line 511:
You forgot a '=back' before '=head1'