Difference between revisions of "Freeside:3:Documentation:Developer/FS/rate"
From Freeside
m (Edit via perl MediaWiki framework (1.13)) |
m (Edit via perl MediaWiki framework (1.13)) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 26: | Line 26: | ||
; agentnum | ; agentnum | ||
:Optional agent (see [[Freeside:3:Documentation:Developer/FS/agent|FS::agent]]) for agent-virtualized rates. | :Optional agent (see [[Freeside:3:Documentation:Developer/FS/agent|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== | ==METHODS== | ||
; new HASHREF | ; new HASHREF | ||
Line 49: | Line 51: | ||
: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. | :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 | ; dest_detail REGIONNUM | RATE_REGION_OBJECTD | HASHREF | ||
− | :Returns the rate detail (see [[Freeside:3:Documentation:Developer/FS/rate detail|FS::rate_detail]]) for this rate to the specificed destination | + | :Returns the rate detail (see [[Freeside:3:Documentation:Developer/FS/rate detail|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 [[Freeside:3:Documentation:Developer/FS/rate detail|FS::rate_detail]]), or as a hashref containing the following keys: | :Destination can be specified as an FS::rate_detail object or regionnum (see [[Freeside:3:Documentation:Developer/FS/rate detail|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 | :; ''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 [[Freeside:3:Documentation:Developer/FS/rate detail|FS::rate_detail]]) for this rate. | ::Returns all region-specific details (see [[Freeside:3:Documentation:Developer/FS/rate detail|FS::rate_detail]]) for this rate. | ||
− | :; agent | + | :; agent; default_detail |
+ | :Returns the default rate detail, if there is one. | ||
+ | |||
==SUBROUTINES== | ==SUBROUTINES== | ||
; process | ; process | ||
Line 66: | Line 70: | ||
Hey! '''The above document had some coding errors, which are explained below:''' | Hey! '''The above document had some coding errors, which are explained below:''' | ||
− | ; Around line | + | ; Around line 434: |
:You forgot a '=back' before '=head1' | :You forgot a '=back' before '=head1' | ||
− | ; Around line | + | ; Around line 511: |
:You forgot a '=back' before '=head1' | :You forgot a '=back' before '=head1' |
Latest revision as of 10:04, 10 April 2015
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'