Freeside:4:Documentation:Developer/FS/agent type

From Freeside
Jump to: navigation, search

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.