Difference between revisions of "Freeside:3:Documentation:Developer/FS/agent type"
m (Edit via perl MediaWiki framework (1.13)) |
m (Edit via perl MediaWiki framework (1.13)) |
||
Line 1: | Line 1: | ||
+ | ==NAME== | ||
+ | FS::agent_type - Object methods for agent_type records | ||
+ | ==SYNOPSIS== | ||
+ | <code> | ||
+ | use FS::agent_type; | ||
+ | |||
+ | $record = new FS::agent_type \%hash; | ||
+ | $record = new FS::agent_type { 'column' => 'value' }; | ||
+ | |||
+ | $error = $record->insert; | ||
+ | |||
+ | $error = $new_record->replace($old_record); | ||
+ | |||
+ | $error = $record->delete; | ||
+ | |||
+ | $error = $record->check; | ||
+ | |||
+ | $hashref = $record->pkgpart_hashref; | ||
+ | #may purchase $pkgpart if $hashref->{$pkgpart}; | ||
+ | |||
+ | @type_pkgs = $record->type_pkgs; | ||
+ | |||
+ | @pkgparts = $record->pkgpart; | ||
+ | </code> | ||
+ | ==DESCRIPTION== | ||
+ | An FS::agent_type object represents an agent type. Every agent (see [[Freeside:3:Documentation:Developer/FS/agent|FS::agent]]) has an agent type. Agent types define which packages (see [[Freeside:3:Documentation:Developer/FS/part pkg|FS::part_pkg]]) may be purchased by customers (see [[Freeside:3:Documentation:Developer/FS/cust main|FS::cust_main]]), via FS::type_pkgs records (see [[Freeside:3:Documentation:Developer/FS/type pkgs|FS::type_pkgs]]). FS::agent_type inherits from FS::Record. The following fields are currently supported: | ||
+ | |||
+ | ; typenum | ||
+ | :primary key (assigned automatically for new agent types) | ||
+ | ; atype | ||
+ | :Text name of this agent type | ||
+ | ; disabled | ||
+ | :Disabled flag, empty or 'Y' | ||
+ | |||
+ | ==METHODS== | ||
+ | ; new HASHREF | ||
+ | :Creates a new agent type. To add the agent type to the database, see [[#insert|"insert"]]. | ||
+ | ; insert | ||
+ | :Adds this agent type to the database. If there is an error, returns the error, otherwise returns false. | ||
+ | ; delete | ||
+ | :Deletes this agent type from the database. Only agent types with no agents can be deleted. If there is an error, returns the error, otherwise returns false. | ||
+ | ; replace OLD_RECORD | ||
+ | :Replaces 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 agent type. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods. | ||
+ | ; pkgpart_hashref | ||
+ | :Returns a hash reference. The keys of the hash are pkgparts. The value is true iff this agent may purchase the specified package definition. See [[Freeside:3:Documentation:Developer/FS/part pkg|FS::part_pkg]]. | ||
+ | ; type_pkgs | ||
+ | :Returns all FS::type_pkgs objects (see [[Freeside:3:Documentation:Developer/FS/type pkgs|FS::type_pkgs]]) for this agent type. | ||
+ | ; type_pkgs_enabled | ||
+ | :Returns all FS::type_pkg objects (see [[Freeside:3:Documentation:Developer/FS/type pkgs|FS::type_pkgs]]) that link to enabled package definitions (see [[Freeside:3:Documentation:Developer/FS/part pkg|FS::part_pkg]]). | ||
+ | |||
+ | :An additional strange feature is that the returned type_pkg objects also have all fields of the associated part_pkg object. | ||
+ | ; pkgpart | ||
+ | :Returns the pkgpart of all package definitions (see [[Freeside:3:Documentation:Developer/FS/part pkg|FS::part_pkg]]) for this agent type. | ||
+ | |||
+ | ==BUGS== | ||
+ | type_pkgs_enabled should order itself by something (pkg?) | ||
+ | |||
+ | type_pkgs_enabled should populate something that caches for the part_pkg method rather than add fields to this object, right? In fact we need a "poop" object framework that does that automatically for any joined search at some point.... right? | ||
+ | |||
+ | ==SEE ALSO== | ||
+ | [[Freeside:3:Documentation:Developer/FS/Record|FS::Record]], [[Freeside:3:Documentation:Developer/FS/agent|FS::agent]], [[Freeside:3:Documentation:Developer/FS/type pkgs|FS::type_pkgs]], [[Freeside:3:Documentation:Developer/FS/cust main|FS::cust_main]], [[Freeside:3:Documentation:Developer/FS/part pkg|FS::part_pkg]], schema.html from the base documentation. |
Latest revision as of 06:28, 10 February 2015
Contents
NAME
FS::agent_type - Object methods for agent_type records
SYNOPSIS
use FS::agent_type; $record = new FS::agent_type \%hash; $record = new FS::agent_type { 'column' => 'value' }; $error = $record->insert; $error = $new_record->replace($old_record); $error = $record->delete; $error = $record->check; $hashref = $record->pkgpart_hashref; #may purchase $pkgpart if $hashref->{$pkgpart}; @type_pkgs = $record->type_pkgs; @pkgparts = $record->pkgpart;
DESCRIPTION
An FS::agent_type object represents an agent type. Every agent (see FS::agent) has an agent type. Agent types define which packages (see FS::part_pkg) may be purchased by customers (see FS::cust_main), via FS::type_pkgs records (see FS::type_pkgs). FS::agent_type inherits from FS::Record. The following fields are currently supported:
- typenum
- primary key (assigned automatically for new agent types)
- atype
- Text name of this agent type
- disabled
- Disabled flag, empty or 'Y'
METHODS
- new HASHREF
- Creates a new agent type. To add the agent type to the database, see "insert".
- insert
- Adds this agent type to the database. If there is an error, returns the error, otherwise returns false.
- delete
- Deletes this agent type from the database. Only agent types with no agents can be deleted. If there is an error, returns the error, otherwise returns false.
- replace OLD_RECORD
- Replaces 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 agent type. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods.
- pkgpart_hashref
- Returns a hash reference. The keys of the hash are pkgparts. The value is true iff this agent may purchase the specified package definition. See FS::part_pkg.
- type_pkgs
- Returns all FS::type_pkgs objects (see FS::type_pkgs) for this agent type.
- type_pkgs_enabled
- Returns all FS::type_pkg objects (see FS::type_pkgs) that link to enabled package definitions (see FS::part_pkg).
- An additional strange feature is that the returned type_pkg objects also have all fields of the associated part_pkg object.
- pkgpart
- Returns the pkgpart of all package definitions (see FS::part_pkg) for this agent type.
BUGS
type_pkgs_enabled should order itself by something (pkg?)
type_pkgs_enabled should populate something that caches for the part_pkg method rather than add fields to this object, right? In fact we need a "poop" object framework that does that automatically for any joined search at some point.... right?
SEE ALSO
FS::Record, FS::agent, FS::type_pkgs, FS::cust_main, FS::part_pkg, schema.html from the base documentation.