Freeside:4:Documentation:Developer/FS/agent type
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.