<% include( '/elements/header.html', 'Developer Documentation' ) %> <& /elements/menubar.html, 'Freeside Perl Modules' => $fsurl.'docs/library/FS.html', 'Complete Index' => $fsurl.'docs/library/index.html', &>

FS::agent_type

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.

<% include ('/elements/footer.html' ) %>