|
|
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
| |
− | ==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.
| |