diff options
Diffstat (limited to 'htdocs/docs/man/FS')
40 files changed, 5213 insertions, 0 deletions
diff --git a/htdocs/docs/man/FS/Bill.html b/htdocs/docs/man/FS/Bill.html new file mode 100644 index 000000000..e5832f8d9 --- /dev/null +++ b/htdocs/docs/man/FS/Bill.html @@ -0,0 +1,32 @@ +<HTML> +<HEAD> +<TITLE>FS::Bill - Legacy stub</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::Bill - Legacy stub + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +The functionality of FS::Bill has been integrated into FS::cust_main. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/CGI.html b/htdocs/docs/man/FS/CGI.html new file mode 100644 index 000000000..e1a42ec59 --- /dev/null +++ b/htdocs/docs/man/FS/CGI.html @@ -0,0 +1,115 @@ +<HTML> +<HEAD> +<TITLE>FS::CGI - Subroutines for the web interface</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#SUBROUTINES">SUBROUTINES</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::CGI - Subroutines for the web interface + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::CGI qw(header menubar idiot eidiot popurl); +</PRE> +<P> +<PRE> print header( 'Title', '' ); + print header( 'Title', menubar('item', 'URL', ... ) ); +</PRE> +<P> +<PRE> idiot "error message"; + eidiot "error message"; +</PRE> +<P> +<PRE> $url = popurl; #returns current url + $url = popurl(3); #three levels up +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +Provides a few common subroutines for the web interface. + +<P> +<HR> +<H1><A NAME="SUBROUTINES">SUBROUTINES</A></H1> +<DL> +<DT><STRONG><A NAME="item_header">header TITLE, MENUBAR</A></STRONG><DD> +<P> +Returns an HTML header. + +<DT><STRONG><A NAME="item_menubar">menubar ITEM, URL, ...</A></STRONG><DD> +<P> +Returns an HTML menubar. + +<DT><STRONG><A NAME="item_idiot">idiot ERROR</A></STRONG><DD> +<P> +This is depriciated. Don't use it. + +<P> +Sends headers and an HTML error message. + +<DT><STRONG><A NAME="item_eidiot">eidiot ERROR</A></STRONG><DD> +<P> +This is depriciated. Don't use it. + +<P> +Sends headers and an HTML error message, then exits. + +<DT><STRONG><A NAME="item_popurl">popurl LEVEL</A></STRONG><DD> +<P> +Returns current URL with LEVEL levels of path removed from the end (default +0). + +<DT><STRONG><A NAME="item_table">table</A></STRONG><DD> +<P> +Returns HTML tag for beginning a table. + +<DT><STRONG><A NAME="item_itable">itable</A></STRONG><DD> +<P> +Returns HTML tag for beginning an (invisible) table. + +<DT><STRONG><A NAME="item_ntable">ntable</A></STRONG><DD> +<P> +This is getting silly. + +</DL> +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +Not OO. + +<P> +Not complete. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF=".././FS/CGI.html#">the CGI manpage</A>, <A HREF="../CGI/Base.html">CGI::Base</A> + + + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/Conf.html b/htdocs/docs/man/FS/Conf.html new file mode 100644 index 000000000..e4555c3a9 --- /dev/null +++ b/htdocs/docs/man/FS/Conf.html @@ -0,0 +1,94 @@ +<HTML> +<HEAD> +<TITLE>FS::Conf - Read access to Freeside configuration values</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::Conf - Read access to Freeside configuration values + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::Conf; +</PRE> +<P> +<PRE> $conf = new FS::Conf "/config/directory"; +</PRE> +<P> +<PRE> $FS::Conf::default_dir = "/config/directory"; + $conf = new FS::Conf; +</PRE> +<P> +<PRE> $dir = $conf->dir; +</PRE> +<P> +<PRE> $value = $conf->config('key'); + @list = $conf->config('key'); + $bool = $conf->exists('key'); +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +Read access to Freeside configuration values. Keys currently map to +filenames, but this may change in the future. + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new [ DIRECTORY ]</A></STRONG><DD> +<P> +Create a new configuration object. A directory arguement is required if +$FS::Conf::default_dir has not been set. + +<DT><STRONG><A NAME="item_dir">dir</A></STRONG><DD> +<P> +Returns the directory. + +<DT><STRONG><A NAME="item_config">config</A></STRONG><DD> +<P> +Returns the configuration value or values (depending on context) for key. + +<DT><STRONG><A NAME="item_exists">exists</A></STRONG><DD> +<P> +Returns true if the specified key exists, even if the corresponding value +is undefined. + +</DL> +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +Write access (with locking) should be implemented. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +config.html from the base documentation contains a list of configuration +files. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/Invoice.html b/htdocs/docs/man/FS/Invoice.html new file mode 100644 index 000000000..283e89a35 --- /dev/null +++ b/htdocs/docs/man/FS/Invoice.html @@ -0,0 +1,32 @@ +<HTML> +<HEAD> +<TITLE>FS::Invoice - Legacy stub</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::Invoice - Legacy stub + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +The functionality of FS::Invoice has been integrated in FS::cust_bill. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/Record.html b/htdocs/docs/man/FS/Record.html new file mode 100644 index 000000000..da1fc5287 --- /dev/null +++ b/htdocs/docs/man/FS/Record.html @@ -0,0 +1,380 @@ +<HTML> +<HEAD> +<TITLE>FS::Record - Database record objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#CONSTRUCTORS">CONSTRUCTORS</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#SUBROUTINES">SUBROUTINES</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::Record - Database record objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::Record; + use FS::Record qw(dbh fields qsearch qsearchs dbdef); +</PRE> +<P> +<PRE> $record = new FS::Record 'table', \%hash; + $record = new FS::Record 'table', { 'column' => 'value', ... }; +</PRE> +<P> +<PRE> $record = qsearchs FS::Record 'table', \%hash; + $record = qsearchs FS::Record 'table', { 'column' => 'value', ... }; + @records = qsearch FS::Record 'table', \%hash; + @records = qsearch FS::Record 'table', { 'column' => 'value', ... }; +</PRE> +<P> +<PRE> $table = $record->table; + $dbdef_table = $record->dbdef_table; +</PRE> +<P> +<PRE> $value = $record->get('column'); + $value = $record->getfield('column'); + $value = $record->column; +</PRE> +<P> +<PRE> $record->set( 'column' => 'value' ); + $record->setfield( 'column' => 'value' ); + $record->column('value'); +</PRE> +<P> +<PRE> %hash = $record->hash; +</PRE> +<P> +<PRE> $hashref = $record->hashref; +</PRE> +<P> +<PRE> $error = $record->insert; + #$error = $record->add; #depriciated +</PRE> +<P> +<PRE> $error = $record->delete; + #$error = $record->del; #depriciated +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); + #$error = $new_record->rep($old_record); #depriciated +</PRE> +<P> +<PRE> $value = $record->unique('column'); +</PRE> +<P> +<PRE> $value = $record->ut_float('column'); + $value = $record->ut_number('column'); + $value = $record->ut_numbern('column'); + $value = $record->ut_money('column'); + $value = $record->ut_text('column'); + $value = $record->ut_textn('column'); + $value = $record->ut_alpha('column'); + $value = $record->ut_alphan('column'); + $value = $record->ut_phonen('column'); + $value = $record->ut_anythingn('column'); +</PRE> +<P> +<PRE> $dbdef = reload_dbdef; + $dbdef = reload_dbdef "/non/standard/filename"; + $dbdef = dbdef; +</PRE> +<P> +<PRE> $quoted_value = _quote($value,'table','field'); +</PRE> +<P> +<PRE> #depriciated + $fields = hfields('table'); + if ( $fields->{Field} ) { # etc. +</PRE> +<P> +<PRE> @fields = fields 'table'; #as a subroutine + @fields = $record->fields; #as a method call +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +(Mostly) object-oriented interface to database records. Records are +currently implemented on top of DBI. FS::Record is intended as a base class +for table-specific classes to inherit from, i.e. FS::cust_main. + +<P> +<HR> +<H1><A NAME="CONSTRUCTORS">CONSTRUCTORS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new [ TABLE, ] HASHREF</A></STRONG><DD> +<P> +Creates a new record. It doesn't store it in the database, though. See +<A HREF="#insert">insert</A> for that. + +<P> +Note that the object stores this hash reference, not a distinct copy of the +hash it points to. You can ask the object for a copy with the <EM>hash</EM> +method. + +<P> +TABLE can only be omitted when a dervived class overrides the table method. + +<DT><STRONG><A NAME="item_qsearch">qsearch TABLE, HASHREF</A></STRONG><DD> +<P> +Searches the database for all records matching (at least) the key/value +pairs in HASHREF. Returns all the records found as `FS::TABLE' objects if +that module is loaded (i.e. via `use FS::cust_main;'), otherwise returns +FS::Record objects. + +<DT><STRONG><A NAME="item_qsearchs">qsearchs TABLE, HASHREF</A></STRONG><DD> +<P> +Same as qsearch, except that if more than one record matches, it <STRONG>carp</STRONG>s but returns the first. If this happens, you either made a logic error in +asking for a single item, or your data is corrupted. + +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_table">table</A></STRONG><DD> +<P> +Returns the table name. + +<DT><STRONG><A NAME="item_dbdef_table">dbdef_table</A></STRONG><DD> +<P> +Returns the FS::dbdef_table object for the table. + +<DT><STRONG><A NAME="item_get">get, getfield COLUMN</A></STRONG><DD> +<P> +Returns the value of the column/field/key COLUMN. + +<DT><STRONG><A NAME="item_set">set, setfield COLUMN, VALUE</A></STRONG><DD> +<P> +Sets the value of the column/field/key COLUMN to VALUE. Returns VALUE. + +<DT><STRONG><A NAME="item_AUTLOADED">AUTLOADED METHODS</A></STRONG><DD> +<P> +$record->column is a synonym for $record->get('column'); + +<P> +$record->column('value') is a synonym for +$record->set('column','value'); + +<DT><STRONG><A NAME="item_hash">hash</A></STRONG><DD> +<P> +Returns a list of the column/value pairs, usually for assigning to a new +hash. + +<P> +To make a distinct duplicate of an FS::Record object, you can do: + +<P> +<PRE> $new = new FS::Record ( $old->table, { $old->hash } ); +</PRE> +<DT><STRONG><A NAME="item_hashref">hashref</A></STRONG><DD> +<P> +Returns a reference to the column/value hash. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Inserts this record to the database. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_add">add</A></STRONG><DD> +<P> +Depriciated (use insert instead). + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Delete this record from the database. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_del">del</A></STRONG><DD> +<P> +Depriciated (use delete instead). + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replace the OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_rep">rep</A></STRONG><DD> +<P> +Depriciated (use replace instead). + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Not yet implemented, croaks. Derived classes should provide a check method. + +<DT><STRONG><A NAME="item_unique">unique COLUMN</A></STRONG><DD> +<P> +Replaces COLUMN in record with a unique number. Called by the <STRONG>add</STRONG> method on primary keys and single-field unique columns (see <A HREF="../FS/dbdef_table.html">FS::dbdef_table</A>). Returns the new value. + +<DT><STRONG><A NAME="item_ut_float">ut_float COLUMN</A></STRONG><DD> +<P> +Check/untaint floating point numeric data: 1.1, 1, 1.1e10, 1e10. May not be +null. If there is an error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_ut_number">ut_number COLUMN</A></STRONG><DD> +<P> +Check/untaint simple numeric data (whole numbers). May not be null. If +there is an error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_ut_numbern">ut_numbern COLUMN</A></STRONG><DD> +<P> +Check/untaint simple numeric data (whole numbers). May be null. If there is +an error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_ut_money">ut_money COLUMN</A></STRONG><DD> +<P> +Check/untaint monetary numbers. May be negative. Set to 0 if null. If there +is an error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_ut_text">ut_text COLUMN</A></STRONG><DD> +<P> +Check/untaint text. Alphanumerics, spaces, and the following punctuation +symbols are currently permitted: ! @ # $ % & ( ) - + ; : ' `` , . ? / +May not be null. If there is an error, returns the error, otherwise returns +false. + +<DT><STRONG><A NAME="item_ut_textn">ut_textn COLUMN</A></STRONG><DD> +<P> +Check/untaint text. Alphanumerics, spaces, and the following punctuation +symbols are currently permitted: ! @ # $ % & ( ) - + ; : ' `` , . ? / +May be null. If there is an error, returns the error, otherwise returns +false. + +<DT><STRONG><A NAME="item_ut_alpha">ut_alpha COLUMN</A></STRONG><DD> +<P> +Check/untaint alphanumeric strings (no spaces). May not be null. If there +is an error, returns the error, otherwise returns false. + +<DT><STRONG>ut_alpha COLUMN</STRONG><DD> +<P> +Check/untaint alphanumeric strings (no spaces). May be null. If there is an +error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_ut_phonen">ut_phonen COLUMN</A></STRONG><DD> +<P> +Check/untaint phone numbers. May be null. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_ut_anything">ut_anything COLUMN</A></STRONG><DD> +<P> +Untaints arbitrary data. Be careful. + +<DT><STRONG><A NAME="item_fields">fields [ TABLE ]</A></STRONG><DD> +<P> +This can be used as both a subroutine and a method call. It returns a list +of the columns in this record's table, or an explicitly specified table. +(See <A HREF="../FS/dbdef_table.html">FS::dbdef_table</A>). + +<H1><A NAME="SUBROUTINES">SUBROUTINES</A></H1> +<DL> +<DT><STRONG><A NAME="item_reload_dbdef">reload_dbdef([FILENAME])</A></STRONG><DD> +<P> +Load a database definition (see <A HREF="../FS/dbdef.html">FS::dbdef</A>), optionally from a non-default filename. This command is executed at +startup unless +<EM>$FS::Record::setup_hack</EM> is true. Returns a FS::dbdef object. + +<DT><STRONG><A NAME="item_dbdef">dbdef</A></STRONG><DD> +<P> +Returns the current database definition. See <A HREF="../FS/dbdef.html">FS::dbdef</A>. + +<DT><STRONG><A NAME="item__quote">_quote VALUE, TABLE, COLUMN</A></STRONG><DD> +<P> +This is an internal function used to construct SQL statements. It returns +VALUE DBI-quoted (see <EM>DBI</EM>) unless VALUE is a number and the column type (see <A HREF="../FS/dbdef_column.html">FS::dbdef_column</A>) does not end in `char' or `binary'. + +<DT><STRONG><A NAME="item_hfields">hfields TABLE</A></STRONG><DD> +<P> +This is depriciated. Don't use it. + +<P> +It returns a hash-type list with the fields of this record's table set +true. + +</DL> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: Record.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +This module should probably be renamed, since much of the functionality is +of general use. It is not completely unlike Adapter::DBI (see below). + +<P> +Exported qsearch and qsearchs should be depriciated in favor of method +calls (against an FS::Record object like the old search and searchs that +qsearch and qsearchs were on top of.) + +<P> +The whole fields / hfields mess should be removed. + +<P> +The various WHERE clauses should be subroutined. + +<P> +table string should be depriciated in favor of FS::dbdef_table. + +<P> +No doubt we could benefit from a Tied hash. Documenting how exists / +defined true maps to the database (and WHERE clauses) would also help. + +<P> +The ut_ methods should ask the dbdef for a default length. + +<P> +ut_sqltype (like ut_varchar) should all be defined + +<P> +A fallback check method should be provided whith uses the dbdef. + +<P> +The ut_money method assumes money has two decimal digits. + +<P> +The Pg money kludge in the new method only strips `$'. + +<P> +The ut_phonen method assumes US-style phone numbers. + +<P> +The _quote function should probably use ut_float instead of a regex. + +<P> +All the subroutines probably should be methods, here or elsewhere. + +<P> +Probably should borrow/use some dbdef methods where appropriate (like sub +fields) + +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/dbdef.html">FS::dbdef</A>, <A HREF="../FS/UID.html">FS::UID</A>, <EM>DBI</EM> + + + +<P> +Adapter::DBI from Ch. 11 of Advanced Perl Programming by Sriram Srinivasan. + +</DL> +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/SSH.html b/htdocs/docs/man/FS/SSH.html new file mode 100644 index 000000000..aa8929b09 --- /dev/null +++ b/htdocs/docs/man/FS/SSH.html @@ -0,0 +1,104 @@ +<HTML> +<HEAD> +<TITLE>FS::SSH - Subroutines to call ssh and scp</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#SUBROUTINES">SUBROUTINES</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::SSH - Subroutines to call ssh and scp + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::SSH qw(ssh scp issh iscp sshopen2 sshopen3); +</PRE> +<P> +<PRE> ssh($host, $command); +</PRE> +<P> +<PRE> issh($host, $command); +</PRE> +<P> +<PRE> scp($source, $destination); +</PRE> +<P> +<PRE> iscp($source, $destination); +</PRE> +<P> +<PRE> sshopen2($host, $reader, $writer, $command); +</PRE> +<P> +<PRE> sshopen3($host, $reader, $writer, $error, $command); +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +<PRE> Simple wrappers around ssh and scp commands. +</PRE> +<P> +<HR> +<H1><A NAME="SUBROUTINES">SUBROUTINES</A></H1> +<DL> +<DT><STRONG><A NAME="item_ssh">ssh HOST, COMMAND</A></STRONG><DD> +<P> +Calls ssh in batch mode. + +<DT><STRONG><A NAME="item_issh">issh HOST, COMMAND</A></STRONG><DD> +<P> +Prints the ssh command to be executed, waits for the user to confirm, and +(optionally) executes the command. + +<DT><STRONG><A NAME="item_scp">scp SOURCE, DESTINATION</A></STRONG><DD> +<P> +Calls scp in batch mode. + +<DT><STRONG><A NAME="item_iscp">iscp SOURCE, DESTINATION</A></STRONG><DD> +<P> +Prints the scp command to be executed, waits for the user to confirm, and +(optionally) executes the command. + +<DT><STRONG><A NAME="item_sshopen2">sshopen2 HOST, READER, WRITER, COMMAND</A></STRONG><DD> +<P> +Connects the supplied filehandles to the ssh process (in batch mode). + +<DT><STRONG><A NAME="item_sshopen3">sshopen3 HOST, WRITER, READER, ERROR, COMMAND</A></STRONG><DD> +<P> +Connects the supplied filehandles to the ssh process (in batch mode). + +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +Not OO. + +<P> +scp stuff should transparantly use rsync-over-ssh instead. + +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<EM>ssh</EM>, <EM>scp</EM>, <A HREF="../IPC/Open2.html">IPC::Open2</A>, <A HREF="../IPC/Open3.html">IPC::Open3</A> + + + +</DL> +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/UI/Base.html b/htdocs/docs/man/FS/UI/Base.html new file mode 100644 index 000000000..91a4df64d --- /dev/null +++ b/htdocs/docs/man/FS/UI/Base.html @@ -0,0 +1,117 @@ +<HTML> +<HEAD> +<TITLE>FS::UI::Base - Base class for all user-interface objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> + <LI><A HREF="#HISTORY">HISTORY</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::UI::Base - Base class for all user-interface objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::UI::SomeInterface; + use FS::UI::some_table; +</PRE> +<P> +<PRE> $interface = new FS::UI::some_table; +</PRE> +<P> +<PRE> $error = $interface->browse; + $error = $interface->search; + $error = $interface->view; + $error = $interface->edit; + $error = $interface->process; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::UI::Base object represents a user interface object. FS::UI::Base is +intended as a base class for table-specfic classes to inherit from, i.e. +FS::UI::cust_main. The simplest case, which will provide a default UI for +your new table, is as follows: + +<P> +<PRE> package FS::UI::table_name; + use vars qw ( @ISA ); + use FS::UI::Base; + @ISA = qw( FS::UI::Base ); + sub db_table { 'table_name'; } +</PRE> +<P> +Currently available interfaces are: FS::UI::Gtk, an X-Windows UI +implemented using the Gtk+ toolkit FS::UI::CGI, a web interface implemented +using CGI.pm, etc. + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new</A></STRONG><DD> +<DT><STRONG><A NAME="item_browse">browse</A></STRONG><DD> +<DT><STRONG><A NAME="item_title">title</A></STRONG><DD> +<DT><STRONG><A NAME="item_addwidget">addwidget</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: Base.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +This documentation is incomplete. + +<P> +There should be some sort of per-(freeside)-user preferences and the +ability for specific FS::UI:: modules to put their own values there as +well. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../../FS/UI/Gtk.html">FS::UI::Gtk</A>, <A HREF="../../FS/UI/CGI.html">FS::UI::CGI</A> + + + +<P> +<HR> +<H1><A NAME="HISTORY">HISTORY</A></H1> +<P> +$Log: Base.html,v $ +Revision 1.1 1999-08-04 12:13:27 ivan +new HTML manpages + Revision 1.1 1999/08/04 09:03:53 ivan initial checkin of +module files for proper perl installation + +<P> +Revision 1.1 1999/01/20 09:30:36 ivan skeletal cross-UI UI code. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/UI/CGI.html b/htdocs/docs/man/FS/UI/CGI.html new file mode 100644 index 000000000..c3efdc746 --- /dev/null +++ b/htdocs/docs/man/FS/UI/CGI.html @@ -0,0 +1,115 @@ +<HTML> +<HEAD> +<TITLE>FS::UI::CGI - Base class for CGI user-interface objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> + <LI><A HREF="#HISTORY">HISTORY</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::UI::CGI - Base class for CGI user-interface objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::UI::CGI; + use FS::UI::some_table; +</PRE> +<P> +<PRE> $interface = new FS::UI::some_table; +</PRE> +<P> +<PRE> $error = $interface->browse; + $error = $interface->search; + $error = $interface->view; + $error = $interface->edit; + $error = $interface->process; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::UI::CGI object represents a CGI interface object. + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new</A></STRONG><DD> +<DT><STRONG><A NAME="item__header">_header</A></STRONG><DD> +<DT><STRONG><A NAME="item__footer">_footer</A></STRONG><DD> +<DT><STRONG><A NAME="item_interface">interface</A></STRONG><DD> +<P> +Returns the string `CGI'. Useful for the author of a table-specific UI +class to conditionally specify certain behaviour. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: CGI.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +This documentation is incomplete. + +<P> +In _Tableborder, headers should be links that sort on their fields. + +<P> +_Link uses a constant <CODE>$BASE_URL</CODE> + +<P> +_Link passes the arguments as a manually-constructed GET string instead of +POSTing, for compatability while the web interface is upgraded. Once this +is done it should pass arguements properly (i.e. as a POST, 8-bit clean) + +<P> +Still some small bits of widget code same as FS::UI::Gtk. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../../FS/UI/Base.html">FS::UI::Base</A> + + + +<P> +<HR> +<H1><A NAME="HISTORY">HISTORY</A></H1> +<P> +$Log: CGI.html,v $ +Revision 1.1 1999-08-04 12:13:27 ivan +new HTML manpages + Revision 1.1 1999/08/04 09:03:53 ivan initial checkin of +module files for proper perl installation + +<P> +Revision 1.1 1999/01/20 09:30:36 ivan skeletal cross-UI UI code. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/UI/Gtk.html b/htdocs/docs/man/FS/UI/Gtk.html new file mode 100644 index 000000000..cb2a864ac --- /dev/null +++ b/htdocs/docs/man/FS/UI/Gtk.html @@ -0,0 +1,112 @@ +<HTML> +<HEAD> +<TITLE>FS::UI::Gtk - Base class for Gtk user-interface objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> + <LI><A HREF="#HISTORY">HISTORY</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::UI::Gtk - Base class for Gtk user-interface objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::UI::Gtk; + use FS::UI::some_table; +</PRE> +<P> +<PRE> $interface = new FS::UI::some_table; +</PRE> +<P> +<PRE> $error = $interface->browse; + $error = $interface->search; + $error = $interface->view; + $error = $interface->edit; + $error = $interface->process; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::UI::Gtk object represents a Gtk user interface object. + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new</A></STRONG><DD> +<DT><STRONG><A NAME="item_interface">interface</A></STRONG><DD> +<P> +Returns the string `Gtk'. Useful for the author of a table-specific UI +class to conditionally specify certain behaviour. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: Gtk.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +This documentation is incomplete. + +<P> +_Tableborder is just a _Table now. _Tableborders should scroll (but not the +headers) and need and need more decoration. (data in white section ala +gtksql and sliding field widths) headers should be buttons that callback to +sort on their fields. + +<P> +There should be a persistant, per-(freeside)-user store for window +positions and sizes and sort fields etc (see <A HREF="../../FS/UI/CGI.html#BUGS">BUGS</A>. + +<P> +Still some small bits of widget code same as FS::UI::CGI. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../../FS/UI/Base.html">FS::UI::Base</A> + + + +<P> +<HR> +<H1><A NAME="HISTORY">HISTORY</A></H1> +<P> +$Log: Gtk.html,v $ +Revision 1.1 1999-08-04 12:13:27 ivan +new HTML manpages + Revision 1.1 1999/08/04 09:03:53 ivan initial checkin of +module files for proper perl installation + +<P> +Revision 1.1 1999/01/20 09:30:36 ivan skeletal cross-UI UI code. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/UI/agent.html b/htdocs/docs/man/FS/UI/agent.html new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/htdocs/docs/man/FS/UI/agent.html diff --git a/htdocs/docs/man/FS/UID.html b/htdocs/docs/man/FS/UID.html new file mode 100644 index 000000000..34444623a --- /dev/null +++ b/htdocs/docs/man/FS/UID.html @@ -0,0 +1,160 @@ +<HTML> +<HEAD> +<TITLE>FS::UID - Subroutines for database login and assorted other stuff</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#SUBROUTINES">SUBROUTINES</A> + <LI><A HREF="#CALLBACKS">CALLBACKS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::UID - Subroutines for database login and assorted other stuff + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::UID qw(adminsuidsetup cgisuidsetup dbh datasrc getotaker + checkeuid checkruid swapuid); +</PRE> +<P> +<PRE> adminsuidsetup $user; +</PRE> +<P> +<PRE> $cgi = new CGI; + $dbh = cgisuidsetup($cgi); +</PRE> +<P> +<PRE> $dbh = dbh; +</PRE> +<P> +<PRE> $datasrc = datasrc; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +Provides a hodgepodge of subroutines. + +<P> +<HR> +<H1><A NAME="SUBROUTINES">SUBROUTINES</A></H1> +<DL> +<DT><STRONG><A NAME="item_adminsuidsetup">adminsuidsetup USER</A></STRONG><DD> +<P> +Sets the user to USER (see config.html from the base documentation). Cleans +the environment. Make sure the script is running as freeside, or setuid +freeside. Opens a connection to the database. Swaps real and effective +UIDs. Runs any defined callbacks (see below). Returns the DBI database +handle (usually you don't need this). + +<DT><STRONG><A NAME="item_cgisuidsetup">cgisuidsetup CGI_object</A></STRONG><DD> +<P> +Stores the CGI (see <A HREF=".././FS/CGI.html#">the CGI manpage</A>) object for later use. (CGI::Base is depriciated) Runs adminsuidsetup. + +<DT><STRONG><A NAME="item_cgi">cgi</A></STRONG><DD> +<P> +Returns the CGI (see <A HREF=".././FS/CGI.html#">the CGI manpage</A>) object. + +<DT><STRONG><A NAME="item_dbh">dbh</A></STRONG><DD> +<P> +Returns the DBI database handle. + +<DT><STRONG><A NAME="item_datasrc">datasrc</A></STRONG><DD> +<P> +Returns the DBI data source. + +<DT><STRONG><A NAME="item_getotaker">getotaker</A></STRONG><DD> +<P> +Returns the current Freeside user. + +<DT><STRONG><A NAME="item_cgisetotaker">cgisetotaker</A></STRONG><DD> +<P> +Sets and returns the CGI REMOTE_USER. <A HREF="#item__cgi">$cgi</A> should +be defined as a CGI.pm object. Support for CGI::Base and derived classes is +depriciated. + +<DT><STRONG><A NAME="item_checkeuid">checkeuid</A></STRONG><DD> +<P> +Returns true if effective UID is that of the freeside user. + +<DT><STRONG><A NAME="item_checkruid">checkruid</A></STRONG><DD> +<P> +Returns true if the real UID is that of the freeside user. + +<DT><STRONG><A NAME="item_swapuid">swapuid</A></STRONG><DD> +<P> +Swaps real and effective UIDs. + +<DT><STRONG><A NAME="item_getsecrets">getsecrets [ USER ]</A></STRONG><DD> +<P> +Sets the user to USER, if supplied. Sets and returns the DBI datasource, +username and password for this user from the +`/usr/local/etc/freeside/mapsecrets' file. + +</DL> +<P> +<HR> +<H1><A NAME="CALLBACKS">CALLBACKS</A></H1> +<P> +Warning: this interface is likely to change in future releases. + +<P> +A package can install a callback to be run in adminsuidsetup by putting a +coderef into the hash %FS::UID::callback : + +<P> +<PRE> $coderef = sub { warn "Hi, I'm returning your call!" }; + $FS::UID::callback{'Package::Name'}; +</PRE> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: UID.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +Too many package-global variables. + +<P> +Not OO. + +<P> +No capabilities yet. When mod_perl and Authen::DBI are implemented, +cgisuidsetup will go away as well. + +<P> +Goes through contortions to support non-OO syntax with multiple datasrc's. + +<P> +Callbacks are inelegant. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF=".././FS/CGI.html#">the CGI manpage</A>, <EM>DBI</EM>, config.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/agent.html b/htdocs/docs/man/FS/agent.html new file mode 100644 index 000000000..bdbf019c5 --- /dev/null +++ b/htdocs/docs/man/FS/agent.html @@ -0,0 +1,130 @@ +<HTML> +<HEAD> +<TITLE>FS::agent - Object methods for agent records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::agent - Object methods for agent records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::agent; +</PRE> +<P> +<PRE> $record = new FS::agent \%hash; + $record = new FS::agent { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> $agent_type = $record->agent_type; +</PRE> +<P> +<PRE> $hashref = $record->pkgpart_hashref; + #may purchase $pkgpart if $hashref->{$pkgpart}; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::agent object represents an agent. Every customer has an agent. +Agents can be used to track things like resellers or salespeople. FS::agent +inherits from FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_agemtnum">agemtnum - primary key (assigned automatically for new agents)</A></STRONG><DD> +<DT><STRONG><A NAME="item_agent">agent - Text name of this agent</A></STRONG><DD> +<DT><STRONG><A NAME="item_typenum">typenum - Agent type. See FS::agent_type</A></STRONG><DD> +<DT><STRONG><A NAME="item_prog">prog - For future use.</A></STRONG><DD> +<DT><STRONG><A NAME="item_freq">freq - For future use.</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new agent. To add the agent to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this agent to the database. If there is an error, returns the error, +otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Deletes this agent from the database. Only agents with no customers can be +deleted. If there is an error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid agent. If there is an error, +returns the error, otherwise returns false. Called by the insert and +replace methods. + +<DT><STRONG><A NAME="item_agent_type">agent_type</A></STRONG><DD> +<P> +Returns the FS::agent_type object (see <A HREF="../FS/agent_type.html">FS::agent_type</A>) for this agent. + +<DT><STRONG><A NAME="item_pkgpart_hashref">pkgpart_hashref</A></STRONG><DD> +<P> +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 +<A HREF="../FS/part_pkg.html">FS::part_pkg</A>. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: agent.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/agent_type.html">FS::agent_type</A>, <A HREF="../FS/cust_main.html">FS::cust_main</A>, <A HREF="../FS/part_pkg.html">FS::part_pkg</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/agent_type.html b/htdocs/docs/man/FS/agent_type.html new file mode 100644 index 000000000..25ed652da --- /dev/null +++ b/htdocs/docs/man/FS/agent_type.html @@ -0,0 +1,138 @@ +<HTML> +<HEAD> +<TITLE>FS::agent_type - Object methods for agent_type records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::agent_type - Object methods for agent_type records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::agent_type; +</PRE> +<P> +<PRE> $record = new FS::agent_type \%hash; + $record = new FS::agent_type { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> $hashref = $record->pkgpart_hashref; + #may purchase $pkgpart if $hashref->{$pkgpart}; +</PRE> +<P> +<PRE> @type_pkgs = $record->type_pkgs; +</PRE> +<P> +<PRE> @pkgparts = $record->pkgpart; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::agent_type object represents an agent type. Every agent (see +<A HREF="../FS/agent.html">FS::agent</A>) has an agent type. Agent types define which packages (see +<A HREF="../FS/part_pkg.html">FS::part_pkg</A>) may be purchased by customers (see <A HREF="../FS/cust_main.html">FS::cust_main</A>), via FS::type_pkgs records (see <A HREF="../FS/type_pkgs.html">FS::type_pkgs</A>). FS::agent_type inherits from FS::Record. The following fields are +currently supported: + +<DL> +<DT><STRONG><A NAME="item_typenum">typenum - primary key (assigned automatically for new agent types)</A></STRONG><DD> +<DT><STRONG><A NAME="item_atype">atype - Text name of this agent type</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new agent type. To add the agent type to the database, see +<A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this agent type to the database. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +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. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +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. + +<DT><STRONG><A NAME="item_pkgpart_hashref">pkgpart_hashref</A></STRONG><DD> +<P> +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 +<A HREF="../FS/part_pkg.html">FS::part_pkg</A>. + +<DT><STRONG><A NAME="item_type_pkgs">type_pkgs</A></STRONG><DD> +<P> +Returns all FS::type_pkgs objects (see <A HREF="../FS/type_pkgs.html">FS::type_pkgs</A>) for this agent type. + +<DT><STRONG><A NAME="item_pkgpart">pkgpart</A></STRONG><DD> +<P> +Returns the pkgpart of all package definitions (see <A HREF="../FS/part_pkg.html">FS::part_pkg</A>) for this agent type. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: agent_type.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/agent.html">FS::agent</A>, <A HREF="../FS/type_pkgs.html">FS::type_pkgs</A>, <A HREF="../FS/cust_main.html">FS::cust_main</A>, +<A HREF="../FS/part_pkg.html">FS::part_pkg</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/cust_bill.html b/htdocs/docs/man/FS/cust_bill.html new file mode 100644 index 000000000..c28aa85a1 --- /dev/null +++ b/htdocs/docs/man/FS/cust_bill.html @@ -0,0 +1,184 @@ +<HTML> +<HEAD> +<TITLE>FS::cust_bill - Object methods for cust_bill records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::cust_bill - Object methods for cust_bill records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::cust_bill; +</PRE> +<P> +<PRE> $record = new FS::cust_bill \%hash; + $record = new FS::cust_bill { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> ( $total_previous_balance, @previous_cust_bill ) = $record->previous; +</PRE> +<P> +<PRE> @cust_bill_pkg_objects = $cust_bill->cust_bill_pkg; +</PRE> +<P> +<PRE> ( $total_previous_credits, @previous_cust_credit ) = $record->cust_credit; +</PRE> +<P> +<PRE> @cust_pay_objects = $cust_bill->cust_pay; +</PRE> +<P> +<PRE> @lines = $cust_bill->print_text; + @lines = $cust_bill->print_text $time; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::cust_bill object represents an invoice. FS::cust_bill inherits from +FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_invnum">invnum - primary key (assigned automatically for new invoices)</A></STRONG><DD> +<DT><STRONG><A NAME="item_custnum">custnum - customer (see FS::cust_main)</A></STRONG><DD> +<DT><STRONG><A NAME="item__date">_date - specified as a UNIX timestamp; see perlfunc/"time". Also see +Time::Local and Date::Parse for conversion functions.</A></STRONG><DD> +<DT><STRONG><A NAME="item_charged">charged - amount of this invoice</A></STRONG><DD> +<DT><STRONG><A NAME="item_owed">owed - amount still outstanding on this invoice, which is charged minus +all payments (see FS::cust_pay).</A></STRONG><DD> +<DT><STRONG><A NAME="item_printed">printed - how many times this invoice has been printed automatically +(see FS::cust_main/"collect").</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new invoice. To add the invoice to the database, see <A HREF="#insert">insert</A>. Invoices are normally created by calling the bill method of a customer +object (see <A HREF="../FS/cust_main.html">FS::cust_main</A>). + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this invoice to the database (``Posts'' the invoice). If there is an +error, returns the error, otherwise returns false. + +<P> +When adding new invoices, owed must be charged (or null, in which case it +is automatically set to charged). + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Currently unimplemented. I don't remove invoices because there would then +be no record you ever posted this invoice (which is bad, no?) + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces the OLD_RECORD with this one in the database. If there is an +error, returns the error, otherwise returns false. + +<P> +Only owed and printed may be changed. Owed is normally updated by creating +and inserting a payment (see <A HREF="../FS/cust_pay.html">FS::cust_pay</A>). Printed is normally updated by calling the collect method of a customer +object (see <A HREF="../FS/cust_main.html">FS::cust_main</A>). + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid invoice. If there is an +error, returns the error, otherwise returns false. Called by the insert and +replace methods. + +<DT><STRONG><A NAME="item_previous">previous</A></STRONG><DD> +<P> +Returns a list consisting of the total previous balance for this customer, +followed by the previous outstanding invoices (as FS::cust_bill objects +also). + +<DT><STRONG><A NAME="item_cust_bill_pkg">cust_bill_pkg</A></STRONG><DD> +<P> +Returns the line items (see <A HREF="../FS/cust_bill_pkg.html">FS::cust_bill_pkg</A>) for this invoice. + +<DT><STRONG><A NAME="item_cust_credit">cust_credit</A></STRONG><DD> +<P> +Returns a list consisting of the total previous credited (see +<A HREF="../FS/cust_credit.html">FS::cust_credit</A>) for this customer, followed by the previous outstanding credits +(FS::cust_credit objects). + +<DT><STRONG><A NAME="item_cust_pay">cust_pay</A></STRONG><DD> +<P> +Returns all payments (see <A HREF="../FS/cust_pay.html">FS::cust_pay</A>) for this invoice. + +<DT><STRONG><A NAME="item_print_text">print_text [TIME];</A></STRONG><DD> +<P> +Returns an ASCII invoice, as a list of lines. + +<P> +TIME an optional value used to control the printing of overdue messages. +The default is now. It isn't the date of the invoice; that's the `_date' +field. It is specified as a UNIX timestamp; see <EM>perlfunc</EM>. Also see +<A HREF="../Time/Local.html">Time::Local</A> and <A HREF="../Date/Parse.html">Date::Parse</A> for conversion functions. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: cust_bill.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +The delete method. + +<P> +print_text formatting (and some logic :/) is in source, but needs to be +slurped in from a file. Also number of lines ($=). + +<P> +missing print_ps for a nice postscript copy (maybe HylaFAX-cover-page-style +or something similar so the look can be completely customized?) + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_main.html">FS::cust_main</A>, <A HREF="../FS/cust_pay.html">FS::cust_pay</A>, <A HREF="../FS/cust_bill_pkg.html">FS::cust_bill_pkg</A>, +<A HREF="../FS/cust_credit.html">FS::cust_credit</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/cust_bill_pkg.html b/htdocs/docs/man/FS/cust_bill_pkg.html new file mode 100644 index 000000000..229e88b5f --- /dev/null +++ b/htdocs/docs/man/FS/cust_bill_pkg.html @@ -0,0 +1,119 @@ +<HTML> +<HEAD> +<TITLE>FS::cust_bill_pkg - Object methods for cust_bill_pkg records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::cust_bill_pkg - Object methods for cust_bill_pkg records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::cust_bill_pkg; +</PRE> +<P> +<PRE> $record = new FS::cust_bill_pkg \%hash; + $record = new FS::cust_bill_pkg { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::cust_bill_pkg object represents an invoice line item. +FS::cust_bill_pkg inherits from FS::Record. The following fields are +currently supported: + +<DL> +<DT><STRONG><A NAME="item_invnum">invnum - invoice (see FS::cust_bill)</A></STRONG><DD> +<DT><STRONG><A NAME="item_pkgnum">pkgnum - package (see FS::cust_pkg)</A></STRONG><DD> +<DT><STRONG><A NAME="item_setup">setup - setup fee</A></STRONG><DD> +<DT><STRONG><A NAME="item_recur">recur - recurring fee</A></STRONG><DD> +<DT><STRONG><A NAME="item_sdate">sdate - starting date of recurring fee</A></STRONG><DD> +<DT><STRONG><A NAME="item_edate">edate - ending date of recurring fee</A></STRONG><DD> +</DL> +<P> +sdate and edate are specified as UNIX timestamps; see <EM>perlfunc</EM>. Also see <A HREF="../Time/Local.html">Time::Local</A> and <A HREF="../Date/Parse.html">Date::Parse</A> for conversion functions. + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new line item. To add the line item to the database, see +<A HREF="#insert">insert</A>. Line items are normally created by calling the bill method of a customer +object (see <A HREF="../FS/cust_main.html">FS::cust_main</A>). + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this line item to the database. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Currently unimplemented. I don't remove line items because there would then +be no record the items ever existed (which is bad, no?) + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Currently unimplemented. This would be even more of an accounting nightmare +than deleteing the items. Just don't do it. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid line item. If there is an +error, returns the error, otherwise returns false. Called by the insert +method. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: cust_bill_pkg.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_bill.html">FS::cust_bill</A>, <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>, <A HREF="../FS/cust_main.html">FS::cust_main</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/cust_credit.html b/htdocs/docs/man/FS/cust_credit.html new file mode 100644 index 000000000..5683fcd0d --- /dev/null +++ b/htdocs/docs/man/FS/cust_credit.html @@ -0,0 +1,126 @@ +<HTML> +<HEAD> +<TITLE>FS::cust_credit - Object methods for cust_credit records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::cust_credit - Object methods for cust_credit records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::cust_credit; +</PRE> +<P> +<PRE> $record = new FS::cust_credit \%hash; + $record = new FS::cust_credit { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::cust_credit object represents a credit. FS::cust_credit inherits +from FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_crednum">crednum - primary key (assigned automatically for new credits)</A></STRONG><DD> +<DT><STRONG><A NAME="item_custnum">custnum - customer (see FS::cust_main)</A></STRONG><DD> +<DT><STRONG><A NAME="item_amount">amount - amount of the credit</A></STRONG><DD> +<DT><STRONG><A NAME="item_credited">credited - how much of this credit that is still outstanding, which is +amount minus all refunds (see FS::cust_refund).</A></STRONG><DD> +<DT><STRONG><A NAME="item__date">_date - specified as a UNIX timestamp; see perlfunc/"time". Also see +Time::Local and Date::Parse for conversion functions.</A></STRONG><DD> +<DT><STRONG><A NAME="item_otaker">otaker - order taker (assigned automatically, see FS::UID)</A></STRONG><DD> +<DT><STRONG><A NAME="item_reason">reason - text</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new credit. To add the credit to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this credit to the database (``Posts'' the credit). If there is an +error, returns the error, otherwise returns false. + +<P> +When adding new invoices, credited must be amount (or null, in which case +it is automatically set to amount). + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Currently unimplemented. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces the OLD_RECORD with this one in the database. If there is an +error, returns the error, otherwise returns false. + +<P> +Only credited may be changed. Credited is normally updated by creating and +inserting a refund (see <A HREF="../FS/cust_refund.html">FS::cust_refund</A>). + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid credit. If there is an +error, returns the error, otherwise returns false. Called by the insert and +replace methods. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: cust_credit.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +The delete method. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_refund.html">FS::cust_refund</A>, <A HREF="../FS/cust_bill.html">FS::cust_bill</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/cust_main.html b/htdocs/docs/man/FS/cust_main.html new file mode 100644 index 000000000..5e0b8eef7 --- /dev/null +++ b/htdocs/docs/man/FS/cust_main.html @@ -0,0 +1,277 @@ +<HTML> +<HEAD> +<TITLE>FS::cust_main - Object methods for cust_main records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::cust_main - Object methods for cust_main records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::cust_main; +</PRE> +<P> +<PRE> $record = new FS::cust_main \%hash; + $record = new FS::cust_main { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> @cust_pkg = $record->all_pkgs; +</PRE> +<P> +<PRE> @cust_pkg = $record->ncancelled_pkgs; +</PRE> +<P> +<PRE> $error = $record->bill; + $error = $record->bill %options; + $error = $record->bill 'time' => $time; +</PRE> +<P> +<PRE> $error = $record->collect; + $error = $record->collect %options; + $error = $record->collect 'invoice_time' => $time, + 'batch_card' => 'yes', + 'report_badcard' => 'yes', + ; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::cust_main object represents a customer. FS::cust_main inherits from +FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_custnum">custnum - primary key (assigned automatically for new customers)</A></STRONG><DD> +<DT><STRONG><A NAME="item_agentnum">agentnum - agent (see FS::agent)</A></STRONG><DD> +<DT><STRONG><A NAME="item_refnum">refnum - referral (see FS::part_referral)</A></STRONG><DD> +<DT><STRONG><A NAME="item_first">first - name</A></STRONG><DD> +<DT><STRONG><A NAME="item_last">last - name</A></STRONG><DD> +<DT><STRONG><A NAME="item_ss">ss - social security number (optional)</A></STRONG><DD> +<DT><STRONG><A NAME="item_company">company - (optional)</A></STRONG><DD> +<DT><STRONG><A NAME="item_address1">address1</A></STRONG><DD> +<DT><STRONG><A NAME="item_address2">address2 - (optional)</A></STRONG><DD> +<DT><STRONG><A NAME="item_city">city</A></STRONG><DD> +<DT><STRONG><A NAME="item_county">county - (optional, see FS::cust_main_county)</A></STRONG><DD> +<DT><STRONG><A NAME="item_state">state - (see FS::cust_main_county)</A></STRONG><DD> +<DT><STRONG><A NAME="item_zip">zip</A></STRONG><DD> +<DT><STRONG><A NAME="item_country">country - (see FS::cust_main_county)</A></STRONG><DD> +<DT><STRONG><A NAME="item_daytime">daytime - phone (optional)</A></STRONG><DD> +<DT><STRONG><A NAME="item_night">night - phone (optional)</A></STRONG><DD> +<DT><STRONG><A NAME="item_fax">fax - phone (optional)</A></STRONG><DD> +<DT><STRONG><A NAME="item_payby">payby - `CARD' (credit cards), `BILL' (billing), or `COMP' (free)</A></STRONG><DD> +<DT><STRONG><A NAME="item_payinfo">payinfo - card number, P.O.#, or comp issuer (4-8 lowercase alphanumerics; think username)</A></STRONG><DD> +<DT><STRONG><A NAME="item_paydate">paydate - expiration date, mm/yyyy, m/yyyy, mm/yy or m/yy</A></STRONG><DD> +<DT><STRONG><A NAME="item_payname">payname - name on card or billing name</A></STRONG><DD> +<DT><STRONG><A NAME="item_tax">tax - tax exempt, empty or `Y'</A></STRONG><DD> +<DT><STRONG><A NAME="item_otaker">otaker - order taker (assigned automatically, see FS::UID)</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new customer. To add the customer to the database, see <A HREF="#insert">insert</A>. + +<P> +Note that this stores the hash reference, not a distinct copy of the hash +it points to. You can ask the object for a copy with the <EM>hash</EM> method. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this customer to the database. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete NEW_CUSTNUM</A></STRONG><DD> +<P> +This deletes the customer. If there is an error, returns the error, +otherwise returns false. + +<P> +This will completely remove all traces of the customer record. This is not +what you want when a customer cancels service; for that, cancel all of the +customer's packages (see <A HREF="../FS/cust_pkg.html#cancel">cancel</A>). + +<P> +If the customer has any packages, you need to pass a new (valid) customer +number for those packages to be transferred to. + +<P> +You can't delete a customer with invoices (see <A HREF="../FS/cust_bill.html">FS::cust_bill</A>), or credits (see <A HREF="../FS/cust_credit.html">FS::cust_credit</A>). + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces the OLD_RECORD with this one in the database. If there is an +error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid customer record. If there is +an error, returns the error, otherwise returns false. Called by the insert +and repalce methods. + +<DT><STRONG><A NAME="item_all_pkgs">all_pkgs</A></STRONG><DD> +<P> +Returns all packages (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>) for this customer. + +<DT><STRONG><A NAME="item_ncancelled_pkgs">ncancelled_pkgs</A></STRONG><DD> +<P> +Returns all non-cancelled packages (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>) for this customer. + +<DT><STRONG><A NAME="item_bill">bill OPTIONS</A></STRONG><DD> +<P> +Generates invoices (see <A HREF="../FS/cust_bill.html">FS::cust_bill</A>) for this customer. Usually used in conjunction with the collect method. + +<P> +The only currently available option is `time', which bills the customer as +if it were that time. It is specified as a UNIX timestamp; see +<EM>perlfunc</EM>). Also see <A HREF="../Time/Local.html">Time::Local</A> and <A HREF="../Date/Parse.html">Date::Parse</A> for conversion functions. + +<P> +If there is an error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_collect">collect OPTIONS</A></STRONG><DD> +<P> +(Attempt to) collect money for this customer's outstanding invoices (see +<A HREF="../FS/cust_bill.html">FS::cust_bill</A>). Usually used after the bill method. + +<P> +Depending on the value of `payby', this may print an invoice (`BILL'), +charge a credit card (`CARD'), or just add any necessary (pseudo-)payment +(`COMP'). + +<P> +If there is an error, returns the error, otherwise returns false. + +<P> +Currently available options are: + +<P> +invoice_time - Use this time when deciding when to print invoices and late +notices on those invoices. The default is now. It is specified as a UNIX +timestamp; see <EM>perlfunc</EM>). Also see <A HREF="../Time/Local.html">Time::Local</A> and <A HREF="../Date/Parse.html">Date::Parse</A> +for conversion functions. + +<P> +batch_card - Set this true to batch cards (see <A HREF=".././FS/cust_pay_batch.html#">the cust_pay_batch manpage</A>). By default, cards are processed immediately, which will generate an +error if CyberCash is not installed. + +<P> +report_badcard - Set this true if you want bad card transactions to return +an error. By default, they don't. + +<DT><STRONG><A NAME="item_total_owed">total_owed</A></STRONG><DD> +<P> +Returns the total owed for this customer on all invoices (see <A HREF="../FS/cust_bill.html">FS::cust_bill</A>). + +<DT><STRONG><A NAME="item_total_credited">total_credited</A></STRONG><DD> +<P> +Returns the total credits (see <A HREF="../FS/cust_credit.html">FS::cust_credit</A>) for this customer. + +<DT><STRONG><A NAME="item_balance">balance</A></STRONG><DD> +<P> +Returns the balance for this customer (total owed minus total credited). + +<DT><STRONG><A NAME="item_invoicing_list">invoicing_list [ ARRAYREF ]</A></STRONG><DD> +<P> +If an arguement is given, sets these email addresses as invoice recipients +(see <A HREF="../FS/cust_main_invoice.html">FS::cust_main_invoice</A>). Errors are not fatal and are not reported (except as warnings), so use +check_invoicing_list first. + +<P> +Returns a list of email addresses (with svcnum entries expanded). + +<P> +Note: You can clear the invoicing list by passing an empty ARRAYREF. You +can check it without disturbing anything by passing nothing. + +<P> +This interface may change in the future. + +<DT><STRONG><A NAME="item_check_invoicing_list">check_invoicing_list ARRAYREF</A></STRONG><DD> +<P> +Checks these arguements as valid input for the invoicing_list method. If +there is an error, returns the error, otherwise returns false. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: cust_main.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +The delete method. + +<P> +The delete method should possibly take an FS::cust_main object reference +instead of a scalar customer number. + +<P> +Bill and collect options should probably be passed as references instead of +a list. + +<P> +CyberCash v2 forces us to define some variables in package main. + +<P> +There should probably be a configuration file with a list of allowed credit +card types. + +<P> +CyberCash is the only processor. + +<P> +No multiple currency support (probably a larger project than just this +module). + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>, <A HREF="../FS/cust_bill.html">FS::cust_bill</A>, <A HREF="../FS/cust_credit.html">FS::cust_credit</A> + +<A HREF="../FS/cust_pay_batch.html">FS::cust_pay_batch</A>, <A HREF="../FS/agent.html">FS::agent</A>, <A HREF="../FS/part_referral.html">FS::part_referral</A>, +<A HREF="../FS/cust_main_county.html">FS::cust_main_county</A>, <A HREF="../FS/cust_main_invoice.html">FS::cust_main_invoice</A>, +<A HREF="../FS/UID.html">FS::UID</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/cust_main_county.html b/htdocs/docs/man/FS/cust_main_county.html new file mode 100644 index 000000000..a3c1f400c --- /dev/null +++ b/htdocs/docs/man/FS/cust_main_county.html @@ -0,0 +1,113 @@ +<HTML> +<HEAD> +<TITLE>FS::cust_main_county - Object methods for cust_main_county objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::cust_main_county - Object methods for cust_main_county objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::cust_main_county; +</PRE> +<P> +<PRE> $record = new FS::cust_main_county \%hash; + $record = new FS::cust_main_county { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::cust_main_county object represents a tax rate, defined by locale. +FS::cust_main_county inherits from FS::Record. The following fields are +currently supported: + +<DL> +<DT><STRONG><A NAME="item_taxnum">taxnum - primary key (assigned automatically for new tax rates)</A></STRONG><DD> +<DT><STRONG><A NAME="item_state">state</A></STRONG><DD> +<DT><STRONG><A NAME="item_county">county</A></STRONG><DD> +<DT><STRONG><A NAME="item_country">country</A></STRONG><DD> +<DT><STRONG><A NAME="item_tax">tax - percentage</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new tax rate. To add the tax rate to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this tax rate to the database. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Deletes this tax rate from the database. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces the OLD_RECORD with this one in the database. If there is an +error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid tax rate. If there is an +error, returns the error, otherwise returns false. Called by the insert and +replace methods. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: cust_main_county.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_main.html">FS::cust_main</A>, <A HREF="../FS/cust_bill.html">FS::cust_bill</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/cust_main_invoice.html b/htdocs/docs/man/FS/cust_main_invoice.html new file mode 100644 index 000000000..2fc22b306 --- /dev/null +++ b/htdocs/docs/man/FS/cust_main_invoice.html @@ -0,0 +1,128 @@ +<HTML> +<HEAD> +<TITLE>FS::cust_main_invoice - Object methods for cust_main_invoice records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::cust_main_invoice - Object methods for cust_main_invoice records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::cust_main_invoice; +</PRE> +<P> +<PRE> $record = new FS::cust_main_invoice \%hash; + $record = new FS::cust_main_invoice { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> $email_address = $record->address; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::cust_main_invoice object represents an invoice destination. +FS::cust_main_invoice inherits from FS::Record. The following fields are +currently supported: + +<DL> +<DT><STRONG><A NAME="item_destnum">destnum - primary key</A></STRONG><DD> +<DT><STRONG><A NAME="item_custnum">custnum - customer (see FS::cust_main)</A></STRONG><DD> +<DT><STRONG><A NAME="item_dest">dest - Invoice destination: If numeric, a <a href="#svc_acct">svcnum</a>, if string, a literal email address, or `POST' to enable mailing (the default if no cust_main_invoice records exist)</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new invoice destination. To add the invoice destination to the +database, see <A HREF="#insert">insert</A>. + +<P> +Note that this stores the hash reference, not a distinct copy of the hash +it points to. You can ask the object for a copy with the <EM>hash</EM> method. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this record to the database. If there is an error, returns the error, +otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Delete this record from the database. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces the OLD_RECORD with this one in the database. If there is an +error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid invoice destination. If +there is an error, returns the error, otherwise returns false. Called by +the insert and repalce methods. + +<DT><STRONG><A NAME="item_checkdest">checkdest</A></STRONG><DD> +<P> +Checks the dest field only. + +<DT><STRONG><A NAME="item_address">address</A></STRONG><DD> +<P> +Returns the literal email address for this record (or `POST'). + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: cust_main_invoice.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_main.html">FS::cust_main</A> + + + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/cust_pay.html b/htdocs/docs/man/FS/cust_pay.html new file mode 100644 index 000000000..026745e73 --- /dev/null +++ b/htdocs/docs/man/FS/cust_pay.html @@ -0,0 +1,116 @@ +<HTML> +<HEAD> +<TITLE>FS::cust_pay - Object methods for cust_pay objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::cust_pay - Object methods for cust_pay objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::cust_pay; +</PRE> +<P> +<PRE> $record = new FS::cust_pay \%hash; + $record = new FS::cust_pay { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::cust_pay object represents a payment. FS::cust_pay inherits from +FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_paynum">paynum - primary key (assigned automatically for new payments)</A></STRONG><DD> +<DT><STRONG><A NAME="item_invnum">invnum - Invoice (see FS::cust_bill)</A></STRONG><DD> +<DT><STRONG><A NAME="item_paid">paid - Amount of this payment</A></STRONG><DD> +<DT><STRONG><A NAME="item__date">_date - specified as a UNIX timestamp; see perlfunc/"time". Also see +Time::Local and Date::Parse for conversion functions.</A></STRONG><DD> +<DT><STRONG><A NAME="item_payby">payby - `CARD' (credit cards), `BILL' (billing), or `COMP' (free)</A></STRONG><DD> +<DT><STRONG><A NAME="item_payinfo">payinfo - card number, P.O.#, or comp issuer (4-8 lowercase alphanumerics; think username)</A></STRONG><DD> +<DT><STRONG><A NAME="item_paybatch">paybatch - text field for tracking card processing</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new payment. To add the payment to the databse, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this payment to the databse, and updates the invoice (see +<A HREF="../FS/cust_bill.html">FS::cust_bill</A>). + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Currently unimplemented (accounting reasons). + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Currently unimplemented (accounting reasons). + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid payment. If there is an +error, returns the error, otherwise returns false. Called by the insert +method. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: cust_pay.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +Delete and replace methods. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_bill.html">FS::cust_bill</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/cust_pay_batch.html b/htdocs/docs/man/FS/cust_pay_batch.html new file mode 100644 index 000000000..1a5189e6b --- /dev/null +++ b/htdocs/docs/man/FS/cust_pay_batch.html @@ -0,0 +1,134 @@ +<HTML> +<HEAD> +<TITLE>FS::cust_pay_batch - Object methods for batch cards</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::cust_pay_batch - Object methods for batch cards + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::cust_pay_batch; +</PRE> +<P> +<PRE> $record = new FS::cust_pay_batch \%hash; + $record = new FS::cust_pay_batch { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::cust_pay_batch object represents a credit card transaction ready to +be batched (sent to a processor). FS::cust_pay_batch inherits from +FS::Record. Typically called by the collect method of an FS::cust_main +object. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_trancode">trancode - 77 for charges</A></STRONG><DD> +<DT><STRONG><A NAME="item_cardnum">cardnum</A></STRONG><DD> +<DT><STRONG><A NAME="item_exp">exp - card expiration</A></STRONG><DD> +<DT><STRONG><A NAME="item_amount">amount</A></STRONG><DD> +<DT><STRONG><A NAME="item_invnum">invnum - invoice</A></STRONG><DD> +<DT><STRONG><A NAME="item_custnum">custnum - customer</A></STRONG><DD> +<DT><STRONG><A NAME="item_payname">payname - name on card</A></STRONG><DD> +<DT><STRONG><A NAME="item_first">first - name</A></STRONG><DD> +<DT><STRONG><A NAME="item_last">last - name</A></STRONG><DD> +<DT><STRONG><A NAME="item_address1">address1</A></STRONG><DD> +<DT><STRONG><A NAME="item_address2">address2</A></STRONG><DD> +<DT><STRONG><A NAME="item_city">city</A></STRONG><DD> +<DT><STRONG><A NAME="item_state">state</A></STRONG><DD> +<DT><STRONG><A NAME="item_zip">zip</A></STRONG><DD> +<DT><STRONG><A NAME="item_country">country</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new record. To add the record to the database, see <A HREF="#insert">insert</A>. + +<P> +Note that this stores the hash reference, not a distinct copy of the hash +it points to. You can ask the object for a copy with the <EM>hash</EM> method. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this record to the database. If there is an error, returns the error, +otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Delete this record from the database. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +#inactive # #Replaces the OLD_RECORD with this one in the database. If +there is an error, #returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid transaction. If there is an +error, returns the error, otherwise returns false. Called by the insert and +repalce methods. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: cust_pay_batch.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +There should probably be a configuration file with a list of allowed credit +card types. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/cust_main.html">FS::cust_main</A>, <A HREF="../FS/Record.html">FS::Record</A> + + + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/cust_pkg.html b/htdocs/docs/man/FS/cust_pkg.html new file mode 100644 index 000000000..e105a30df --- /dev/null +++ b/htdocs/docs/man/FS/cust_pkg.html @@ -0,0 +1,254 @@ +<HTML> +<HEAD> +<TITLE>FS::cust_pkg - Object methods for cust_pkg objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#SUBROUTINES">SUBROUTINES</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::cust_pkg - Object methods for cust_pkg objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::cust_pkg; +</PRE> +<P> +<PRE> $record = new FS::cust_pkg \%hash; + $record = new FS::cust_pkg { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> $error = $record->cancel; +</PRE> +<P> +<PRE> $error = $record->suspend; +</PRE> +<P> +<PRE> $error = $record->unsuspend; +</PRE> +<P> +<PRE> $part_pkg = $record->part_pkg; +</PRE> +<P> +<PRE> @labels = $record->labels; +</PRE> +<P> +<PRE> $error = FS::cust_pkg::order( $custnum, \@pkgparts ); + $error = FS::cust_pkg::order( $custnum, \@pkgparts, \@remove_pkgnums ] ); +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::cust_pkg object represents a customer billing item. FS::cust_pkg +inherits from FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_pkgnum">pkgnum - primary key (assigned automatically for new billing items)</A></STRONG><DD> +<DT><STRONG><A NAME="item_custnum">custnum - Customer (see FS::cust_main)</A></STRONG><DD> +<DT><STRONG><A NAME="item_pkgpart">pkgpart - Billing item definition (see FS::part_pkg)</A></STRONG><DD> +<DT><STRONG><A NAME="item_setup">setup - date</A></STRONG><DD> +<DT><STRONG><A NAME="item_bill">bill - date</A></STRONG><DD> +<DT><STRONG><A NAME="item_susp">susp - date</A></STRONG><DD> +<DT><STRONG><A NAME="item_expire">expire - date</A></STRONG><DD> +<DT><STRONG><A NAME="item_cancel">cancel - date</A></STRONG><DD> +<DT><STRONG><A NAME="item_otaker">otaker - order taker (assigned automatically if null, see FS::UID)</A></STRONG><DD> +</DL> +<P> +Note: setup, bill, susp, expire and cancel are specified as UNIX +timestamps; see <EM>perlfunc</EM>. Also see <A HREF="../Time/Local.html">Time::Local</A> and <A HREF="../Date/Parse.html">Date::Parse</A> for conversion functions. + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Create a new billing item. To add the item to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this billing item to the database (``Orders'' the item). If there is +an error, returns the error, otherwise returns false. + +<P> +sub insert { my <CODE>$self</CODE> = shift; + +<P> +<PRE> # custnum might not have have been defined in sub check (for one-shot new + # customers), so check it here instead +</PRE> +<P> +<PRE> my $error = $self->ut_number('custnum'); + return $error if $error +</PRE> +<P> +<PRE> return "Unknown customer" + unless qsearchs( 'cust_main', { 'custnum' => $self->custnum } ); +</PRE> +<P> +<PRE> $self->SUPER::insert; +</PRE> +<P> +} + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Currently unimplemented. You don't want to delete billing items, because +there would then be no record the customer ever purchased the item. +Instead, see the cancel method. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces the OLD_RECORD with this one in the database. If there is an +error, returns the error, otherwise returns false. + +<P> +Currently, custnum, setup, bill, susp, expire, and cancel may be changed. + +<P> +Changing pkgpart may have disasterous effects. See the order subroutine. + +<P> +setup and bill are normally updated by calling the bill method of a +customer object (see <A HREF="../FS/cust_main.html">FS::cust_main</A>). + +<P> +suspend is normally updated by the suspend and unsuspend methods. + +<P> +cancel is normally updated by the cancel method (and also the order +subroutine in some cases). + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid billing item. If there is an +error, returns the error, otherwise returns false. Called by the insert and +replace methods. + +<DT><STRONG>cancel</STRONG><DD> +<P> +Cancels and removes all services (see <A HREF="../FS/cust_svc.html">FS::cust_svc</A> and <A HREF="../FS/part_svc.html">FS::part_svc</A>) in this package, then cancels the package itself (sets the cancel field +to now). + +<P> +If there is an error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_suspend">suspend</A></STRONG><DD> +<P> +Suspends all services (see <A HREF="../FS/cust_svc.html">FS::cust_svc</A> and <A HREF="../FS/part_svc.html">FS::part_svc</A>) in this package, then suspends the package itself (sets the susp field to +now). + +<P> +If there is an error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_unsuspend">unsuspend</A></STRONG><DD> +<P> +Unsuspends all services (see <A HREF="../FS/cust_svc.html">FS::cust_svc</A> and <A HREF="../FS/part_svc.html">FS::part_svc</A>) in this package, then unsuspends the package itself (clears the susp +field). + +<P> +If there is an error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_part_pkg">part_pkg</A></STRONG><DD> +<P> +Returns the definition for this billing item, as an FS::part_pkg object +(see +<A HREF="../FS/part_pkg.html">FS::part_pkg</A>). + +<DT><STRONG><A NAME="item_labels">labels</A></STRONG><DD> +<P> +Returns a list of lists, calling the label method for all services (see <A HREF="../FS/cust_svc.html">FS::cust_svc</A>) of this billing item. + +</DL> +<P> +<HR> +<H1><A NAME="SUBROUTINES">SUBROUTINES</A></H1> +<DL> +<DT><STRONG><A NAME="item_order">order CUSTNUM, PKGPARTS_ARYREF, [ REMOVE_PKGNUMS_ARYREF ]</A></STRONG><DD> +<P> +CUSTNUM is a customer (see <A HREF="../FS/cust_main.html">FS::cust_main</A>) + +<P> +PKGPARTS is a list of pkgparts specifying the the billing item definitions +(see +<A HREF="../FS/part_pkg.html">FS::part_pkg</A>) to order for this customer. Duplicates are of course permitted. + +<P> +REMOVE_PKGNUMS is an optional list of pkgnums specifying the billing items +to remove for this customer. The services (see <A HREF="../FS/cust_svc.html">FS::cust_svc</A>) are moved to the new billing items. An error is returned if this is not +possible (see +<A HREF="../FS/pkg_svc.html">FS::pkg_svc</A>). + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: cust_pkg.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +sub order is not OO. Perhaps it should be moved to FS::cust_main and made +so? + +<P> +In sub order, the <CODE>@pkgparts</CODE> array (passed by reference) is +clobbered. + +<P> +Also in sub order, no money is adjusted. Once FS::part_pkg defines a +standard method to pass dates to the recur_prog expression, it should do +so. + +<P> +FS::svc_acct, FS::svc_acct_sm, and FS::svc_domain are loaded via 'use' at +compile time, rather than via 'require' in sub { setup, suspend, unsuspend, +cancel } because they use %FS::UID::callback to load configuration values. +Probably need a subroutine which decides what to do based on whether or not +we've fetched the user yet, rather than a hash. See FS::UID and the TODO. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_main.html">FS::cust_main</A>, <A HREF="../FS/part_pkg.html">FS::part_pkg</A>, <A HREF="../FS/cust_svc.html">FS::cust_svc</A> +, <A HREF="../FS/pkg_svc.html">FS::pkg_svc</A>, schema.html from the base documentation + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/cust_refund.html b/htdocs/docs/man/FS/cust_refund.html new file mode 100644 index 000000000..f1d106c2f --- /dev/null +++ b/htdocs/docs/man/FS/cust_refund.html @@ -0,0 +1,116 @@ +<HTML> +<HEAD> +<TITLE>FS::cust_refund - Object method for cust_refund objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::cust_refund - Object method for cust_refund objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::cust_refund; +</PRE> +<P> +<PRE> $record = new FS::cust_refund \%hash; + $record = new FS::cust_refund { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::cust_refund represents a refund. FS::cust_refund inherits from +FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_refundnum">refundnum - primary key (assigned automatically for new refunds)</A></STRONG><DD> +<DT><STRONG><A NAME="item_crednum">crednum - Credit (see FS::cust_credit)</A></STRONG><DD> +<DT><STRONG><A NAME="item_refund">refund - Amount of the refund</A></STRONG><DD> +<DT><STRONG><A NAME="item__date">_date - specified as a UNIX timestamp; see perlfunc/"time". Also see +Time::Local and Date::Parse for conversion functions.</A></STRONG><DD> +<DT><STRONG><A NAME="item_payby">payby - `CARD' (credit cards), `BILL' (billing), or `COMP' (free)</A></STRONG><DD> +<DT><STRONG><A NAME="item_payinfo">payinfo - card number, P.O.#, or comp issuer (4-8 lowercase alphanumerics; think username)</A></STRONG><DD> +<DT><STRONG><A NAME="item_otaker">otaker - order taker (assigned automatically, see FS::UID)</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new refund. To add the refund to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this refund to the database, and updates the credit (see +<A HREF="../FS/cust_credit.html">FS::cust_credit</A>). + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Currently unimplemented (accounting reasons). + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Currently unimplemented (accounting reasons). + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid refund. If there is an +error, returns the error, otherwise returns false. Called by the insert +method. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: cust_refund.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +Delete and replace methods. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_credit.html">FS::cust_credit</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/cust_svc.html b/htdocs/docs/man/FS/cust_svc.html new file mode 100644 index 000000000..060fb7fa6 --- /dev/null +++ b/htdocs/docs/man/FS/cust_svc.html @@ -0,0 +1,134 @@ +<HTML> +<HEAD> +<TITLE>FS::cust_svc - Object method for cust_svc objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::cust_svc - Object method for cust_svc objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::cust_svc; +</PRE> +<P> +<PRE> $record = new FS::cust_svc \%hash + $record = new FS::cust_svc { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> ($label, $value) = $record->label; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::cust_svc represents a service. FS::cust_svc inherits from +FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_svcnum">svcnum - primary key (assigned automatically for new services)</A></STRONG><DD> +<DT><STRONG><A NAME="item_pkgnum">pkgnum - Package (see FS::cust_pkg)</A></STRONG><DD> +<DT><STRONG><A NAME="item_svcpart">svcpart - Service definition (see FS::part_svc)</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new service. To add the refund to the database, see <A HREF="#insert">insert</A>. Services are normally created by creating FS::svc_ objects (see +<A HREF="../FS/svc_acct.html">FS::svc_acct</A>, <A HREF="../FS/svc_domain.html">FS::svc_domain</A>, and <A HREF="../FS/svc_acct_sm.html">FS::svc_acct_sm</A>, among others). + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this service to the database. If there is an error, returns the error, +otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Deletes this service from the database. If there is an error, returns the +error, otherwise returns false. + +<P> +Called by the cancel method of the package (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>). + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces the OLD_RECORD with this one in the database. If there is an +error, returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid service. If there is an +error, returns the error, otehrwise returns false. Called by the insert and +replace methods. + +<DT><STRONG><A NAME="item_label">label</A></STRONG><DD> +<P> +Returns a list consisting of: - The name of this service (from part_svc) - +A meaningful identifier (username, domain, or mail alias) - The table name +(i.e. svc_domain) for this service + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: cust_svc.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +Behaviour of changing the svcpart of cust_svc records is undefined and +should possibly be prohibited, and pkg_svc records are not checked. + +<P> +pkg_svc records are not checked in general (here). + +<P> +Deleting this record doesn't check or delete the svc_* record associated +with this record. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>, <A HREF="../FS/part_svc.html">FS::part_svc</A>, <A HREF="../FS/pkg_svc.html">FS::pkg_svc</A>, schema.html from the base documentation + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/dbdef.html b/htdocs/docs/man/FS/dbdef.html new file mode 100644 index 000000000..9b8274b29 --- /dev/null +++ b/htdocs/docs/man/FS/dbdef.html @@ -0,0 +1,97 @@ +<HTML> +<HEAD> +<TITLE>FS::dbdef - Database objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::dbdef - Database objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::dbdef; +</PRE> +<P> +<PRE> $dbdef = new FS::dbdef (@dbdef_table_objects); + $dbdef = load FS::dbdef "filename"; +</PRE> +<P> +<PRE> $dbdef->save("filename"); +</PRE> +<P> +<PRE> $dbdef->addtable($dbdef_table_object); +</PRE> +<P> +<PRE> @table_names = $dbdef->tables; +</PRE> +<P> +<PRE> $FS_dbdef_table_object = $dbdef->table; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +FS::dbdef objects are collections of FS::dbdef_table objects and represnt a +database (a collection of tables). + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new TABLE, TABLE, ...</A></STRONG><DD> +<P> +Creates a new FS::dbdef object + +<DT><STRONG><A NAME="item_load">load FILENAME</A></STRONG><DD> +<P> +Loads an FS::dbdef object from a file. + +<DT><STRONG><A NAME="item_save">save FILENAME</A></STRONG><DD> +<P> +Saves an FS::dbdef object to a file. + +<DT><STRONG><A NAME="item_addtable">addtable TABLE</A></STRONG><DD> +<P> +Adds this FS::dbdef_table object. + +<DT><STRONG><A NAME="item_tables">tables</A></STRONG><DD> +<P> +Returns the names of all tables. + +<DT><STRONG><A NAME="item_table">table TABLENAME</A></STRONG><DD> +<P> +Returns the named FS::dbdef_table object. + +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +Each FS::dbdef object should have a name which corresponds to its name +within the SQL database engine. + +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/dbdef_table.html">FS::dbdef_table</A>, <A HREF="../FS/Record.html">FS::Record</A>, + +</DL> +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/dbdef_colgroup.html b/htdocs/docs/man/FS/dbdef_colgroup.html new file mode 100644 index 000000000..9c4f7f43d --- /dev/null +++ b/htdocs/docs/man/FS/dbdef_colgroup.html @@ -0,0 +1,86 @@ +<HTML> +<HEAD> +<TITLE>FS::dbdef_colgroup - Column group objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::dbdef_colgroup - Column group objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::dbdef_colgroup; +</PRE> +<P> +<PRE> $colgroup = new FS::dbdef_colgroup ( $lol ); + $colgroup = new FS::dbdef_colgroup ( + [ + [ 'single_column' ], + [ 'multiple_columns', 'another_column', ], + ] + ); +</PRE> +<P> +<PRE> @sql_lists = $colgroup->sql_list; +</PRE> +<P> +<PRE> @singles = $colgroup->singles; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +FS::dbdef_colgroup objects represent sets of sets of columns. + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new</A></STRONG><DD> +<P> +Creates a new FS::dbdef_colgroup object. + +<DT><STRONG><A NAME="item_sql_list">sql_list</A></STRONG><DD> +<P> +Returns a flat list of comma-separated values, for SQL statements. + +<DT><STRONG><A NAME="item_singles">singles</A></STRONG><DD> +<P> +Returns a flat list of all single item lists. + +</DL> +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/dbdef_table.html">FS::dbdef_table</A>, <A HREF="../FS/dbdef_unique.html">FS::dbdef_unique</A>, <A HREF="../FS/dbdef_index.html">FS::dbdef_index</A>, +<A HREF="../FS/dbdef_column.html">FS::dbdef_column</A>, <A HREF="../FS/dbdef.html">FS::dbdef</A>, <EM>perldsc</EM> + + + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/dbdef_column.html b/htdocs/docs/man/FS/dbdef_column.html new file mode 100644 index 000000000..c753b52f7 --- /dev/null +++ b/htdocs/docs/man/FS/dbdef_column.html @@ -0,0 +1,118 @@ +<HTML> +<HEAD> +<TITLE>FS::dbdef_column - Column object</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> + <LI><A HREF="#VERSION">VERSION</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::dbdef_column - Column object + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::dbdef_column; +</PRE> +<P> +<PRE> $column_object = new FS::dbdef_column ( $name, $sql_type, '' ); + $column_object = new FS::dbdef_column ( $name, $sql_type, 'NULL' ); + $column_object = new FS::dbdef_column ( $name, $sql_type, '', $length ); + $column_object = new FS::dbdef_column ( $name, $sql_type, 'NULL', $length ); +</PRE> +<P> +<PRE> $name = $column_object->name; + $column_object->name ( 'name' ); +</PRE> +<P> +<PRE> $name = $column_object->type; + $column_object->name ( 'sql_type' ); +</PRE> +<P> +<PRE> $name = $column_object->null; + $column_object->name ( 'NOT NULL' ); +</PRE> +<P> +<PRE> $name = $column_object->length; + $column_object->name ( $length ); +</PRE> +<P> +<PRE> $sql_line = $column->line; + $sql_line = $column->line $datasrc; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +FS::dbdef::column objects represend columns in tables (see <A HREF="../FS/dbdef_table.html">FS::dbdef_table</A>). + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new</A></STRONG><DD> +<P> +Creates a new FS::dbdef_column object. + +<DT><STRONG><A NAME="item_name">name</A></STRONG><DD> +<P> +Returns or sets the column name. + +<DT><STRONG><A NAME="item_type">type</A></STRONG><DD> +<P> +Returns or sets the column type. + +<DT><STRONG><A NAME="item_null">null</A></STRONG><DD> +<P> +Returns or sets the column null flag. + +<DT><STRONG>type</STRONG><DD> +<P> +Returns or sets the column length. + +<DT><STRONG><A NAME="item_line">line [ $datasrc ]</A></STRONG><DD> +<P> +Returns an SQL column definition. + +<P> +If passed a DBI <CODE>$datasrc</CODE> specifying <A HREF="../DBD/mysql.html">DBD::mysql</A> or <A HREF="../DBD/Pg.html">DBD::Pg</A>, will use engine-specific syntax. + +</DL> +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/dbdef_table.html">FS::dbdef_table</A>, <A HREF="../FS/dbdef.html">FS::dbdef</A>, <EM>DBI</EM> + + + +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: dbdef_column.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/dbdef_index.html b/htdocs/docs/man/FS/dbdef_index.html new file mode 100644 index 000000000..7a9e5039e --- /dev/null +++ b/htdocs/docs/man/FS/dbdef_index.html @@ -0,0 +1,58 @@ +<HTML> +<HEAD> +<TITLE>FS::dbdef_unique.pm - Index object</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::dbdef_unique.pm - Index object + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::dbdef_index; +</PRE> +<P> +<PRE> # see FS::dbdef_colgroup methods +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +FS::dbdef_unique objects represent the (non-unique) indices of a table (<A HREF="../FS/dbdef_table.html">FS::dbdef_table</A>). FS::dbdef_unique inherits from FS::dbdef_colgroup. + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +Is this empty subclass needed? + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/dbdef_colgroup.html">FS::dbdef_colgroup</A>, <A HREF="../FS/dbdef_record.html">FS::dbdef_record</A>, <A HREF="../FS/Record.html">FS::Record</A> + + + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/dbdef_table.html b/htdocs/docs/man/FS/dbdef_table.html new file mode 100644 index 000000000..7056b0f9b --- /dev/null +++ b/htdocs/docs/man/FS/dbdef_table.html @@ -0,0 +1,144 @@ +<HTML> +<HEAD> +<TITLE>FS::dbdef_table - Table objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> + <LI><A HREF="#VERSION">VERSION</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::dbdef_table - Table objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::dbdef_table; +</PRE> +<P> +<PRE> $dbdef_table = new FS::dbdef_table ( + "table_name", + "primary_key", + $FS_dbdef_unique_object, + $FS_dbdef_index_object, + @FS_dbdef_column_objects, + ); +</PRE> +<P> +<PRE> $dbdef_table->addcolumn ( $FS_dbdef_column_object ); +</PRE> +<P> +<PRE> $table_name = $dbdef_table->name; + $dbdef_table->name ("table_name"); +</PRE> +<P> +<PRE> $table_name = $dbdef_table->primary_keye; + $dbdef_table->primary_key ("primary_key"); +</PRE> +<P> +<PRE> $FS_dbdef_unique_object = $dbdef_table->unique; + $dbdef_table->unique ( $FS_dbdef_unique_object ); +</PRE> +<P> +<PRE> $FS_dbdef_index_object = $dbdef_table->index; + $dbdef_table->index ( $FS_dbdef_index_object ); +</PRE> +<P> +<PRE> @column_names = $dbdef->columns; +</PRE> +<P> +<PRE> $FS_dbdef_column_object = $dbdef->column; +</PRE> +<P> +<PRE> @sql_statements = $dbdef->sql_create_table; + @sql_statements = $dbdef->sql_create_table $datasrc; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +FS::dbdef_table objects represent a single database table. + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new</A></STRONG><DD> +<P> +Creates a new FS::dbdef_table object. + +<DT><STRONG><A NAME="item_addcolumn">addcolumn</A></STRONG><DD> +<P> +Adds this FS::dbdef_column object. + +<DT><STRONG><A NAME="item_name">name</A></STRONG><DD> +<P> +Returns or sets the table name. + +<DT><STRONG><A NAME="item_primary_key">primary_key</A></STRONG><DD> +<P> +Returns or sets the primary key. + +<DT><STRONG><A NAME="item_unique">unique</A></STRONG><DD> +<P> +Returns or sets the FS::dbdef_unique object. + +<DT><STRONG><A NAME="item_index">index</A></STRONG><DD> +<P> +Returns or sets the FS::dbdef_index object. + +<DT><STRONG><A NAME="item_columns">columns</A></STRONG><DD> +<P> +Returns a list consisting of the names of all columns. + +<DT><STRONG><A NAME="item_column">column "column"</A></STRONG><DD> +<P> +Returns the column object (see <A HREF="../FS/dbdef_column.html">FS::dbdef_column</A>) for ``column''. + +<DT><STRONG><A NAME="item_sql_create_table">sql_create_table [ $datasrc ]</A></STRONG><DD> +<P> +Returns an array of SQL statments to create this table. + +<P> +If passed a DBI <CODE>$datasrc</CODE> specifying <A HREF="../DBD/mysql.html">DBD::mysql</A>, will use MySQL-specific syntax. Non-standard syntax for other engines (if +applicable) may also be supported in the future. + +</DL> +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/dbdef.html">FS::dbdef</A>, <A HREF="../FS/dbdef_unique.html">FS::dbdef_unique</A>, <A HREF="../FS/dbdef_index.html">FS::dbdef_index</A>, <A HREF="../FS/dbdef_unique.html">FS::dbdef_unique</A>, +<EM>DBI</EM> + + + +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: dbdef_table.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/dbdef_unique.html b/htdocs/docs/man/FS/dbdef_unique.html new file mode 100644 index 000000000..73c885c75 --- /dev/null +++ b/htdocs/docs/man/FS/dbdef_unique.html @@ -0,0 +1,58 @@ +<HTML> +<HEAD> +<TITLE>FS::dbdef_unique.pm - Unique object</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::dbdef_unique.pm - Unique object + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::dbdef_unique; +</PRE> +<P> +<PRE> # see FS::dbdef_colgroup methods +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +FS::dbdef_unique objects represent the unique indices of a database table (<A HREF="../FS/dbdef_table.html">FS::dbdef_table</A>). FS::dbdef_unique inherits from FS::dbdef_colgroup. + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +Is this empty subclass needed? + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/dbdef_colgroup.html">FS::dbdef_colgroup</A>, <A HREF="../FS/dbdef_record.html">FS::dbdef_record</A>, <A HREF="../FS/Record.html">FS::Record</A> + + + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/part_pkg.html b/htdocs/docs/man/FS/part_pkg.html new file mode 100644 index 000000000..e36b5840c --- /dev/null +++ b/htdocs/docs/man/FS/part_pkg.html @@ -0,0 +1,152 @@ +<HTML> +<HEAD> +<TITLE>FS::part_pkg - Object methods for part_pkg objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::part_pkg - Object methods for part_pkg objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::part_pkg; +</PRE> +<P> +<PRE> $record = new FS::part_pkg \%hash + $record = new FS::part_pkg { 'column' => 'value' }; +</PRE> +<P> +<PRE> $custom_record = $template_record->clone; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> @pkg_svc = $record->pkg_svc; +</PRE> +<P> +<PRE> $svcnum = $record->svcpart; + $svcnum = $record->svcpart( 'svc_acct' ); +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::part_pkg object represents a billing item definition. FS::part_pkg +inherits from FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_pkgpart">pkgpart - primary key (assigned automatically for new billing item definitions)</A></STRONG><DD> +<DT><STRONG><A NAME="item_pkg">pkg - Text name of this billing item definition (customer-viewable)</A></STRONG><DD> +<DT><STRONG><A NAME="item_comment">comment - Text name of this billing item definition (non-customer-viewable)</A></STRONG><DD> +<DT><STRONG><A NAME="item_setup">setup - Setup fee</A></STRONG><DD> +<DT><STRONG><A NAME="item_freq">freq - Frequency of recurring fee</A></STRONG><DD> +<DT><STRONG><A NAME="item_recur">recur - Recurring fee</A></STRONG><DD> +</DL> +<P> +setup and recur are evaluated as Safe perl expressions. You can use numbers +just as you would normally. More advanced semantics are not yet defined. + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new billing item definition. To add the billing item definition +to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_clone">clone</A></STRONG><DD> +<P> +An alternate constructor. Creates a new billing item definition by +duplicating an existing definition. A new pkgpart is assigned and `(CUSTOM) +' is prepended to the comment field. To add the billing item definition to +the database, see +<A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this billing item definition to the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Currently unimplemented. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid billing item definition. If +there is an error, returns the error, otherwise returns false. Called by +the insert and replace methods. + +<DT><STRONG><A NAME="item_pkg_svc">pkg_svc</A></STRONG><DD> +<P> +Returns all FS::pkg_svc objects (see <A HREF="../FS/pkg_svc.html">FS::pkg_svc</A>) for this package definition. + +<DT><STRONG><A NAME="item_svcpart">svcpart [ SVCDB ]</A></STRONG><DD> +<P> +Returns the svcpart of a single service definition (see <A HREF="../FS/part_svc.html">FS::part_svc</A>) associated with this billing item definition (see <A HREF="../FS/pkg_svc.html">FS::pkg_svc</A>). Returns false if there not exactly one service definition with quantity +1, or if SVCDB is specified and does not match the svcdb of the service +definition, + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: part_pkg.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +The delete method is unimplemented. + +<P> +setup and recur semantics are not yet defined (and are implemented in +FS::cust_bill. hmm.). + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>, <A HREF="../FS/type_pkgs.html">FS::type_pkgs</A>, <A HREF="../FS/pkg_svc.html">FS::pkg_svc</A>, <EM>Safe</EM>. schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/part_referral.html b/htdocs/docs/man/FS/part_referral.html new file mode 100644 index 000000000..b6fd2ce89 --- /dev/null +++ b/htdocs/docs/man/FS/part_referral.html @@ -0,0 +1,113 @@ +<HTML> +<HEAD> +<TITLE>FS::part_referral - Object methods for part_referral objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::part_referral - Object methods for part_referral objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::part_referral; +</PRE> +<P> +<PRE> $record = new FS::part_referral \%hash + $record = new FS::part_referral { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::part_referral represents a referral - where a customer heard of your +services. This can be used to track the effectiveness of a particular piece +of advertising, for example. FS::part_referral inherits from FS::Record. +The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_refnum">refnum - primary key (assigned automatically for new referrals)</A></STRONG><DD> +<DT><STRONG><A NAME="item_referral">referral - Text name of this referral</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new referral. To add the referral to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this referral to the database. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Currently unimplemented. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid referral. If there is an +error, returns the error, otherwise returns false. Called by the insert and +replace methods. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: part_referral.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +The delete method is unimplemented. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_main.html">FS::cust_main</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/part_svc.html b/htdocs/docs/man/FS/part_svc.html new file mode 100644 index 000000000..fedcbd3bf --- /dev/null +++ b/htdocs/docs/man/FS/part_svc.html @@ -0,0 +1,121 @@ +<HTML> +<HEAD> +<TITLE>FS::part_svc - Object methods for part_svc objects</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::part_svc - Object methods for part_svc objects + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::part_svc; +</PRE> +<P> +<PRE> $record = new FS::part_referral \%hash + $record = new FS::part_referral { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::part_svc represents a service definition. FS::part_svc inherits from +FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_svcpart">svcpart - primary key (assigned automatically for new service definitions)</A></STRONG><DD> +<DT><STRONG><A NAME="item_svc">svc - text name of this service definition</A></STRONG><DD> +<DT><STRONG><A NAME="item_svcdb">svcdb - table used for this service. See FS::svc_acct, +FS::svc_domain, and FS::svc_acct_sm, among others.</A></STRONG><DD> +<DT><STRONG><A NAME="item_svcdb_field">svcdb__field - Default or fixed value for field in svcdb.</A></STRONG><DD> +<DT><STRONG><A NAME="item_svcdb_field_flag">svcdb__field_flag - defines svcdb__field action: null, `D' for default, or `F' for fixed</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new service definition. To add the service definition to the +database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this service definition to the database. If there is an error, returns +the error, otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Currently unimplemented. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid service definition. If there +is an error, returns the error, otherwise returns false. Called by the +insert and replace methods. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: part_svc.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +Delete is unimplemented. + +<P> +The list of svc_* tables is hardcoded. When svc_acct_pop is renamed, this +should be fixed. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/part_pkg.html">FS::part_pkg</A>, <A HREF="../FS/pkg_svc.html">FS::pkg_svc</A>, <A HREF="../FS/cust_svc.html">FS::cust_svc</A>, +<A HREF="../FS/svc_acct.html">FS::svc_acct</A>, <A HREF="../FS/svc_acct_sm.html">FS::svc_acct_sm</A>, <A HREF="../FS/svc_domain.html">FS::svc_domain</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/pkg_svc.html b/htdocs/docs/man/FS/pkg_svc.html new file mode 100644 index 000000000..7cd786354 --- /dev/null +++ b/htdocs/docs/man/FS/pkg_svc.html @@ -0,0 +1,125 @@ +<HTML> +<HEAD> +<TITLE>FS::pkg_svc - Object methods for pkg_svc records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::pkg_svc - Object methods for pkg_svc records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::pkg_svc; +</PRE> +<P> +<PRE> $record = new FS::pkg_svc \%hash; + $record = new FS::pkg_svc { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> $part_pkg = $record->part_pkg; +</PRE> +<P> +<PRE> $part_svc = $record->part_svc; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::pkg_svc record links a billing item definition (see <A HREF="../FS/part_pkg.html">FS::part_pkg</A>) to a service definition (see <A HREF="../FS/part_svc.html">FS::part_svc</A>). FS::pkg_svc inherits from FS::Record. The following fields are currently +supported: + +<DL> +<DT><STRONG><A NAME="item_pkgpart">pkgpart - Billing item definition (see FS::part_pkg)</A></STRONG><DD> +<DT><STRONG><A NAME="item_svcpart">svcpart - Service definition (see FS::part_svc)</A></STRONG><DD> +<DT><STRONG><A NAME="item_quantity">quantity - Quantity of this service definition that this billing item +definition includes</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Create a new record. To add the record to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this record to the database. If there is an error, returns the error, +otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Deletes this record from the database. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid record. If there is an +error, returns the error, otherwise returns false. Called by the insert and +replace methods. + +<DT><STRONG><A NAME="item_part_pkg">part_pkg</A></STRONG><DD> +<P> +Returns the FS::part_pkg object (see <A HREF="../FS/part_pkg.html">FS::part_pkg</A>). + +<DT><STRONG><A NAME="item_part_svc">part_svc</A></STRONG><DD> +<P> +Returns the FS::part_svc object (see <A HREF="../FS/part_svc.html">FS::part_svc</A>). + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: pkg_svc.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/part_pkg.html">FS::part_pkg</A>, <A HREF="../FS/part_svc.html">FS::part_svc</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/svc_Common.html b/htdocs/docs/man/FS/svc_Common.html new file mode 100644 index 000000000..d8d81a0a7 --- /dev/null +++ b/htdocs/docs/man/FS/svc_Common.html @@ -0,0 +1,109 @@ +<HTML> +<HEAD> +<TITLE>FS::svc_Common - Object method for all svc_ records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::svc_Common - Object method for all svc_ records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +use FS::svc_Common; + +<P> +<CODE>@ISA</CODE> = <CODE>qw(</CODE> FS::svc_Common ); + +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +FS::svc_Common is intended as a base class for table-specific classes to +inherit from, i.e. FS::svc_acct. FS::svc_Common inherits from FS::Record. + +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this record to the database. If there is an error, returns the error, +otherwise returns false. + +<P> +The additional fields pkgnum and svcpart (see <A HREF="../FS/cust_svc.html">FS::cust_svc</A>) should be defined. An FS::cust_svc record will be created and inserted. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Deletes this account from the database. If there is an error, returns the +error, otherwise returns false. + +<P> +The corresponding FS::cust_svc record will be deleted as well. + +<DT><STRONG><A NAME="item_setfixed">setfixed</A></STRONG><DD> +<P> +Sets any fixed fields for this service (see <A HREF="../FS/part_svc.html">FS::part_svc</A>). If there is an error, returns the error, otherwise returns the +FS::part_svc object (use <CODE>ref()</CODE> to test the return). Usually +called by the check method. + +<DT><STRONG><A NAME="item_setdefault">setdefault</A></STRONG><DD> +<P> +Sets all fields to their defaults (see <A HREF="../FS/part_svc.html">FS::part_svc</A>), overriding their current values. If there is an error, returns the +error, otherwise returns the FS::part_svc object (use <CODE>ref()</CODE> to +test the return). + +<DT><STRONG><A NAME="item_suspend">suspend</A></STRONG><DD> +<DT><STRONG><A NAME="item_unsuspend">unsuspend</A></STRONG><DD> +<DT><STRONG><A NAME="item_cancel">cancel</A></STRONG><DD> +<P> +Stubs - return false (no error) so derived classes don't need to define +these methods. Called by the cancel method of FS::cust_pkg (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>). + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: svc_Common.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +The setfixed method return value. + +<P> +The new method should set defaults from part_svc (like the check method +sets fixed values)? + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/cust_svc.html">FS::cust_svc</A>, <A HREF="../FS/part_svc.html">FS::part_svc</A>, <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/svc_acct.html b/htdocs/docs/man/FS/svc_acct.html new file mode 100644 index 000000000..4b307455e --- /dev/null +++ b/htdocs/docs/man/FS/svc_acct.html @@ -0,0 +1,210 @@ +<HTML> +<HEAD> +<TITLE>FS::svc_acct - Object methods for svc_acct records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::svc_acct - Object methods for svc_acct records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::svc_acct; +</PRE> +<P> +<PRE> $record = new FS::svc_acct \%hash; + $record = new FS::svc_acct { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> $error = $record->suspend; +</PRE> +<P> +<PRE> $error = $record->unsuspend; +</PRE> +<P> +<PRE> $error = $record->cancel; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::svc_acct object represents an account. FS::svc_acct inherits from +FS::svc_Common. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_svcnum">svcnum - primary key (assigned automatcially for new accounts)</A></STRONG><DD> +<DT><STRONG><A NAME="item_username">username</A></STRONG><DD> +<DT><STRONG><A NAME="item__password">_password - generated if blank</A></STRONG><DD> +<DT><STRONG><A NAME="item_popnum">popnum - Point of presence (see FS::svc_acct_pop)</A></STRONG><DD> +<DT><STRONG><A NAME="item_uid">uid</A></STRONG><DD> +<DT><STRONG><A NAME="item_gid">gid</A></STRONG><DD> +<DT><STRONG><A NAME="item_finger">finger - GECOS</A></STRONG><DD> +<DT><STRONG><A NAME="item_dir">dir - set automatically if blank (and uid is not)</A></STRONG><DD> +<DT><STRONG><A NAME="item_shell">shell</A></STRONG><DD> +<DT><STRONG><A NAME="item_quota">quota - (unimplementd)</A></STRONG><DD> +<DT><STRONG><A NAME="item_slipip">slipip - IP address</A></STRONG><DD> +<DT><STRONG><A NAME="item_radius_Radius_Attribute">radius_Radius_Attribute - Radius-Attribute</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new account. To add the account to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this account to the database. If there is an error, returns the error, +otherwise returns false. + +<P> +The additional fields pkgnum and svcpart (see <A HREF="../FS/cust_svc.html">FS::cust_svc</A>) should be defined. An FS::cust_svc record will be created and inserted. + +<P> +If the configuration value (see <A HREF="../FS/Conf.html">FS::Conf</A>) shellmachine exists, and the username, uid, and dir fields are defined, +the command + +<P> +<PRE> useradd -d $dir -m -s $shell -u $uid $username +</PRE> +<P> +is executed on shellmachine via ssh. This behaviour can be surpressed by +setting $FS::svc_acct::nossh_hack true. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Deletes this account from the database. If there is an error, returns the +error, otherwise returns false. + +<P> +The corresponding FS::cust_svc record will be deleted as well. + +<P> +If the configuration value (see <A HREF="../FS/Conf.html">FS::Conf</A>) shellmachine exists, the command: + +<P> +<PRE> userdel $username +</PRE> +<P> +is executed on shellmachine via ssh. This behaviour can be surpressed by +setting $FS::svc_acct::nossh_hack true. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<P> +If the configuration value (see <A HREF="../FS/Conf.html">FS::Conf</A>) shellmachine exists, and the dir field has changed, the command: + +<P> +<PRE> [ -d $old_dir ] && ( + chmod u+t $old_dir; + umask 022; + mkdir $new_dir; + cd $old_dir; + find . -depth -print | cpio -pdm $new_dir; + chmod u-t $new_dir; + chown -R $uid.$gid $new_dir; + rm -rf $old_dir + ) +</PRE> +<P> +is executed on shellmachine via ssh. This behaviour can be surpressed by +setting $FS::svc_acct::nossh_hack true. + +<DT><STRONG><A NAME="item_suspend">suspend</A></STRONG><DD> +<P> +Suspends this account by prefixing *SUSPENDED* to the password. If there is +an error, returns the error, otherwise returns false. + +<P> +Called by the suspend method of FS::cust_pkg (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>). + +<DT><STRONG><A NAME="item_unsuspend">unsuspend</A></STRONG><DD> +<P> +Unsuspends this account by removing *SUSPENDED* from the password. If there +is an error, returns the error, otherwise returns false. + +<P> +Called by the unsuspend method of FS::cust_pkg (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>). + +<DT><STRONG><A NAME="item_cancel">cancel</A></STRONG><DD> +<P> +Just returns false (no error) for now. + +<P> +Called by the cancel method of FS::cust_pkg (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>). + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid service. If there is an +error, returns the error, otherwise returns false. Called by the insert and +replace methods. + +<P> +Sets any fixed values; see <A HREF="../FS/part_svc.html">FS::part_svc</A>. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: svc_acct.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +The remote commands should be configurable. + +<P> +The bits which ssh should fork before doing so. + +<P> +The <CODE>$recref</CODE> stuff in sub check should be cleaned up. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/svc_Common.html">FS::svc_Common</A>, <A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/Conf.html">FS::Conf</A>, <A HREF="../FS/cust_svc.html">FS::cust_svc</A>, +<A HREF="../FS/part_svc.html">FS::part_svc</A>, <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>, <A HREF="../FS/SSH.html">FS::SSH</A>, <EM>ssh</EM>, <A HREF="../FS/svc_acct_pop.html">FS::svc_acct_pop</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/svc_acct_pop.html b/htdocs/docs/man/FS/svc_acct_pop.html new file mode 100644 index 000000000..0deee2eac --- /dev/null +++ b/htdocs/docs/man/FS/svc_acct_pop.html @@ -0,0 +1,115 @@ +<HTML> +<HEAD> +<TITLE>FS::svc_acct_pop - Object methods for svc_acct_pop records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::svc_acct_pop - Object methods for svc_acct_pop records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::svc_acct_pop; +</PRE> +<P> +<PRE> $record = new FS::svc_acct_pop \%hash; + $record = new FS::svc_acct_pop { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::svc_acct object represents an point of presence. FS::svc_acct_pop +inherits from FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_popnum">popnum - primary key (assigned automatically for new accounts)</A></STRONG><DD> +<DT><STRONG><A NAME="item_city">city</A></STRONG><DD> +<DT><STRONG><A NAME="item_state">state</A></STRONG><DD> +<DT><STRONG><A NAME="item_ac">ac - area code</A></STRONG><DD> +<DT><STRONG><A NAME="item_exch">exch - exchange</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new point of presence (if only it were that easy!). To add the +point of presence to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this point of presence to the database. If there is an error, returns +the error, otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Removes this point of presence from the database. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid point of presence. If there +is an error, returns the error, otherwise returns false. Called by the +insert and replace methods. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: svc_acct_pop.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +It should be renamed to part_pop. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF=".././FS/svc_acct.html#">the svc_acct manpage</A>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/svc_acct_sm.html b/htdocs/docs/man/FS/svc_acct_sm.html new file mode 100644 index 000000000..2b8348544 --- /dev/null +++ b/htdocs/docs/man/FS/svc_acct_sm.html @@ -0,0 +1,172 @@ +<HTML> +<HEAD> +<TITLE>FS::svc_acct_sm - Object methods for svc_acct_sm records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::svc_acct_sm - Object methods for svc_acct_sm records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::svc_acct_sm; +</PRE> +<P> +<PRE> $record = new FS::svc_acct_sm \%hash; + $record = new FS::svc_acct_sm { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> $error = $record->suspend; +</PRE> +<P> +<PRE> $error = $record->unsuspend; +</PRE> +<P> +<PRE> $error = $record->cancel; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::svc_acct object represents a virtual mail alias. FS::svc_acct +inherits from FS::Record. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_svcnum">svcnum - primary key (assigned automatcially for new accounts)</A></STRONG><DD> +<DT><STRONG><A NAME="item_domsvc">domsvc - svcnum of the virtual domain (see FS::svc_domain)</A></STRONG><DD> +<DT><STRONG><A NAME="item_domuid">domuid - uid of the target account (see FS::svc_acct)</A></STRONG><DD> +<DT><STRONG><A NAME="item_domuser">domuser - virtual username</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new virtual mail alias. To add the virtual mail alias to the +database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this virtual mail alias to the database. If there is an error, returns +the error, otherwise returns false. + +<P> +The additional fields pkgnum and svcpart (see <A HREF="../FS/cust_svc.html">FS::cust_svc</A>) should be defined. An FS::cust_svc record will be created and inserted. + +<P> +If the configuration values (see <A HREF="../FS/Conf.html">FS::Conf</A>) shellmachine and qmailmachines exist, and domuser is `*' (meaning a +catch-all mailbox), the command: + +<P> +<PRE> [ -e $dir/.qmail-$qdomain-default ] || { + touch $dir/.qmail-$qdomain-default; + chown $uid:$gid $dir/.qmail-$qdomain-default; + } +</PRE> +<P> +is executed on shellmachine via ssh (see <EM>dot-qmail</EM>). This behaviour can be surpressed by setting $FS::svc_acct_sm::nossh_hack +true. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Deletes this virtual mail alias from the database. If there is an error, +returns the error, otherwise returns false. + +<P> +The corresponding FS::cust_svc record will be deleted as well. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_suspend">suspend</A></STRONG><DD> +<P> +Just returns false (no error) for now. + +<P> +Called by the suspend method of FS::cust_pkg (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>). + +<DT><STRONG><A NAME="item_unsuspend">unsuspend</A></STRONG><DD> +<P> +Just returns false (no error) for now. + +<P> +Called by the unsuspend method of FS::cust_pkg (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>). + +<DT><STRONG><A NAME="item_cancel">cancel</A></STRONG><DD> +<P> +Just returns false (no error) for now. + +<P> +Called by the cancel method of FS::cust_pkg (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>). + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid virtual mail alias. If there +is an error, returns the error, otherwise returns false. Called by the +insert and replace methods. + +<P> +Sets any fixed values; see <A HREF="../FS/part_svc.html">FS::part_svc</A>. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: svc_acct_sm.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +The remote commands should be configurable. + +<P> +The <CODE>$recref</CODE> stuff in sub check should be cleaned up. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/Conf.html">FS::Conf</A>, <A HREF="../FS/cust_svc.html">FS::cust_svc</A>, <A HREF="../FS/part_svc.html">FS::part_svc</A>, <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>, +<A HREF="../FS/svc_acct.html">FS::svc_acct</A>, <A HREF="../FS/svc_domain.html">FS::svc_domain</A>, <A HREF="../FS/SSH.html">FS::SSH</A>, <EM>ssh</EM>, <EM>dot-qmail</EM>, schema.html from the base documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/svc_domain.html b/htdocs/docs/man/FS/svc_domain.html new file mode 100644 index 000000000..9b5e1a53c --- /dev/null +++ b/htdocs/docs/man/FS/svc_domain.html @@ -0,0 +1,196 @@ +<HTML> +<HEAD> +<TITLE>FS::svc_domain - Object methods for svc_domain records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::svc_domain - Object methods for svc_domain records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::svc_domain; +</PRE> +<P> +<PRE> $record = new FS::svc_domain \%hash; + $record = new FS::svc_domain { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<PRE> $error = $record->suspend; +</PRE> +<P> +<PRE> $error = $record->unsuspend; +</PRE> +<P> +<PRE> $error = $record->cancel; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::svc_domain object represents a domain. FS::svc_domain inherits from +FS::svc_Common. The following fields are currently supported: + +<DL> +<DT><STRONG><A NAME="item_svcnum">svcnum - primary key (assigned automatically for new accounts)</A></STRONG><DD> +<DT><STRONG><A NAME="item_domain">domain</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Creates a new domain. To add the domain to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this domain to the database. If there is an error, returns the error, +otherwise returns false. + +<P> +The additional fields <EM>pkgnum</EM> and <EM>svcpart</EM> (see <A HREF="../FS/cust_svc.html">FS::cust_svc</A>) should be defined. An FS::cust_svc record will be created and inserted. + +<P> +The additional field <EM>action</EM> should be set to <EM>N</EM> for new domains or <EM>M</EM> +for transfers. + +<P> +A registration or transfer email will be submitted unless +$FS::svc_domain::whois_hack is true. + +<P> +The additional field <EM>email</EM> can be used to manually set the admin contact email address on this email. +Otherwise, the svc_acct records for this package (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>) are searched. If there is exactly one svc_acct record in the same +package, it is automatically used. Otherwise an error is returned. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Deletes this domain from the database. If there is an error, returns the +error, otherwise returns false. + +<P> +The corresponding FS::cust_svc record will be deleted as well. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_suspend">suspend</A></STRONG><DD> +<P> +Just returns false (no error) for now. + +<P> +Called by the suspend method of FS::cust_pkg (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>). + +<DT><STRONG><A NAME="item_unsuspend">unsuspend</A></STRONG><DD> +<P> +Just returns false (no error) for now. + +<P> +Called by the unsuspend method of FS::cust_pkg (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>). + +<DT><STRONG><A NAME="item_cancel">cancel</A></STRONG><DD> +<P> +Just returns false (no error) for now. + +<P> +Called by the cancel method of FS::cust_pkg (see <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>). + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid domain. If there is an +error, returns the error, otherwise returns false. Called by the insert and +replace methods. + +<P> +Sets any fixed values; see <A HREF="../FS/part_svc.html">FS::part_svc</A>. + +<DT><STRONG><A NAME="item_whois">whois</A></STRONG><DD> +<P> +Returns the Net::Whois object corresponding to this domain, or undef if the +domain is not found in whois. + +<P> +(If $FS::svc_domain::whois_hack is true, returns that in all cases +instead.) + +<DT><STRONG><A NAME="item__whois">_whois</A></STRONG><DD> +<P> +Depriciated. + +<DT><STRONG><A NAME="item_submit_internic">submit_internic</A></STRONG><DD> +<P> +Submits a registration email for this domain. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: svc_domain.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +All BIND/DNS fields should be included (and exported). + +<P> +Delete doesn't send a registration template. + +<P> +All registries should be supported. + +<P> +Should change action to a real field. + +<P> +The <CODE>$recref</CODE> stuff in sub check should be cleaned up. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/svc_Common.html">FS::svc_Common</A>, <A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/Conf.html">FS::Conf</A>, <A HREF="../FS/cust_svc.html">FS::cust_svc</A>, +<A HREF="../FS/part_svc.html">FS::part_svc</A>, <A HREF="../FS/cust_pkg.html">FS::cust_pkg</A>, <A HREF="../FS/SSH.html">FS::SSH</A>, <A HREF="../Net/Whois.html">Net::Whois</A>, <EM>ssh</EM>, +<EM>dot-qmail</EM>, schema.html from the base documentation, config.html from the base +documentation. + +</BODY> + +</HTML> diff --git a/htdocs/docs/man/FS/type_pkgs.html b/htdocs/docs/man/FS/type_pkgs.html new file mode 100644 index 000000000..aa55cce9d --- /dev/null +++ b/htdocs/docs/man/FS/type_pkgs.html @@ -0,0 +1,109 @@ +<HTML> +<HEAD> +<TITLE>FS::type_pkgs - Object methods for type_pkgs records</TITLE> +<LINK REV="made" HREF="mailto:ivan@rootwood.sisd.com"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNOPSIS">SYNOPSIS</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#METHODS">METHODS</A> + <LI><A HREF="#VERSION">VERSION</A> + <LI><A HREF="#BUGS">BUGS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +FS::type_pkgs - Object methods for type_pkgs records + +<P> +<HR> +<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1> +<P> +<PRE> use FS::type_pkgs; +</PRE> +<P> +<PRE> $record = new FS::type_pkgs \%hash; + $record = new FS::type_pkgs { 'column' => 'value' }; +</PRE> +<P> +<PRE> $error = $record->insert; +</PRE> +<P> +<PRE> $error = $new_record->replace($old_record); +</PRE> +<P> +<PRE> $error = $record->delete; +</PRE> +<P> +<PRE> $error = $record->check; +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +An FS::type_pkgs record links an agent type (see <A HREF="../FS/agent_type.html">FS::agent_type</A>) to a billing item definition (see <A HREF="../FS/part_pkg.html">FS::part_pkg</A>). FS::type_pkgs inherits from FS::Record. The following fields are +currently supported: + +<DL> +<DT><STRONG><A NAME="item_typenum">typenum - Agent type, see FS::agent_type</A></STRONG><DD> +<DT><STRONG><A NAME="item_pkgpart">pkgpart - Billing item definition, see FS::part_pkg</A></STRONG><DD> +</DL> +<P> +<HR> +<H1><A NAME="METHODS">METHODS</A></H1> +<DL> +<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><DD> +<P> +Create a new record. To add the record to the database, see <A HREF="#insert">insert</A>. + +<DT><STRONG><A NAME="item_insert">insert</A></STRONG><DD> +<P> +Adds this record to the database. If there is an error, returns the error, +otherwise returns false. + +<DT><STRONG><A NAME="item_delete">delete</A></STRONG><DD> +<P> +Deletes this record from the database. If there is an error, returns the +error, otherwise returns false. + +<DT><STRONG><A NAME="item_replace">replace OLD_RECORD</A></STRONG><DD> +<P> +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +<DT><STRONG><A NAME="item_check">check</A></STRONG><DD> +<P> +Checks all fields to make sure this is a valid record. If there is an +error, returns the error, otherwise returns false. Called by the insert and +replace methods. + +</DL> +<P> +<HR> +<H1><A NAME="VERSION">VERSION</A></H1> +<P> +$Id: type_pkgs.html,v 1.1 1999-08-04 12:13:27 ivan Exp $ + +<P> +<HR> +<H1><A NAME="BUGS">BUGS</A></H1> +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<A HREF="../FS/Record.html">FS::Record</A>, <A HREF="../FS/agent_type.html">FS::agent_type</A>, <A HREF="../FS/part_pkgs.html">FS::part_pkgs</A>, schema.html from the base documentation. + +</BODY> + +</HTML> |