Difference between revisions of "Freeside:3:Documentation:Developer/FS/agent type"

From Freeside
Jump to: navigation, search
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
 
==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.
 

Revision as of 06:24, 10 February 2015