summaryrefslogtreecommitdiff
path: root/htdocs/docs
diff options
context:
space:
mode:
Diffstat (limited to 'htdocs/docs')
-rwxr-xr-xhtdocs/docs/CGI-modules-2.76-patch.txt23
-rw-r--r--htdocs/docs/config.html20
-rw-r--r--htdocs/docs/export.html31
-rw-r--r--htdocs/docs/index.html3
-rw-r--r--htdocs/docs/install.html34
-rw-r--r--htdocs/docs/legacy.html4
-rw-r--r--htdocs/docs/man/CGI.txt59
-rw-r--r--htdocs/docs/man/Conf.txt22
-rw-r--r--htdocs/docs/man/Invoice.txt6
-rw-r--r--htdocs/docs/man/Record.txt119
-rw-r--r--htdocs/docs/man/UID.txt81
-rw-r--r--htdocs/docs/man/agent.txt11
-rw-r--r--htdocs/docs/man/agent_type.txt17
-rw-r--r--htdocs/docs/man/cust_bill.txt43
-rw-r--r--htdocs/docs/man/cust_bill_pkg.txt11
-rw-r--r--htdocs/docs/man/cust_credit.txt23
-rw-r--r--htdocs/docs/man/cust_main.txt94
-rw-r--r--htdocs/docs/man/cust_main_county.txt23
-rw-r--r--htdocs/docs/man/cust_main_invoice.txt98
-rw-r--r--htdocs/docs/man/cust_pay.txt20
-rw-r--r--htdocs/docs/man/cust_pay_batch.txt96
-rw-r--r--htdocs/docs/man/cust_pkg.txt78
-rw-r--r--htdocs/docs/man/cust_refund.txt20
-rw-r--r--htdocs/docs/man/cust_svc.txt35
-rw-r--r--htdocs/docs/man/dbdef_column.txt18
-rw-r--r--htdocs/docs/man/dbdef_table.txt9
-rw-r--r--htdocs/docs/man/index.html3
-rw-r--r--htdocs/docs/man/part_pkg.txt28
-rw-r--r--htdocs/docs/man/part_referral.txt17
-rw-r--r--htdocs/docs/man/part_svc.txt23
-rw-r--r--htdocs/docs/man/pkg_svc.txt21
-rw-r--r--htdocs/docs/man/svc_Common.txt75
-rw-r--r--htdocs/docs/man/svc_acct.txt45
-rw-r--r--htdocs/docs/man/svc_acct_pop.txt21
-rw-r--r--htdocs/docs/man/svc_acct_sm.txt13
-rw-r--r--htdocs/docs/man/svc_domain.txt54
-rw-r--r--htdocs/docs/man/type_pkgs.txt20
-rwxr-xr-xhtdocs/docs/postgresql.html23
-rw-r--r--htdocs/docs/schema.html14
-rw-r--r--htdocs/docs/trouble.html13
-rw-r--r--htdocs/docs/upgrade2.html4
-rw-r--r--htdocs/docs/upgrade3.html40
42 files changed, 1170 insertions, 242 deletions
diff --git a/htdocs/docs/CGI-modules-2.76-patch.txt b/htdocs/docs/CGI-modules-2.76-patch.txt
deleted file mode 100755
index 55b50bbbe..000000000
--- a/htdocs/docs/CGI-modules-2.76-patch.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-ivan@rootwood:~/src/CGI-modules-2.76/CGI$ diff -c Base.pm Base.pm.orig
-*** Base.pm Sat Jul 18 00:33:21 1998
---- Base.pm.orig Sat Jul 18 00:06:12 1998
-***************
-*** 938,945 ****
- my $orig_uri = $self->get_uri;
- $self->log("Redirecting $CGI::Base::REQUEST_METHOD $orig_uri to $to_uri")
- if $Debug;
-! my $msg = ($perm) ? StatusHdr(301,"Moved Permanently")
-! : StatusHdr(302,"Moved Temporarily");
- my $hdrs = SendHeaders($msg, LocationHdr($to_uri));
- $self->log($hdrs);
- }
---- 938,945 ----
- my $orig_uri = $self->get_uri;
- $self->log("Redirecting $CGI::Base::REQUEST_METHOD $orig_uri to $to_uri")
- if $Debug;
-! my $msg = ($perm) ? ServerHdr(301,"Moved Permanently")
-! : ServerHdr(302,"Moved Temporarily");
- my $hdrs = SendHeaders($msg, LocationHdr($to_uri));
- $self->log($hdrs);
- }
-
diff --git a/htdocs/docs/config.html b/htdocs/docs/config.html
index 9b8002601..1a30b525e 100644
--- a/htdocs/docs/config.html
+++ b/htdocs/docs/config.html
@@ -3,7 +3,23 @@
</head>
<body>
<h1>Configuration files</h1>
-Configuration files and directories are located in `/var/spool/freeside/conf'.
+Configuration file layout has changed in 1.2.x.
+<ul>
+ <li>First, the file `/usr/local/etc/freeside/mapsecrets' is read. Each line
+in this file contains a username and filename, separated by whitespace. Note
+that these are not local usernames - they are passed from Apache (you _did_
+setup <a href="http://www.apache.org/docs/misc/FAQ.html#user-authentication">
+user authetication</a>, correct?). Filenames are located in
+`/usr/local/etc/freeside/'. The specified filename is parsed exactly
+the same as the pre-1.2.x `secrets' file:
+ <li>Three lines: Database engine datasource (for example,
+ `DBI:mysql:freeside' or `DBI:Pg:dbname=freeside'), username, and password.
+ This file should not be world readable. See the DBI manpage and the manpage
+ for your DBD for the exact syntax.
+</ul>
+All further configuration files and directories are located in
+`/usr/local/etc/freeside/conf.<i>datasource</i>', for example,
+`/usr/local/etc/freeside/conf.DBI:Pg:dbname=freeside'
<ul>
<li>address - Your company name and address, four lines.
<li>bsdshellmachines - Your BSD flavored shell (and mail) machines, one per line. This enables export of `/etc/passwd' and `/etc/master.passwd'.
@@ -12,6 +28,7 @@ Configuration files and directories are located in `/var/spool/freeside/conf'.
<li>domain - Your domain name.
<li>erpcdmachines - Your ERPCD authenticaion machines, one per line. This enables export of `/usr/annex/acp_passwd' and `/usr/annex/acp_dialup'.
<li>home - For new users, prefixed to usrename to create a directory name. Should have a leading but not a trailing slash.
+ <li>invoice_from - Return address on email invoices.
<li>lpr - Print command for paper invoices, for example `lpr -h'.
<li>nismachines - Your NIS master (not slave master) machines, one per line. This enables export of `/etc/global/passwd' and `/etc/global/shadow'.
<li>qmailmachines - Your qmail machines, one per line. This enables export of `/var/qmail/control/virtualdomains', `/var/qmail/control/recipientmap', and `/var/qmail/control/rcpthosts'. The existance of this file (even if empty) also turns on user `.qmail-extension' file maintenance in conjunction with `shellmachine'.
@@ -27,7 +44,6 @@ Configuration files and directories are located in `/var/spool/freeside/conf'.
<li>registries/internic/to - Email address to which InterNIC domain registrations are sent.
</ul>
</ul>
- <li>secrets - Three lines: Database engine datasource (for example, `DBI:mysql:freeside' or `DBI:Pg:dbname=freeside'), username, and password. This file should not be world readable.
<li>sendmailmachines - Your sendmail machines, one per line. This enables export of `/etc/virtusertable' and `/etc/sendmail.cw'.
<li>shellmachine - A single machine with user home directories mounted. This enables home directory creation, renaming and archiving/deletion. In conjunction with `qmailmachines', it also enables `.qmail-extension' file maintenance.
<li>shellmachines - Your Linux and System V flavored shell (and mail) machines, one per line. This enables export of `/etc/passwd' and `/etc/shadow' files.
diff --git a/htdocs/docs/export.html b/htdocs/docs/export.html
index f760b97dd..86a2b4ccd 100644
--- a/htdocs/docs/export.html
+++ b/htdocs/docs/export.html
@@ -4,29 +4,30 @@
<body>
<h1>File exporting</h1>
<ul>
- <li>bin/svc_acct.export will create UNIX `passwd', `shadow' and `master.passwd' files, ERPCD `acp_passwd' and `acp_dialup' files and a RADIUS `users' file in the `/var/spool/freeside/export' directory. Using the appropriate <a href="config.html">configuration files</a>, you can export these files to your remote machines unattended; see below.
+ <li>bin/svc_acct.export will create UNIX <b>passwd</b>, <b>shadow</b> and <b>master.passwd</b> files, ERPCD <b>acp_passwd</b> and <b>acp_dialup</b> files and a RADIUS <b>users</b> file in the <b>/usr/local/etc/freeside/export.<i>datasrc</i></b> directory. Using the appropriate <a href="config.html">configuration files</a>, you can export these files to your remote machines unattended; see below. Some RADIUS servers (such as <a href="http://www.open.com.au/radiator/">Radiator</a>) will authenticate directly out of an SQL database. In these cases,
+it is reccommended that you copy the svc_acct table to an external RADIUS machine rather than run the RADIUS server on your Freeside machine.
<ul>
- <li>shellmachines - passwd and shadow are copied to the remote machine as /etc/passwd.new and /etc/shadow.net and then moved to /etc/passwd and /etc/shadow if no errors occur.
- <li>bsdshellmachines - passwd and master.passwd are copied to the remote machine as /etc/passwd.new and /etc/master.passwd.new and moved to /etc/passwd and /etc/master.passwd if no errors occur.
- <li>nismachines - passwd and shadow are copied to the `/etc/global' directory on the remote machine. If no errors occur, the command `( cd /var/yp; make; )' is executed on the remote machine.
- <li>erpcdmachines - acp_passwd and acp_dialup are copied to the `/usr/annex' directory on the remote machine. If no errors occur, the command `( kill -USR1 `cat /usr/annex/erpcd.pid` )' is executed on the remote machine.
- <li>radiusmachines - users is copied to the `/etc/raddb' directory on the remote machine. If no errors occur, the command `( builddbm )' is executed on the remote machine.
+ <li>shellmachines - <b>passwd</b> and <b>shadow</b> are copied to the remote machine as <b>/etc/passwd.new</b> and <b>/etc/shadow.new</b> and then moved to <b>/etc/passwd</b> and <b>/etc/shadow</b> if no errors occur.
+ <li>bsdshellmachines - <b>passwd</b> and <b>master.passwd</b> are copied to the remote machine as <b>/etc/passwd.new</b> and <b>/etc/master.passwd.new</b> and moved to <b>/etc/passwd</b> and <b>/etc/master.passwd</b> if no errors occur.
+ <li>nismachines - <b>passwd</b> and <b>shadow</b> are copied to the <b>/etc/global</b> directory on the remote machine. If no errors occur, the command <b>( cd /var/yp; make; )</b> is executed on the remote machine.
+ <li>erpcdmachines - <b>acp_passwd</b> and <b>acp_dialup</b> are copied to the <b>/usr/annex</b> directory on the remote machine. If no errors occur, the command <b>( kill -USR1 `cat /usr/annex/erpcd.pid` )</b> is executed on the remote machine.
+ <li>radiusmachines - <b>users</b> is copied to the <b>/etc/raddb</b> directory on the remote machine. If no errors occur, the command <b>( builddbm )</b> is executed on the remote machine.
</ul>
<li>site_perl/svc_acct.pm - If a shellmachine is defined, users can be created, modified and deleted remotely; see below.
<ul>
- <li>The command `useradd -d <i>homedir</i> -s <i>shell</i> -u <i>uid</i> <i>username</i>' is executed when a user is added.
- <li>The command `userdel <i>username</i>' is executed with a user is deleted.
- <li>If a user's home directory changes, the command `[ -d <i>old_homedir</i> &amp;&amp; ( chmod u+t <i>old_homedir</i>; umask 022; mkdir <i>new_homedir</i>; cd <i>old_homedir</i>; find . -depth -print | cpio -pdm <i>new_homedir</i>; chmod u-t <i>new_homedir</i>; chown -R <i>uid</i>.<i>gid</i> <i>new_homedir</i>; rm -rf <i>old_homedir</i> )' is executed.
+ <li>The command <b>useradd -d <i>homedir</i> -s <i>shell</i> -u <i>uid</i> <i>username</i></b> is executed when a user is added.
+ <li>The command <b>userdel <i>username</i></b> is executed with a user is deleted.
+ <li>If a user's home directory changes, the command <b>[ -d <i>old_homedir</i> &amp;&amp; ( chmod u+t <i>old_homedir</i>; umask 022; mkdir <i>new_homedir</i>; cd <i>old_homedir</i>; find . -depth -print | cpio -pdm <i>new_homedir</i>; chmod u-t <i>new_homedir</i>; chown -R <i>uid</i>.<i>gid</i> <i>new_homedir</i>; rm -rf <i>old_homedir</i> )</b> is executed.
</ul>
- <li>bin/svc_acct_sm.export will create <a href="http://www.qmail.org">Qmail</a> `rcpthosts', `recipientmap' and `virtualdomains' files and <a href="http://www.sendmail.org">Sendmail</a> `virtusertable' and `sendmail.cw' files in the `/var/spool/freeside/export' directory. Using the appropriate <a href="config.html">configuration files</a>, you can export these files to your remote machines unattemded; see below.
+ <li>bin/svc_acct_sm.export will create <a href="http://www.qmail.org">Qmail</a> <b>rcpthosts</b>, <b>recipientmap</b> and <b>virtualdomains</b> files and <a href="http://www.sendmail.org">Sendmail</a> <b>virtusertable</b> and <b>sendmail.cw</b> files in the <b>/usr/local/etc/freeside/export.<i>datasrc</i></b> directory. Using the appropriate <a href="config.html">configuration files</a>, you can export these files to your remote machines unattemded; see below.
<ul>
- <li>qmailmachines - recipientmap, virtualdomains and rcpthosts are copied to the `/var/qmail/control' directory on the remote machine. Note: If you <a href="legacy.html#svc_acct_sm">imported</a> qmail configuration files, run the generated `/var/spool/freeside/export/virtualdomains.FIX' on a machine with your user home directories before exporting qmail configuration files.
- <li>shellmachine - The command `[ -e <i>homedir</i>/.qmail-default ] || { touch <i>homedir</i>/.qmail-default; chown <i>uid</i>.<i>gid</i> <i>homedir</i>/.qmail-default; }' will be run on this machine for users in the virtualdomains file.
- <li>sendmailmachines - sendmail.cw and virtusertable are copied to the remote machine as /etc/sendmail.cw.new and /etc/virtusertable.new and moved to /etc/sendmail.cw and /etc/virtusertable if no errors occur.
+ <li>qmailmachines - <b>recipientmap</b>, <b>virtualdomains</b> and <b>rcpthosts</b> are copied to the <b>/var/qmail/control</b> directory on the remote machine. Note: If you <a href="legacy.html#svc_acct_sm">imported</a> qmail configuration files, run the generated <b>/usr/local/etc/freeside/export.<i>datasrc</i>/virtualdomains.FIX</b> on a machine with your user home directories before exporting qmail configuration files.
+ <li>shellmachine - The command <b>[ -e <i>homedir</i>/.qmail-default ] || { touch <i>homedir</i>/.qmail-default; chown <i>uid</i>.<i>gid</i> <i>homedir</i>/.qmail-default; }</b> will be run on this machine for users in the virtualdomains file.
+ <li>sendmailmachines - <b>sendmail.cw</b> and <b>virtusertable</b> are copied to the remote machine as <b>/etc/sendmail.cw.new</b> and <b>/etc/virtusertable.new</b> and moved to <b>/etc/sendmail.cw</b> and <b>/etc/virtusertable</b> if no errors occur.
</ul>
- <li>site_perl/svc_acct_sm.pm - If the qmailmachines configuration file exists and a shellmachine is defined, user `.qmail-' files can be updated.
+ <li>site_perl/svc_acct_sm.pm - If the qmailmachines configuration file exists and a shellmachine is defined, user <b>.qmail-</b> files can be updated.
<ul>
- <li>The command `[ -e <i>homedir</i>/.qmail-<i>domain</i>-default ] || { touch <i>homedir</i>/.qmail-<i>domain</i>-default; chown <i>uid</i>.<i>gid</i> <i>homedir</i>/.qmail-<i>domain</i>-default; }' is run.
+ <li>The command <b>[ -e <i>homedir</i>/.qmail-<i>domain</i>-default ] || { touch <i>homedir</i>/.qmail-<i>domain</i>-default; chown <i>uid</i>.<i>gid</i> <i>homedir</i>/.qmail-<i>domain</i>-default; }</b> is run.
</ul>
</ul>
<br><a name=ssh>Unattended remote login</a> - Freeside can login to remote machines unattended using SSH. This can pose a security risk if not configured correctly, and will allow an intruder who breaks into your freeside machine full access to your remote machines. <b>Do not use this feature unless you understand what you are doing!</b>
diff --git a/htdocs/docs/index.html b/htdocs/docs/index.html
index 20051ca4d..d593a5e3b 100644
--- a/htdocs/docs/index.html
+++ b/htdocs/docs/index.html
@@ -6,7 +6,8 @@
<ul>
<li><a href="install.html">New Installation</a>
<li><a href="upgrade.html">Upgrading from 1.0.x to 1.1.x</a>
- <li><a href="upgrade2.html">Upgrading from 1.1.x to 1.1.3</a>
+ <li><a href="upgrade2.html">Upgrading from 1.1.x to 1.1.4</a>
+ <li><a href="upgrade3.html">Upgrading from 1.1.x to 1.2.x</a>
<li><a href="config.html">Configuration files</a>
<!--
<li><a href="admin.html">Administration</a>
diff --git a/htdocs/docs/install.html b/htdocs/docs/install.html
index c4784ebf6..7aaad14ae 100644
--- a/htdocs/docs/install.html
+++ b/htdocs/docs/install.html
@@ -7,17 +7,18 @@ Before installing, you need:
<ul>
<li>A web server, such as <a href="http://www.apache-ssl.org">Apache-SSL</a> or <a href="http://www.apache.org">Apache</a>
<li><a href="ftp://ftp.cs.hut.fi/pub/ssh/">SSH</a>
- <li>agrep from the <a href="http://glimpse.cs.arizona.edu">Glimpse</a> distribution, if you want fuzzy searching capability
- <li><a href="http://www.perl.com/CPANl/doc/relinfo/INSTALL.html">Perl</a> (at least 5.004_04)
- <li>A database engine supported by Perl's <a href="http://www.hermetica.com/technologia/DBI/">DBI</a>, such as <a href="http://www.tcx.se/">MySQL</a> or <a href="http://www.postgresql.org/">PostgreSQL</a>
+ <li><a href="http://www.perl.com/CPAN/doc/relinfo/INSTALL.html">Perl</a> (at least 5.004_04)
+ <li>A database engine supported by Perl's <a href="http://www.hermetica.com/technologia/DBI/">DBI</a>, such as <a href="http://www.tcx.se/">MySQL</a> or <a href="http://www.postgresql.org/">PostgreSQL</a> (see the <a href="postgresql.html">PostgreSQL notes</a>)
<li>Perl modules
<ul>
+ <li><a href="http://www.perl.com/CPAN/modules/by-module/Array/">Array-PrintCols</a>
+ <li><a href="http://www.perl.com/CPAN/modules/by-module/Term/">Term-Query</a>
<li><a href="http://www.perl.com/CPAN/modules/by-module/MIME/">MIME-Base64</a>
<li><a href="http://www.perl.com/CPAN/modules/by-module/Data">Data-Dumper</a>
<li><a href="http://www.perl.com/CPAN/modules/by-module/MD5">MD5</a>
+ <li><a href="http://www.perl.com/CPAN/modules/by-module/URI">URI</a>
<li><a href="http://www.perl.com/CPAN/modules/by-module/Net">libnet</a>
<li><a href="http://www.perl.com/CPAN/modules/by-module/LWP/">libwww-perl</a>
- <li><a href="http://www.perl.com/CPAN/modules/by-module/CGI/">CGI-modules</a> (<b>NOT</b> CGI.pm) with this <a href="CGI-modules-2.76-patch.txt">patch</a> applied
<li><a href="http://www.perl.com/CPAN/modules/by-module/Business/">Business-CreditCard</a>
<li><a href="http://www.perl.com/CPAN/modules/by-module/Data/">Data-ShowTable</a>
<li><a href="http://www.perl.com/CPAN/modules/by-module/Mail/">MailTools</a>
@@ -25,6 +26,7 @@ Before installing, you need:
<li><a href="http://www.perl.com/CPAN/modules/by-module/Date/">DateManip</a>
<li><a href="http://www.perl.com/CPAN/modules/by-module/File/">File-CounterFile</a>
<li><a href="http://www.perl.com/CPAN/modules/by-module/FreezeThaw/">FreezeThaw</a>
+ <li><a href="http://www.perl.com/CPAN/modules/by-module/String/">String-Approx</a>
<li><a href="http://www.perl.com/CPAN/modules/by-module/DBI/">DBI
<li><a href="http://www.perl.com/CPAN/modules/by-module/DBD/">DBD for your database engine</a>
</ul>
@@ -41,16 +43,24 @@ cp fs-x.y.z/site_perl/* /usr/local/lib/site_perl/FS</pre> or <pre>ln -s /full/pa
cp -r fs-x.y.z/htdocs/* /usr/local/apache/htdocs/freeside</pre> or <pre>ln -s /full/path/to/fs-x.y.z/htdocs /usr/local/apache/htdocs/freeside</pre>
<li>Restrict access to this web interface. (with <a href="http://www.apache.org/docs/misc/FAQ.html#user-authentication">Apache</a>)
<li>Enable CGI execution for files with the `.cgi' extension. (with <a href="http://www.apache.org/docs/mod/mod_mime.html#addhandler">Apache</a>)
- <li>Set ownership and permissions for the web interface. Your system should support secure setuid scripts or Perl's emulation, see <a href="http://www.perl.com/CPAN-local/doc/manual/html/pod/perlsec.html#Security_Bugs">perlsec: Security Bugs</a> for information and workarounds.
+ <li>Set ownership and permissions for the web interface. The web interface needs to run as the freeside user - there are several ways to do this.
+ <ul>
+ <li>Use Perl's setuid emulation: see the <a href="http://www.perl.com/CPAN-local/doc/manual/html/pod/perlsec.html#Security_Bugs">Security Bugs</a> section of the <a href="http://www.perl.com/CPAN-local/doc/manual/html/pod/perlsec.html">perlsec</a> manpage.
<pre>cd /usr/local/apache/htdocs/freeside
chown -R freeside .
chmod 4755 browse/*.cgi edit/*.cgi edit/process/*.cgi misc/*.cgi misc/process/*.cgi search/*.cgi view/*.cgi</pre>
-<li>Create the base Freeside directory `/var/spool/freeside', and the subdirectories `conf', `counters', and `export'. <pre>mkdir /var/spool/freeside
-mkdir /var/spool/freeside/conf
-mkdir /var/spool/freeside/counters
-mkdir /var/spool/freeside/export
-chown -R freeside /var/spool/freeside</pre>
- <li>Create the necessary <a href="config.html">configuration files</a>.
- <li>Run bin/fs-setup to create the database tables.
+ <li>Use Apache's <a href="http://www.apache.org/docs/suexec.html">suEXEC</a>.
+<pre>cd /usr/local/apache/htdocs/freeside
+chown -R freeside .
+chmod 755 browse/*.cgi edit/*.cgi edit/process/*.cgi misc/*.cgi misc/process/*.cgi search/*.cgi view/*.cgi</pre>
+ <li>Use <a href="http://perl.apache.org/">mod_perl</a>. You should run a separate iteration of Apache[-SSL] as the freeside user. (Warning: The redirect method of CGI.pm 2.36 [as distributed with Perl 5.004_04] is broken under mod_perl. Downlaod the current version from <a href="http://www.perl.com/CPAN/modules/by-module/CGI">CPAN</a>. Apache 1.3.6 is also highly recommended because of signal handling problems in earlier versions.)
+<pre>cd /usr/local/apache/htdocs/freeside
+chown -R root .
+chmod 755 browse/*.cgi edit/*.cgi edit/process/*.cgi misc/*.cgi misc/process/*.cgi search/*.cgi view/*.cgi</pre>
+ </ul>
+<li>Create the necessary <a href="config.html">configuration files</a>.
+<li>Create the `/usr/local/etc/freeside/counters.<i>datasrc</i>', and
+ `/usr/local/etc/freeside/export.<i>datasrc</i>' directories for each <i>datasrc</i> (owned by the freeside user).
+ <li>As the freeside user, run bin/fs-setup to create the database tables.
</ul>
</body>
diff --git a/htdocs/docs/legacy.html b/htdocs/docs/legacy.html
index 40e09cb3c..3ab21dab2 100644
--- a/htdocs/docs/legacy.html
+++ b/htdocs/docs/legacy.html
@@ -4,7 +4,7 @@
<body>
<h1>Importing legacy data</h1>
<ul>
- <li><a name="svc_acct">bin/svc_acct.import</a> - Import `passwd', ( `shadow' or `master.passwd' ) and RADIUS `users'. Before running bin/svc_acct.import, you need <a href="http://rootwood.sisd.com/freeside/browse/part_svc.cgi">services</a> (with table svc_acct) as follows:
+ <li><a name="svc_acct">bin/svc_acct.import</a> - Import `passwd', ( `shadow' or `master.passwd' ) and RADIUS `users'. Before running bin/svc_acct.import, you need <a href="../browse/part_svc.cgi">services</a> (with table svc_acct) as follows:
<ul>
<li>Most accounts probably have entries in passwd and users (with Port-Limit nonexistant or 1)
<li>Some accounts have entries in passwd and users, but with Port-Limit 2 (or more)
@@ -13,7 +13,7 @@
<li>POP mail accounts have entries in passwd only, and have a particular shell.
<li>Everything else in passwd is a shell account.
</ul>
- <li><a name="svc_acct_sm">bin/svc_acct_sm.import</a> - Import qmail ( `virtualdomains' and `rcpthosts' ), or sendmail ( `virtusertable' and `sendmail.cw' ) files. Before running bin/svc_acct_sm.import, you need <a href="http://rootwood.sisd.com/freeside/browse/part_svc.cgi">services</a> as follows:
+ <li><a name="svc_acct_sm">bin/svc_acct_sm.import</a> - Import qmail ( `virtualdomains' and `rcpthosts' ), or sendmail ( `virtusertable' and `sendmail.cw' ) files. Before running bin/svc_acct_sm.import, you need <a href="../browse/part_svc.cgi">services</a> as follows:
<ul>
<li>Domain (table svc_acct)
<li>Mail alias (table svc_acct_sm)
diff --git a/htdocs/docs/man/CGI.txt b/htdocs/docs/man/CGI.txt
index 54f9b8a6a..c8eb4ff23 100644
--- a/htdocs/docs/man/CGI.txt
+++ b/htdocs/docs/man/CGI.txt
@@ -2,7 +2,7 @@ NAME
FS::CGI - Subroutines for the web interface
SYNOPSIS
- use FS::CGI qw(header menubar idiot eidiot);
+ use FS::CGI qw(header menubar idiot eidiot popurl);
print header( 'Title', '' );
print header( 'Title', menubar('item', 'URL', ... ) );
@@ -10,6 +10,9 @@ SYNOPSIS
idiot "error message";
eidiot "error message";
+ $url = popurl; #returns current url
+ $url = popurl(3); #three levels up
+
DESCRIPTION
Provides a few common subroutines for the web interface.
@@ -21,20 +24,35 @@ SUBROUTINES
Returns an HTML menubar.
idiot ERROR
+ This is depriciated. Don't use it.
+
Sends headers and an HTML error message.
eidiot ERROR
+ This is depriciated. Don't use it.
+
Sends headers and an HTML error message, then exits.
+ popurl LEVEL
+ Returns current URL with LEVEL levels of path removed from
+ the end (default 0).
+
+ table
+ Returns HTML tag for beginning a table.
+
+ itable
+ Returns HTML tag for beginning an (invisible) table.
+
+ ntable
+ This is getting silly.
+
BUGS
Not OO.
Not complete.
- Uses CGI-modules instead of CGI.pm
-
SEE ALSO
- the CGI::Base manpage
+ the CGI manpage, the CGI::Base manpage
HISTORY
subroutines for the HTML/CGI GUI, not properly OO. :(
@@ -45,3 +63,36 @@ HISTORY
pod ivan@sisd.com 98-sep-12
+ $Log: CGI.txt,v $
+ Revision 1.4 1999-04-08 13:39:31 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.17 1999/02/07 09:59:43 ivan more
+ mod_perl fixes, and bugfixes Peter Wemm sent via email
+
+ Revision 1.16 1999/01/25 12:26:05 ivan yet more mod_perl stuff
+
+ Revision 1.15 1999/01/18 09:41:48 ivan all $cgi->header calls
+ now include ( '-expires' => 'now' ) for mod_perl (good idea
+ anyway)
+
+ Revision 1.14 1999/01/18 09:22:37 ivan changes to track email
+ addresses for email invoicing
+
+ Revision 1.12 1998/12/23 02:23:16 ivan popurl always has
+ trailing slash
+
+ Revision 1.11 1998/11/12 07:43:54 ivan *** empty log message ***
+
+ Revision 1.10 1998/11/12 01:53:47 ivan added table command
+
+ Revision 1.9 1998/11/09 08:51:49 ivan bug squash
+
+ Revision 1.7 1998/11/09 06:10:59 ivan added sub url
+
+ Revision 1.6 1998/11/09 05:44:20 ivan *** empty log message ***
+
+ Revision 1.4 1998/11/09 04:55:42 ivan support depriciated
+ CGI::Base as well as CGI.pm (for now)
+
+ Revision 1.3 1998/11/08 10:50:19 ivan s/CGI::Base/CGI/; etc.
+
diff --git a/htdocs/docs/man/Conf.txt b/htdocs/docs/man/Conf.txt
index c46c9ee6a..01b7cf5e6 100644
--- a/htdocs/docs/man/Conf.txt
+++ b/htdocs/docs/man/Conf.txt
@@ -4,8 +4,10 @@ NAME
SYNOPSIS
use FS::Conf;
+ $conf = new FS::Conf "/config/directory";
+
+ $FS::Conf::default_dir = "/config/directory";
$conf = new FS::Conf;
- $conf = new FS::Conf "/non/standard/config/directory";
$dir = $conf->dir;
@@ -19,8 +21,8 @@ DESCRIPTION
METHODS
new [ DIRECTORY ]
- Create a new configuration object. Optionally, a non-default
- directory may be specified.
+ Create a new configuration object. A directory arguement is
+ required if $FS::Conf::default_dir has not been set.
dir Returns the directory.
@@ -33,9 +35,6 @@ METHODS
corresponding value is undefined.
BUGS
- The option to specify a non-default directory should probably be
- removed.
-
Write access (with locking) should be implemented.
SEE ALSO
@@ -45,3 +44,14 @@ SEE ALSO
HISTORY
Ivan Kohler <ivan@sisd.com> 98-sep-6
+ sub exists forgot to fetch $dir ivan@sisd.com 98-sep-27
+
+ $Log: Conf.txt,v $
+ Revision 1.5 1999-04-08 13:39:31 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.3 1999/03/29 01:29:33 ivan die
+ unless the configuration directory exists
+
+ Revision 1.2 1998/11/13 04:08:44 ivan no default default_dir
+ (ironic)
+
diff --git a/htdocs/docs/man/Invoice.txt b/htdocs/docs/man/Invoice.txt
index 17953d51d..d0ca37fd0 100644
--- a/htdocs/docs/man/Invoice.txt
+++ b/htdocs/docs/man/Invoice.txt
@@ -2,7 +2,7 @@ NAME
FS::Invoice - Legacy stub
SYNOPSIS
- The functioanlity of FS::invoice has been integrated in
+ The functionality of FS::Invoice has been integrated in
FS::cust_bill.
HISTORY
@@ -21,3 +21,7 @@ HISTORY
=< 0 return address comes from /var/spool/freeside/conf/address
ivan@sisd.com 98-jul-2
+ pod ivan@sisd.com 98-sep-20something
+
+ s/ISA/@ISA/ in use vars ivan@sisd.com 98-sep-27
+
diff --git a/htdocs/docs/man/Record.txt b/htdocs/docs/man/Record.txt
index 0accb65d1..1708e3c67 100644
--- a/htdocs/docs/man/Record.txt
+++ b/htdocs/docs/man/Record.txt
@@ -3,7 +3,7 @@ NAME
SYNOPSIS
use FS::Record;
- use FS::Record qw(dbh fields hfields qsearch qsearchs dbdef);
+ use FS::Record qw(dbh fields qsearch qsearchs dbdef);
$record = new FS::Record 'table', \%hash;
$record = new FS::Record 'table', { 'column' => 'value', ... };
@@ -28,11 +28,14 @@ SYNOPSIS
$hashref = $record->hashref;
- $error = $record->add;
+ $error = $record->insert;
+ #$error = $record->add; #depriciated
- $error = $record->del;
+ $error = $record->delete;
+ #$error = $record->del; #depriciated
- $error = $new_record->rep($old_record);
+ $error = $new_record->replace($old_record);
+ #$error = $new_record->rep($old_record); #depriciated
$value = $record->unique('column');
@@ -57,7 +60,8 @@ SYNOPSIS
$fields = hfields('table');
if ( $fields->{Field} ) { # etc.
- @fields = fields 'table';
+ @fields = fields 'table'; #as a subroutine
+ @fields = $record->fields; #as a method call
DESCRIPTION
(Mostly) object-oriented interface to database records. Records
@@ -65,28 +69,32 @@ DESCRIPTION
as a base class for table-specific classes to inherit from, i.e.
FS::cust_main.
-METHODS
- new TABLE, HASHREF
+CONSTRUCTORS
+ new [ TABLE, ] HASHREF
Creates a new record. It doesn't store it in the database,
- though. See the section on "add" for that.
+ though. See the section on "insert" for that.
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 *hash* method.
+ TABLE can only be omitted when a dervived class overrides
+ the table method.
+
qsearch TABLE, HASHREF
Searches the database for all records matching (at least)
the key/value pairs in HASHREF. Returns all the records
- found as FS::Record objects.
+ found as `FS::TABLE' objects if that module is loaded (i.e.
+ via `use FS::cust_main;'), otherwise returns FS::Record
+ objects.
qsearchs TABLE, HASHREF
- Searches the database for a record matching (at least) the
- key/value pairs in HASHREF, and returns the record found as
- an FS::Record object. If more than one record matches, it
- carps but returns the first. If this happens, you either
- made a logic error in asking for a single item, or your data
- is corrupted.
+ Same as qsearch, except that if more than one record
+ matches, it carps but returns the first. If this happens,
+ you either made a logic error in asking for a single item,
+ or your data is corrupted.
+METHODS
table
Returns the table name.
@@ -118,17 +126,29 @@ METHODS
hashref
Returns a reference to the column/value hash.
- add Adds this record to the database. If there is an error, returns
- the error, otherwise returns false.
+ insert
+ Inserts this record to the database. If there is an error,
+ returns the error, otherwise returns false.
+
+ add Depriciated (use insert instead).
- del Delete this record from the database. If there is an error,
+ delete
+ Delete this record from the database. If there is an error,
returns the error, otherwise returns false.
- rep OLD_RECORD
+ del Depriciated (use delete instead).
+
+ replace OLD_RECORD
Replace the OLD_RECORD with this one in the database. If
there is an error, returns the error, otherwise returns
false.
+ rep Depriciated (use replace instead).
+
+ check
+ Not yet implemented, croaks. Derived classes should provide
+ a check method.
+
unique COLUMN
Replaces COLUMN in record with a unique number. Called by
the add method on primary keys and single-field unique
@@ -184,6 +204,11 @@ METHODS
ut_anything COLUMN
Untaints arbitrary data. Be careful.
+ fields [ TABLE ]
+ 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 the dbdef_table manpage).
+
SUBROUTINES
reload_dbdef([FILENAME])
Load a database definition (see the FS::dbdef manpage),
@@ -207,9 +232,8 @@ SUBROUTINES
It returns a hash-type list with the fields of this
record's table set true.
- fields TABLE
- This returns a list of the columns in this record's
- table (See the dbdef_table manpage).
+VERSION
+ $Id: Record.txt,v 1.5 1999-04-08 13:39:31 ivan Exp $
BUGS
This module should probably be renamed, since much of the
@@ -236,7 +260,7 @@ BUGS
ut_sqltype (like ut_varchar) should all be defined
- A fallback check method should be provided with uses the
+ A fallback check method should be provided whith uses the
dbdef.
The ut_money method assumes money has two decimal digits.
@@ -251,6 +275,9 @@ BUGS
All the subroutines probably should be methods, here or
elsewhere.
+ Probably should borrow/use some dbdef methods where
+ appropriate (like sub fields)
+
SEE ALSO
the FS::dbdef manpage, the FS::UID manpage, the DBI manpage
@@ -330,3 +357,49 @@ HISTORY
added pod documentation ivan@sisd.com 98-sep-6
+ ut_phonen got ''; at the end ivan@sisd.com 98-sep-27
+
+ $Log: Record.txt,v $
+ Revision 1.5 1999-04-08 13:39:31 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.15 1999/04/08 12:08:59 ivan
+ fix up PostgreSQL money fields so you can actually use them
+ as numbers. bah.
+
+ Revision 1.14 1999/04/07 14:58:31 ivan more kludges to get
+ around different null/empty handling in Perl vs. MySQL vs.
+ PostgreSQL etc.
+
+ Revision 1.13 1999/03/29 11:55:43 ivan eliminate warnings in
+ ut_money
+
+ Revision 1.12 1999/01/25 12:26:06 ivan yet more mod_perl
+ stuff
+
+ Revision 1.11 1999/01/18 09:22:38 ivan changes to track
+ email addresses for email invoicing
+
+ Revision 1.10 1998/12/29 11:59:33 ivan mostly properly OO,
+ some work still to be done with svc_ stuff
+
+ Revision 1.9 1998/11/21 07:26:45 ivan "Records identical"
+ carp tells us it is just a warning.
+
+ Revision 1.8 1998/11/15 11:02:04 ivan bugsquash
+
+ Revision 1.7 1998/11/15 10:56:31 ivan qsearch gets sames "IS
+ NULL" semantics as other WHERE clauses
+
+ Revision 1.6 1998/11/15 05:31:03 ivan bugfix for new config
+ layout
+
+ Revision 1.5 1998/11/13 09:56:51 ivan change configuration
+ file layout to support multiple distinct databases (with own
+ set of config files, export, etc.)
+
+ Revision 1.4 1998/11/10 07:45:25 ivan doc clarification
+
+ Revision 1.2 1998/11/07 05:17:18 ivan In sub new, Pg wrapper
+ for money fields from dbdef (FS::Record::fields $table), not
+ keys of supplied hashref.
+
diff --git a/htdocs/docs/man/UID.txt b/htdocs/docs/man/UID.txt
index bf9f6b4bd..efe3b6670 100644
--- a/htdocs/docs/man/UID.txt
+++ b/htdocs/docs/man/UID.txt
@@ -6,10 +6,9 @@ SYNOPSIS
use FS::UID qw(adminsuidsetup cgisuidsetup dbh datasrc getotaker
checkeuid checkruid swapuid);
- adminsuidsetup;
+ adminsuidsetup $user;
- $cgi = new CGI::Base;
- $cgi->get;
+ $cgi = new CGI;
$dbh = cgisuidsetup($cgi);
$dbh = dbh;
@@ -20,20 +19,32 @@ DESCRIPTION
Provides a hodgepodge of subroutines.
SUBROUTINES
- adminsuidsetup
- 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. Returns the DBI
+ adminsuidsetup USER
+ 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).
+ cgisuidsetup CGI_object
+ Stores the CGI (see the CGI manpage) object for later use.
+ (CGI::Base is depriciated) Runs adminsuidsetup.
+
+ cgi Returns the CGI (see the CGI manpage) object.
+
dbh Returns the DBI database handle.
datasrc
Returns the DBI data source.
getotaker
- Returns the current Freeside user. Currently that means the
- CGI REMOTE_USER, or 'freeside'.
+ Returns the current Freeside user.
+
+ cgisetotaker
+ Sets and returns the CGI REMOTE_USER. $cgi should be defined
+ as a CGI.pm object. Support for CGI::Base and derived
+ classes is depriciated.
checkeuid
Returns true if effective UID is that of the freeside user.
@@ -44,14 +55,39 @@ SUBROUTINES
swapuid
Swaps real and effective UIDs.
+ getsecrets [ USER ]
+ 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.
+
+CALLBACKS
+ Warning: this interface is likely to change in future releases.
+
+ A package can install a callback to be run in adminsuidsetup by
+ putting a coderef into the hash %FS::UID::callback :
+
+ $coderef = sub { warn "Hi, I'm returning your call!" };
+ $FS::UID::callback{'Package::Name'};
+
+VERSION
+ $Id: UID.txt,v 1.4 1999-04-08 13:39:31 ivan Exp $
+
BUGS
+ Too many package-global variables.
+
Not OO.
No capabilities yet. When mod_perl and Authen::DBI are
implemented, cgisuidsetup will go away as well.
+ Goes through contortions to support non-OO syntax with multiple
+ datasrc's.
+
+ Callbacks are inelegant.
+
SEE ALSO
- the FS::Record manpage, the CGI::Base manpage, the DBI manpage
+ the FS::Record manpage, the CGI manpage, the DBI manpage,
+ config.html from the base documentation.
HISTORY
ivan@voicenet.com 97-jun-4 - 9 untaint otaker ivan@voicenet.com
@@ -77,3 +113,28 @@ HISTORY
pod, use FS::Conf, implemented cgisuidsetup as adminsuidsetup,
inlined suidsetup ivan@sisd.com 98-sep-12
+ $Log: UID.txt,v $
+ Revision 1.4 1999-04-08 13:39:31 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.8 1999/02/23 07:23:23 ivan oops,
+ don't comment out &swapuid in &adminsuidsetup!
+
+ Revision 1.7 1999/01/18 09:22:40 ivan changes to track email
+ addresses for email invoicing
+
+ Revision 1.6 1998/11/15 05:27:48 ivan bugfix for new
+ configuration layout
+
+ Revision 1.5 1998/11/15 00:51:51 ivan eliminated some warnings
+ on certain fatal errors (well, it is less confusing)
+
+ Revision 1.4 1998/11/13 09:56:52 ivan change configuration file
+ layout to support multiple distinct databases (with own set of
+ config files, export, etc.)
+
+ Revision 1.3 1998/11/08 10:45:42 ivan got sub cgi for FS::CGI
+
+ Revision 1.2 1998/11/08 09:38:43 ivan cgisuidsetup complains if
+ you pass it a isa CGI::Base instead of an isa CGI (first step in
+ migrating from CGI-modules to CGI.pm)
+
diff --git a/htdocs/docs/man/agent.txt b/htdocs/docs/man/agent.txt
index b0317f6f7..13a4f0c4b 100644
--- a/htdocs/docs/man/agent.txt
+++ b/htdocs/docs/man/agent.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::agent;
- $record = create FS::agent \%hash;
- $record = create FS::agent { 'column' => 'value' };
+ $record = new FS::agent \%hash;
+ $record = new FS::agent { 'column' => 'value' };
$error = $record->insert;
@@ -27,7 +27,7 @@ DESCRIPTION
prog - For future use.
freq - For future use.
METHODS
- create HASHREF
+ new HASHREF
Creates a new agent. To add the agent to the database, see
the section on "insert".
@@ -49,9 +49,10 @@ METHODS
there is an error, returns the error, otherwise returns
false. Called by the insert and replace methods.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: agent.txt,v 1.3 1999-04-08 13:39:31 ivan Exp $
+BUGS
SEE ALSO
the FS::Record manpage, the FS::agent_type manpage, the
FS::cust_main manpage, schema.html from the base documentation.
diff --git a/htdocs/docs/man/agent_type.txt b/htdocs/docs/man/agent_type.txt
index ea1edec0c..5983fee88 100644
--- a/htdocs/docs/man/agent_type.txt
+++ b/htdocs/docs/man/agent_type.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::agent_type;
- $record = create FS::agent_type \%hash;
- $record = create FS::agent_type { 'column' => 'value' };
+ $record = new FS::agent_type \%hash;
+ $record = new FS::agent_type { 'column' => 'value' };
$error = $record->insert;
@@ -27,7 +27,7 @@ DESCRIPTION
typenum - primary key (assigned automatically for new agent types)
atype - Text name of this agent type
METHODS
- create HASHREF
+ new HASHREF
Creates a new agent type. To add the agent type to the
database, see the section on "insert".
@@ -49,9 +49,10 @@ METHODS
If there is an error, returns the error, otherwise returns
false. Called by the insert and replace methods.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: agent_type.txt,v 1.3 1999-04-08 13:39:31 ivan Exp $
+BUGS
SEE ALSO
the FS::Record manpage, the FS::agent manpage, the FS::type_pkgs
manpage, the FS::cust_main manpage, the FS::part_pkg manpage,
@@ -70,3 +71,9 @@ HISTORY
pod, added check in delete ivan@sisd.com 98-sep-21
+ $Log: agent_type.txt,v $
+ Revision 1.3 1999-04-08 13:39:31 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.2 1998/12/29 11:59:35 ivan
+ mostly properly OO, some work still to be done with svc_ stuff
+
diff --git a/htdocs/docs/man/cust_bill.txt b/htdocs/docs/man/cust_bill.txt
index 9762dd3ca..c11840117 100644
--- a/htdocs/docs/man/cust_bill.txt
+++ b/htdocs/docs/man/cust_bill.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::cust_bill;
- $record = create FS::cust_bill \%hash;
- $record = create FS::cust_bill { 'column' => 'value' };
+ $record = new FS::cust_bill \%hash;
+ $record = new FS::cust_bill { 'column' => 'value' };
$error = $record->insert;
@@ -41,7 +41,7 @@ DESCRIPTION
printed - how many times this invoice has been printed automatically
(see the section on "collect" in the FS::cust_main manpage).
METHODS
- create HASHREF
+ new HASHREF
Creates a new invoice. To add the invoice to the database,
see the section on "insert". Invoices are normally created
by calling the bill method of a customer object (see the
@@ -105,24 +105,19 @@ METHODS
manpage. Also see the Time::Local manpage and the
Date::Parse manpage for conversion functions.
+VERSION
+ $Id: cust_bill.txt,v 1.4 1999-04-08 13:39:31 ivan Exp $
+
BUGS
The delete method.
- It doesn't properly override FS::Record yet.
-
- print_text formatting (and some logic :/) is in source as a
- format declaration, which needs to be slurped in from a file.
- the fork is rather kludgy as well. It could be cleaned with
- swrite from man perlform, and the picture could be put in a
- /var/spool/freeside/conf file. Also number of lines ($=).
+ print_text formatting (and some logic :/) is in source, but
+ needs to be slurped in from a file. Also number of lines ($=).
missing print_ps for a nice postscript copy (maybe HylaFAX-
cover-page-style or something similar so the look can be
completely customized?)
- There is an off-by-one error in print_text which causes a visual
- error: "Page 1 of 2" printed on some single-page invoices?
-
SEE ALSO
the FS::Record manpage, the FS::cust_main manpage, the
FS::cust_pay manpage, the FS::cust_bill_pkg manpage, the
@@ -138,3 +133,25 @@ HISTORY
pod, ingegrate with FS::Invoice ivan@sisd.com 98-sep-20
+ $Log: cust_bill.txt,v $
+ Revision 1.4 1999-04-08 13:39:31 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.7 1999/02/09 09:55:05 ivan
+ invoices show line items for each service in a package (see the
+ label method of FS::cust_svc)
+
+ Revision 1.6 1999/01/25 12:26:07 ivan yet more mod_perl stuff
+
+ Revision 1.5 1999/01/18 21:58:03 ivan esthetic: eq and ne were
+ used in a few places instead of == and !=
+
+ Revision 1.4 1998/12/29 11:59:36 ivan mostly properly OO, some
+ work still to be done with svc_ stuff
+
+ Revision 1.3 1998/11/13 09:56:53 ivan change configuration file
+ layout to support multiple distinct databases (with own set of
+ config files, export, etc.)
+
+ Revision 1.2 1998/11/07 10:24:24 ivan don't use depriciated
+ FS::Bill and FS::Invoice, other miscellania
+
diff --git a/htdocs/docs/man/cust_bill_pkg.txt b/htdocs/docs/man/cust_bill_pkg.txt
index 1ca4b8cca..d725c941e 100644
--- a/htdocs/docs/man/cust_bill_pkg.txt
+++ b/htdocs/docs/man/cust_bill_pkg.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::cust_bill_pkg;
- $record = create FS::cust_bill_pkg \%hash;
- $record = create FS::cust_bill_pkg { 'column' => 'value' };
+ $record = new FS::cust_bill_pkg \%hash;
+ $record = new FS::cust_bill_pkg { 'column' => 'value' };
$error = $record->insert;
@@ -32,7 +32,7 @@ DESCRIPTION
functions.
METHODS
- create HASHREF
+ new HASHREF
Creates a new line item. To add the line item to the
database, see the section on "insert". Line items are
normally created by calling the bill method of a customer
@@ -57,9 +57,10 @@ METHODS
there is an error, returns the error, otherwise returns
false. Called by the insert method.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: cust_bill_pkg.txt,v 1.3 1999-04-08 13:39:31 ivan Exp $
+BUGS
SEE ALSO
the FS::Record manpage, the FS::cust_bill manpage, the
FS::cust_pkg manpage, the FS::cust_main manpage, schema.html
diff --git a/htdocs/docs/man/cust_credit.txt b/htdocs/docs/man/cust_credit.txt
index 84591ee81..c26c1fbd6 100644
--- a/htdocs/docs/man/cust_credit.txt
+++ b/htdocs/docs/man/cust_credit.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::cust_credit;
- $record = create FS::cust_credit \%hash;
- $record = create FS::cust_credit { 'column' => 'value' };
+ $record = new FS::cust_credit \%hash;
+ $record = new FS::cust_credit { 'column' => 'value' };
$error = $record->insert;
@@ -30,7 +30,7 @@ DESCRIPTION
otaker - order taker (assigned automatically, see the FS::UID manpage)
reason - text
METHODS
- create HASHREF
+ new HASHREF
Creates a new credit. To add the credit to the database, see
the section on "insert".
@@ -59,11 +59,12 @@ METHODS
there is an error, returns the error, otherwise returns
false. Called by the insert and replace methods.
+VERSION
+ $Id: cust_credit.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $
+
BUGS
The delete method.
- It doesn't properly override FS::Record yet.
-
SEE ALSO
the FS::Record manpage, the FS::cust_refund manpage, the
FS::cust_bill manpage, schema.html from the base documentation.
@@ -73,3 +74,15 @@ HISTORY
pod, otaker from FS::UID ivan@sisd.com 98-sep-21
+ $Log: cust_credit.txt,v $
+ Revision 1.3 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.4 1999/01/25 12:26:08 ivan
+ yet more mod_perl stuff
+
+ Revision 1.3 1999/01/18 21:58:04 ivan esthetic: eq and ne were
+ used in a few places instead of == and !=
+
+ Revision 1.2 1998/12/29 11:59:38 ivan mostly properly OO, some
+ work still to be done with svc_ stuff
+
diff --git a/htdocs/docs/man/cust_main.txt b/htdocs/docs/man/cust_main.txt
index df7848744..bef2b9d94 100644
--- a/htdocs/docs/man/cust_main.txt
+++ b/htdocs/docs/man/cust_main.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::cust_main;
- $record = create FS::cust_main \%hash;
- $record = create FS::cust_main { 'column' => 'value' };
+ $record = new FS::cust_main \%hash;
+ $record = new FS::cust_main { 'column' => 'value' };
$error = $record->insert;
@@ -58,7 +58,7 @@ DESCRIPTION
tax - tax exempt, empty or `Y'
otaker - order taker (assigned automatically, see the FS::UID manpage)
METHODS
- create HASHREF
+ new HASHREF
Creates a new customer. To add the customer to the database,
see the section on "insert".
@@ -151,24 +151,52 @@ METHODS
Returns the balance for this customer (total owed minus
total credited).
-BUGS
- The delete method.
+ invoicing_list [ ARRAYREF ]
+ If an arguement is given, sets these email addresses as
+ invoice recipients (see the FS::cust_main_invoice manpage).
+ Errors are not fatal and are not reported (except as
+ warnings), so use check_invoicing_list first.
+
+ Returns a list of email addresses (with svcnum entries
+ expanded).
+
+ Note: You can clear the invoicing list by passing an empty
+ ARRAYREF. You can check it without disturbing anything by
+ passing nothing.
- It doesn't properly override FS::Record yet.
+ This interface may change in the future.
- hfields should be removed.
+ check_invoicing_list ARRAYREF
+ Checks these arguements as valid input for the
+ invoicing_list method. If there is an error, returns the
+ error, otherwise returns false.
+
+VERSION
+ $Id: cust_main.txt,v 1.4 1999-04-08 13:39:32 ivan Exp $
+
+BUGS
+ The delete method.
Bill and collect options should probably be passed as references
instead of a list.
CyberCash v2 forces us to define some variables in package main.
+ There should probably be a configuration file with a list of
+ allowed credit card types.
+
+ CyberCash is the only processor.
+
+ No multiple currency support (probably a larger project than
+ just this module).
+
SEE ALSO
the FS::Record manpage, the FS::cust_pkg manpage, the
FS::cust_bill manpage, the FS::cust_credit manpage the
FS::cust_pay_batch manpage, the FS::agent manpage, the
FS::part_referral manpage, the FS::cust_main_county manpage, the
- FS::UID manpage, schema.html from the base documentation.
+ FS::cust_main_invoice manpage, the FS::UID manpage, schema.html
+ from the base documentation.
HISTORY
ivan@voicenet.com 97-jul-28
@@ -198,3 +226,53 @@ HISTORY
cybercash v3 support, don't need to import
FS::UID::{datasrc,checkruid} ivan@sisd.com 98-sep-19-21
+ $Log: cust_main.txt,v $
+ Revision 1.4 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.16 1999/04/07 14:32:19 ivan
+ more &invoicing_list logic to skip searches when there is no
+ custnum
+
+ Revision 1.15 1999/04/07 13:41:54 ivan in &invoicing_list, don't
+ search if there's no custnum yet
+
+ Revision 1.14 1999/03/29 12:06:15 ivan buglet in email invoices
+ fixed
+
+ Revision 1.13 1999/02/28 20:09:03 ivan allow spaces in zip
+ codes, for (at least) canada. pointed out by Clayton Gray
+ <clgray@bcgroup.net>
+
+ Revision 1.12 1999/02/27 21:24:22 ivan parse paydate correctly
+ for cybercash
+
+ Revision 1.11 1999/02/23 08:09:27 ivan beginnings of one-screen
+ new customer entry and some other miscellania
+
+ Revision 1.10 1999/01/25 12:26:09 ivan yet more mod_perl stuff
+
+ Revision 1.9 1999/01/18 09:22:41 ivan changes to track email
+ addresses for email invoicing
+
+ Revision 1.8 1998/12/29 11:59:39 ivan mostly properly OO, some
+ work still to be done with svc_ stuff
+
+ Revision 1.7 1998/12/16 09:58:52 ivan library support for
+ editing email invoice destinations (not in sub collect yet)
+
+ Revision 1.6 1998/11/18 09:01:42 ivan i18n! i18n!
+
+ Revision 1.5 1998/11/15 11:23:14 ivan use FS::table_name for all
+ searches to eliminate warnings, emit state/county when they
+ don't match
+
+ Revision 1.4 1998/11/15 05:30:48 ivan bugfix for new config
+ layout
+
+ Revision 1.3 1998/11/13 09:56:54 ivan change configuration file
+ layout to support multiple distinct databases (with own set of
+ config files, export, etc.)
+
+ Revision 1.2 1998/11/07 10:24:25 ivan don't use depriciated
+ FS::Bill and FS::Invoice, other miscellania
+
diff --git a/htdocs/docs/man/cust_main_county.txt b/htdocs/docs/man/cust_main_county.txt
index 8e99397cc..9a4a60e33 100644
--- a/htdocs/docs/man/cust_main_county.txt
+++ b/htdocs/docs/man/cust_main_county.txt
@@ -5,8 +5,8 @@ NAME
SYNOPSIS
use FS::cust_main_county;
- $record = create FS::cust_main_county \%hash;
- $record = create FS::cust_main_county { 'column' => 'value' };
+ $record = new FS::cust_main_county \%hash;
+ $record = new FS::cust_main_county { 'column' => 'value' };
$error = $record->insert;
@@ -24,9 +24,10 @@ DESCRIPTION
taxnum - primary key (assigned automatically for new tax rates)
state
county
+ country
tax - percentage
METHODS
- create HASHREF
+ new HASHREF
Creates a new tax rate. To add the tax rate to the database,
see the section on "insert".
@@ -48,11 +49,10 @@ METHODS
there is an error, returns the error, otherwise returns
false. Called by the insert and replace methods.
-BUGS
- It doesn't properly override FS::Record yet.
-
- A country field (and possibly a currency field) should be added.
+VERSION
+ $Id: cust_main_county.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $
+BUGS
SEE ALSO
the FS::Record manpage, the FS::cust_main manpage, the
FS::cust_bill manpage, schema.html from the base documentation.
@@ -65,3 +65,12 @@ HISTORY
pod ivan@sisd.com 98-sep-21
+ $Log: cust_main_county.txt,v $
+ Revision 1.3 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.3 1998/12/29 11:59:41
+ ivan mostly properly OO, some work still to be done with svc_
+ stuff
+
+ Revision 1.2 1998/11/18 09:01:43 ivan i18n! i18n!
+
diff --git a/htdocs/docs/man/cust_main_invoice.txt b/htdocs/docs/man/cust_main_invoice.txt
new file mode 100644
index 000000000..5d50a9f26
--- /dev/null
+++ b/htdocs/docs/man/cust_main_invoice.txt
@@ -0,0 +1,98 @@
+NAME
+ FS::cust_main_invoice - Object methods for cust_main_invoice
+ records
+
+SYNOPSIS
+ use FS::cust_main_invoice;
+
+ $record = new FS::cust_main_invoice \%hash;
+ $record = new FS::cust_main_invoice { 'column' => 'value' };
+
+ $error = $record->insert;
+
+ $error = $new_record->replace($old_record);
+
+ $error = $record->delete;
+
+ $error = $record->check;
+
+ $email_address = $record->address;
+
+DESCRIPTION
+ An FS::cust_main_invoice object represents an invoice
+ destination. FS::cust_main_invoice inherits from FS::Record. The
+ following fields are currently supported:
+
+ destnum - primary key
+ custnum - customer (see the FS::cust_main manpage)
+ 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)
+METHODS
+ new HASHREF
+ Creates a new invoice destination. To add the invoice
+ destination to the database, see the section on "insert".
+
+ 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 *hash* method.
+
+ insert
+ Adds this record to the database. If there is an error,
+ returns the error, otherwise returns false.
+
+ delete
+ Delete this record from the database.
+
+ replace OLD_RECORD
+ Replaces the OLD_RECORD with this one in the database. If
+ there is an error, returns the error, otherwise returns
+ false.
+
+ check
+ Checks all fields to make sure this is a valid invoice
+ destination. If there is an error, returns the error,
+ otherwise returns false. Called by the insert and repalce
+ methods.
+
+ checkdest
+ Checks the dest field only.
+
+ address
+ Returns the literal email address for this record (or
+ `POST').
+
+VERSION
+ $Id: cust_main_invoice.txt,v 1.1 1999-04-08 13:39:32 ivan Exp $
+
+BUGS
+SEE ALSO
+ the FS::Record manpage, the FS::cust_main manpage
+
+HISTORY
+ ivan@voicenet.com 97-jul-1
+
+ added hfields ivan@sisd.com 97-nov-13
+
+ $Log: cust_main_invoice.txt,v $
+ Revision 1.1 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.6 1999/01/25 12:26:10
+ ivan yet more mod_perl stuff
+
+ Revision 1.5 1999/01/18 21:58:05 ivan esthetic: eq and ne were
+ used in a few places instead of == and !=
+
+ Revision 1.4 1999/01/18 09:22:42 ivan changes to track email
+ addresses for email invoicing
+
+ Revision 1.3 1998/12/29 11:59:42 ivan mostly properly OO, some
+ work still to be done with svc_ stuff
+
+ Revision 1.2 1998/12/16 09:58:53 ivan library support for
+ editing email invoice destinations (not in sub collect yet)
+
+ Revision 1.1 1998/12/16 07:40:02 ivan new table
+
+ Revision 1.3 1998/11/15 04:33:00 ivan updates for newest versoin
+
+ Revision 1.2 1998/11/15 03:48:49 ivan update for current version
+
diff --git a/htdocs/docs/man/cust_pay.txt b/htdocs/docs/man/cust_pay.txt
index 9f28d0822..14843d022 100644
--- a/htdocs/docs/man/cust_pay.txt
+++ b/htdocs/docs/man/cust_pay.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::cust_pay;
- $record = create FS::cust_pay \%hash;
- $record = create FS::cust_pay { 'column' => 'value' };
+ $record = new FS::cust_pay \%hash;
+ $record = new FS::cust_pay { 'column' => 'value' };
$error = $record->insert;
@@ -29,7 +29,7 @@ DESCRIPTION
payinfo - card number, P.O.#, or comp issuer (4-8 lowercase alphanumerics; think username)
paybatch - text field for tracking card processing
METHODS
- create HASHREF
+ new HASHREF
Creates a new payment. To add the payment to the databse,
see the section on "insert".
@@ -48,9 +48,10 @@ METHODS
there is an error, returns the error, otherwise returns
false. Called by the insert method.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: cust_pay.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $
+BUGS
Delete and replace methods.
SEE ALSO
@@ -64,3 +65,12 @@ HISTORY
pod ivan@sisd.com 98-sep-21
+ $Log: cust_pay.txt,v $
+ Revision 1.3 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.3 1999/01/25 12:26:11 ivan yet
+ more mod_perl stuff
+
+ Revision 1.2 1998/12/29 11:59:43 ivan mostly properly OO, some
+ work still to be done with svc_ stuff
+
diff --git a/htdocs/docs/man/cust_pay_batch.txt b/htdocs/docs/man/cust_pay_batch.txt
new file mode 100644
index 000000000..2d6267843
--- /dev/null
+++ b/htdocs/docs/man/cust_pay_batch.txt
@@ -0,0 +1,96 @@
+NAME
+ FS::cust_pay_batch - Object methods for batch cards
+
+SYNOPSIS
+ use FS::cust_pay_batch;
+
+ $record = new FS::cust_pay_batch \%hash;
+ $record = new FS::cust_pay_batch { 'column' => 'value' };
+
+ $error = $record->insert;
+
+ $error = $new_record->replace($old_record);
+
+ $error = $record->delete;
+
+ $error = $record->check;
+
+DESCRIPTION
+ 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:
+
+ trancode - 77 for charges
+ cardnum
+ exp - card expiration
+ amount
+ invnum - invoice
+ custnum - customer
+ payname - name on card
+ first - name
+ last - name
+ address1
+ address2
+ city
+ state
+ zip
+ country
+METHODS
+ new HASHREF
+ Creates a new record. To add the record to the database, see
+ the section on "insert".
+
+ 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 *hash* method.
+
+ insert
+ Adds this record to the database. If there is an error,
+ returns the error, otherwise returns false.
+
+ delete
+ Delete this record from the database. If there is an error,
+ returns the error, otherwise returns false.
+
+ replace OLD_RECORD
+ #inactive # #Replaces the OLD_RECORD with this one in the
+ database. If there is an error, #returns the error,
+ otherwise returns false.
+
+ check
+ Checks all fields to make sure this is a valid transaction.
+ If there is an error, returns the error, otherwise returns
+ false. Called by the insert and repalce methods.
+
+VERSION
+ $Id: cust_pay_batch.txt,v 1.1 1999-04-08 13:39:32 ivan Exp $
+
+BUGS
+ There should probably be a configuration file with a list of
+ allowed credit card types.
+
+SEE ALSO
+ the FS::cust_main manpage, the FS::Record manpage
+
+HISTORY
+ ivan@voicenet.com 97-jul-1
+
+ added hfields ivan@sisd.com 97-nov-13
+
+ $Log: cust_pay_batch.txt,v $
+ Revision 1.1 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.3 1998/12/29 11:59:44
+ ivan mostly properly OO, some work still to be done with svc_
+ stuff
+
+ Revision 1.2 1998/11/18 09:01:44 ivan i18n! i18n!
+
+ Revision 1.1 1998/11/15 05:19:58 ivan long overdue
+
+ Revision 1.3 1998/11/15 04:33:00 ivan updates for newest versoin
+
+ Revision 1.2 1998/11/15 03:48:49 ivan update for current version
+
diff --git a/htdocs/docs/man/cust_pkg.txt b/htdocs/docs/man/cust_pkg.txt
index 5409083d8..395403192 100644
--- a/htdocs/docs/man/cust_pkg.txt
+++ b/htdocs/docs/man/cust_pkg.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::cust_pkg;
- $record = create FS::cust_pkg \%hash;
- $record = create FS::cust_pkg { 'column' => 'value' };
+ $record = new FS::cust_pkg \%hash;
+ $record = new FS::cust_pkg { 'column' => 'value' };
$error = $record->insert;
@@ -21,6 +21,10 @@ SYNOPSIS
$error = $record->unsuspend;
+ $part_pkg = $record->part_pkg;
+
+ @labels = $record->labels;
+
$error = FS::cust_pkg::order( $custnum, \@pkgparts );
$error = FS::cust_pkg::order( $custnum, \@pkgparts, \@remove_pkgnums ] );
@@ -44,7 +48,7 @@ DESCRIPTION
conversion functions.
METHODS
- create HASHREF
+ new HASHREF
Create a new billing item. To add the item to the database,
see the section on "insert".
@@ -53,13 +57,26 @@ METHODS
If there is an error, returns the error, otherwise returns
false.
+ sub insert { my $self = shift;
+
+ # custnum might not have have been defined in sub check (for one-shot new
+ # customers), so check it here instead
+
+ my $error = $self->ut_number('custnum');
+ return $error if $error
+
+ return "Unknown customer"
+ unless qsearchs( 'cust_main', { 'custnum' => $self->custnum } );
+
+ $self->SUPER::insert;
+
+ }
+
delete
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.
- sub delete { return "Can't delete cust_pkg records!"; }
-
replace OLD_RECORD
Replaces the OLD_RECORD with this one in the database. If
there is an error, returns the error, otherwise returns
@@ -68,7 +85,8 @@ METHODS
Currently, custnum, setup, bill, susp, expire, and cancel
may be changed.
- pkgpart may not be changed, but see the order subroutine.
+ Changing pkgpart may have disasterous effects. See the order
+ subroutine.
setup and bill are normally updated by calling the bill
method of a customer object (see the FS::cust_main manpage).
@@ -108,6 +126,15 @@ METHODS
If there is an error, returns the error, otherwise returns
false.
+ part_pkg
+ Returns the definition for this billing item, as an
+ FS::part_pkg object (see L<FS::part_pkg).
+
+ labels
+ Returns a list of lists, calling the label method for all
+ services (see the FS::cust_svc manpage) of this billing
+ item.
+
SUBROUTINES
order CUSTNUM, PKGPARTS_ARYREF, [ REMOVE_PKGNUMS_ARYREF ]
CUSTNUM is a customer (see the FS::cust_main manpage)
@@ -122,9 +149,10 @@ SUBROUTINES
items. An error is returned if this is not possible (see the
FS::pkg_svc manpage).
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: cust_pkg.txt,v 1.4 1999-04-08 13:39:32 ivan Exp $
+BUGS
sub order is not OO. Perhaps it should be moved to FS::cust_main
and made so?
@@ -135,6 +163,13 @@ BUGS
defines a standard method to pass dates to the recur_prog
expression, it should do so.
+ 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.
+
SEE ALSO
the FS::Record manpage, the FS::cust_main manpage, the
FS::part_pkg manpage, the FS::cust_svc manpage , the FS::pkg_svc
@@ -148,3 +183,30 @@ HISTORY
pod ivan@sisd.com 98-sep-21
+ $Log: cust_pkg.txt,v $
+ Revision 1.4 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.9 1999/03/29 01:11:51 ivan use
+ FS::type_pkgs
+
+ Revision 1.8 1999/03/25 13:48:14 ivan allow empty custnum in sub
+ check (but call that an error in sub insert), for one-screen new
+ customer entry
+
+ Revision 1.7 1999/02/09 09:55:06 ivan invoices show line items
+ for each service in a package (see the label method of
+ FS::cust_svc)
+
+ Revision 1.6 1999/01/25 12:26:12 ivan yet more mod_perl stuff
+
+ Revision 1.5 1999/01/18 21:58:07 ivan esthetic: eq and ne were
+ used in a few places instead of == and !=
+
+ Revision 1.4 1998/12/29 11:59:45 ivan mostly properly OO, some
+ work still to be done with svc_ stuff
+
+ Revision 1.3 1998/11/15 13:01:35 ivan allow pkgpart changing
+ (for per-customer custom pricing). warn about it in doc
+
+ Revision 1.2 1998/11/12 03:42:45 ivan added label method
+
diff --git a/htdocs/docs/man/cust_refund.txt b/htdocs/docs/man/cust_refund.txt
index 392a0b57a..a982ca610 100644
--- a/htdocs/docs/man/cust_refund.txt
+++ b/htdocs/docs/man/cust_refund.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::cust_refund;
- $record = create FS::cust_refund \%hash;
- $record = create FS::cust_refund { 'column' => 'value' };
+ $record = new FS::cust_refund \%hash;
+ $record = new FS::cust_refund { 'column' => 'value' };
$error = $record->insert;
@@ -28,7 +28,7 @@ DESCRIPTION
payinfo - card number, P.O.#, or comp issuer (4-8 lowercase alphanumerics; think username)
otaker - order taker (assigned automatically, see the FS::UID manpage)
METHODS
- create HASHREF
+ new HASHREF
Creates a new refund. To add the refund to the database, see
the section on "insert".
@@ -47,9 +47,10 @@ METHODS
there is an error, returns the error, otherwise returns
false. Called by the insert method.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: cust_refund.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $
+BUGS
Delete and replace methods.
SEE ALSO
@@ -64,3 +65,12 @@ HISTORY
pod and finish up ivan@sisd.com 98-sep-21
+ $Log: cust_refund.txt,v $
+ Revision 1.3 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.3 1999/01/25 12:26:13 ivan
+ yet more mod_perl stuff
+
+ Revision 1.2 1998/12/29 11:59:46 ivan mostly properly OO, some
+ work still to be done with svc_ stuff
+
diff --git a/htdocs/docs/man/cust_svc.txt b/htdocs/docs/man/cust_svc.txt
index d863ea852..206d9d34b 100644
--- a/htdocs/docs/man/cust_svc.txt
+++ b/htdocs/docs/man/cust_svc.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::cust_svc;
- $record = create FS::cust_svc \%hash
- $record = create FS::cust_svc { 'column' => 'value' };
+ $record = new FS::cust_svc \%hash
+ $record = new FS::cust_svc { 'column' => 'value' };
$error = $record->insert;
@@ -15,6 +15,8 @@ SYNOPSIS
$error = $record->check;
+ ($label, $value) = $record->label;
+
DESCRIPTION
An FS::cust_svc represents a service. FS::cust_svc inherits from
FS::Record. The following fields are currently supported:
@@ -23,7 +25,7 @@ DESCRIPTION
pkgnum - Package (see the FS::cust_pkg manpage)
svcpart - Service definition (see the FS::part_svc manpage)
METHODS
- create HASHREF
+ new HASHREF
Creates a new service. To add the refund to the database,
see the section on "insert". Services are normally created
by creating FS::svc_ objects (see the FS::svc_acct manpage,
@@ -51,12 +53,24 @@ METHODS
there is an error, returns the error, otehrwise returns
false. Called by the insert and replace methods.
+ label
+ 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
+
+VERSION
+ $Id: cust_svc.txt,v 1.4 1999-04-08 13:39:32 ivan Exp $
+
BUGS
Behaviour of changing the svcpart of cust_svc records is
undefined and should possibly be prohibited, and pkg_svc records
are not checked.
- pkg_svc records are not checket in general (here).
+ pkg_svc records are not checked in general (here).
+
+ Deleting this record doesn't check or delete the svc_* record
+ associated with this record.
SEE ALSO
the FS::Record manpage, the FS::cust_pkg manpage, the
@@ -70,3 +84,16 @@ HISTORY
pod ivan@sisd.com 98-sep-21
+ $Log: cust_svc.txt,v $
+ Revision 1.4 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.5 1998/12/29 11:59:47 ivan
+ mostly properly OO, some work still to be done with svc_ stuff
+
+ Revision 1.4 1998/11/12 07:58:15 ivan added svcdb to label
+
+ Revision 1.3 1998/11/12 03:45:38 ivan use FS::table_name for all
+ tables qsearch()'ed
+
+ Revision 1.2 1998/11/12 03:32:46 ivan added label method
+
diff --git a/htdocs/docs/man/dbdef_column.txt b/htdocs/docs/man/dbdef_column.txt
index 93e239517..6747a328c 100644
--- a/htdocs/docs/man/dbdef_column.txt
+++ b/htdocs/docs/man/dbdef_column.txt
@@ -46,16 +46,17 @@ METHODS
line [ $datasrc ]
Returns an SQL column definition.
- If passed a DBI $datasrc specifying the DBD::mysql manpage,
- will use MySQL-specific syntax. Non-standard syntax for
- other engines (if applicable) may also be supported in the
- future.
+ If passed a DBI $datasrc specifying the DBD::mysql manpage
+ or the DBD::Pg manpage, will use engine-specific syntax.
BUGS
SEE ALSO
the FS::dbdef_table manpage, the FS::dbdef manpage, the DBI
manpage
+VERSION
+ $Id: dbdef_column.txt,v 1.5 1999-04-08 13:39:32 ivan Exp $
+
HISTORY
class for dealing with column definitions
@@ -67,3 +68,12 @@ HISTORY
mySQL-specific hack for null (what should be default?)
ivan@sisd.com 98-jun-2
+ $Log: dbdef_column.txt,v $
+ Revision 1.5 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.3 1998/10/13 13:04:17 ivan
+ fixed doc to indicate Pg specific syntax too
+
+ Revision 1.2 1998/10/12 23:40:28 ivan added Pg-specific
+ behaviour in sub line
+
diff --git a/htdocs/docs/man/dbdef_table.txt b/htdocs/docs/man/dbdef_table.txt
index 25e010d8b..1a1887156 100644
--- a/htdocs/docs/man/dbdef_table.txt
+++ b/htdocs/docs/man/dbdef_table.txt
@@ -75,6 +75,9 @@ SEE ALSO
FS::dbdef_index manpage, the FS::dbdef_unique manpage, the DBI
manpage
+VERSION
+ $Id: dbdef_table.txt,v 1.5 1999-04-08 13:39:32 ivan Exp $
+
HISTORY
class for dealing with table definitions
@@ -92,3 +95,9 @@ HISTORY
pod ivan@sisd.com 98-sep-24
+ $Log: dbdef_table.txt,v $
+ Revision 1.5 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.2 1998/10/14 07:05:06 ivan
+ 1.1.4 release, fix postgresql
+
diff --git a/htdocs/docs/man/index.html b/htdocs/docs/man/index.html
index 4f33dd485..79fda2e04 100644
--- a/htdocs/docs/man/index.html
+++ b/htdocs/docs/man/index.html
@@ -11,7 +11,9 @@
<li><a href="cust_credit.txt">FS::cust_credit</a>
<li><a href="cust_main.txt">FS::cust_main</a>
<li><a href="cust_main_county.txt">FS::cust_main_county</a>
+<li><a href="cust_main_invoice.txt">FS::cust_main_invoice</a>
<li><a href="cust_pay.txt">FS::cust_pay</a>
+<li><a href="cust_pay_batch.txt">FS::cust_pay_batch</a>
<li><a href="cust_pkg.txt">FS::cust_pkg</a>
<li><a href="cust_refund.txt">FS::cust_refund</a>
<li><a href="cust_svc.txt">FS::cust_svc</a>
@@ -19,6 +21,7 @@
<li><a href="part_referral.txt">FS::part_referral</a>
<li><a href="part_svc.txt">FS::part_svc</a>
<li><a href="pkg_svc.txt">FS::pkg_svc</a>
+<li><a href="svc_Common.txt">FS::svc_Common</a>
<li><a href="svc_acct.txt">FS::svc_acct</a>
<li><a href="svc_acct_pop.txt">FS::svc_acct_pop</a>
<li><a href="svc_acct_sm.txt">FS::svc_acct_sm</a>
diff --git a/htdocs/docs/man/part_pkg.txt b/htdocs/docs/man/part_pkg.txt
index dc1bce423..02aa109a0 100644
--- a/htdocs/docs/man/part_pkg.txt
+++ b/htdocs/docs/man/part_pkg.txt
@@ -4,8 +4,10 @@ NAME
SYNOPSIS
use FS::part_pkg;
- $record = create FS::part_pkg \%hash
- $record = create FS::part_pkg { 'column' => 'value' };
+ $record = new FS::part_pkg \%hash
+ $record = new FS::part_pkg { 'column' => 'value' };
+
+ $custom_record = $template_record->clone;
$error = $record->insert;
@@ -16,7 +18,7 @@ SYNOPSIS
$error = $record->check;
DESCRIPTION
- An FS::part_pkg represents a billing item definition.
+ An FS::part_pkg object represents a billing item definition.
FS::part_pkg inherits from FS::Record. The following fields are
currently supported:
@@ -31,11 +33,18 @@ DESCRIPTION
are not yet defined.
METHODS
- create HASHREF
+ new HASHREF
Creates a new billing item definition. To add the billing
item definition to the database, see the section on
"insert".
+ clone
+ 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 the section on "insert".
+
insert
Adds this billing item definition to the database. If there
is an error, returns the error, otherwise returns false.
@@ -53,6 +62,9 @@ METHODS
otherwise returns false. Called by the insert and replace
methods.
+VERSION
+ $Id: part_pkg.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $
+
BUGS
It doesn't properly override FS::Record yet.
@@ -71,3 +83,11 @@ HISTORY
pod ivan@sisd.com 98-sep-21
+ $Log: part_pkg.txt,v $
+ Revision 1.3 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.5 1998/12/31 01:04:16 ivan doc
+
+ Revision 1.3 1998/11/15 13:00:15 ivan bugfix in clone method,
+ clone method doc clarification
+
diff --git a/htdocs/docs/man/part_referral.txt b/htdocs/docs/man/part_referral.txt
index 534996323..fbc141c45 100644
--- a/htdocs/docs/man/part_referral.txt
+++ b/htdocs/docs/man/part_referral.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::part_referral;
- $record = create FS::part_referral \%hash
- $record = create FS::part_referral { 'column' => 'value' };
+ $record = new FS::part_referral \%hash
+ $record = new FS::part_referral { 'column' => 'value' };
$error = $record->insert;
@@ -25,7 +25,7 @@ DESCRIPTION
refnum - primary key (assigned automatically for new referrals)
referral - Text name of this referral
METHODS
- create HASHREF
+ new HASHREF
Creates a new referral. To add the referral to the database,
see the section on "insert".
@@ -45,9 +45,10 @@ METHODS
there is an error, returns the error, otherwise returns
false. Called by the insert and replace methods.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: part_referral.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $
+BUGS
The delete method is unimplemented.
SEE ALSO
@@ -61,3 +62,9 @@ HISTORY
pod ivan@sisd.com 98-sep-21
+ $Log: part_referral.txt,v $
+ Revision 1.3 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.2 1998/12/29 11:59:49 ivan
+ mostly properly OO, some work still to be done with svc_ stuff
+
diff --git a/htdocs/docs/man/part_svc.txt b/htdocs/docs/man/part_svc.txt
index 680944e2f..71af2c4f4 100644
--- a/htdocs/docs/man/part_svc.txt
+++ b/htdocs/docs/man/part_svc.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::part_svc;
- $record = create FS::part_referral \%hash
- $record = create FS::part_referral { 'column' => 'value' };
+ $record = new FS::part_referral \%hash
+ $record = new FS::part_referral { 'column' => 'value' };
$error = $record->insert;
@@ -27,7 +27,7 @@ DESCRIPTION
*svcdb*__*field* - Default or fixed value for *field* in *svcdb*.
*svcdb*__*field*_flag - defines *svcdb*__*field* action: null, `D' for default, or `F' for fixed
METHODS
- create HASHREF
+ new HASHREF
Creates a new service definition. To add the service
definition to the database, see the section on "insert".
@@ -48,11 +48,15 @@ METHODS
otherwise returns false. Called by the insert and replace
methods.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: part_svc.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $
+BUGS
Delete is unimplemented.
+ The list of svc_* tables is hardcoded. When svc_acct_pop is
+ renamed, this should be fixed.
+
SEE ALSO
the FS::Record manpage, the FS::part_pkg manpage, the
FS::pkg_svc manpage, the FS::cust_svc manpage, the FS::svc_acct
@@ -67,3 +71,12 @@ HISTORY
pod ivan@sisd.com 98-sep-21
+ $Log: part_svc.txt,v $
+ Revision 1.3 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.3 1999/02/07 09:59:44 ivan more
+ mod_perl fixes, and bugfixes Peter Wemm sent via email
+
+ Revision 1.2 1998/12/29 11:59:50 ivan mostly properly OO, some
+ work still to be done with svc_ stuff
+
diff --git a/htdocs/docs/man/pkg_svc.txt b/htdocs/docs/man/pkg_svc.txt
index bde0043f1..d921642be 100644
--- a/htdocs/docs/man/pkg_svc.txt
+++ b/htdocs/docs/man/pkg_svc.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::pkg_svc;
- $record = create FS::pkg_svc \%hash;
- $record = create FS::pkg_svc { 'column' => 'value' };
+ $record = new FS::pkg_svc \%hash;
+ $record = new FS::pkg_svc { 'column' => 'value' };
$error = $record->insert;
@@ -26,7 +26,7 @@ DESCRIPTION
quantity - Quantity of this service definition that this billing item
definition includes
METHODS
- create HASHREF
+ new HASHREF
Create a new record. To add the record to the database, see
the section on "insert".
@@ -47,9 +47,10 @@ METHODS
there is an error, returns the error, otherwise returns
false. Called by the insert and replace methods.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: pkg_svc.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $
+BUGS
SEE ALSO
the FS::Record manpage, the FS::part_pkg manpage, the
FS::part_svc manpage, schema.html from the base documentation.
@@ -59,3 +60,13 @@ HISTORY
pod ivan@sisd.com 98-sep-22
+ $Log: pkg_svc.txt,v $
+ Revision 1.3 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.3 1999/01/18 21:58:08 ivan
+ esthetic: eq and ne were used in a few places instead of == and
+ !=
+
+ Revision 1.2 1998/12/29 11:59:51 ivan mostly properly OO, some
+ work still to be done with svc_ stuff
+
diff --git a/htdocs/docs/man/svc_Common.txt b/htdocs/docs/man/svc_Common.txt
new file mode 100644
index 000000000..d63b8f245
--- /dev/null
+++ b/htdocs/docs/man/svc_Common.txt
@@ -0,0 +1,75 @@
+NAME
+ FS::svc_Common - Object method for all svc_ records
+
+SYNOPSIS
+ use FS::svc_Common;
+
+ @ISA = qw( FS::svc_Common );
+
+DESCRIPTION
+ 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.
+
+METHODS
+ insert
+ Adds this record to the database. If there is an error,
+ returns the error, otherwise returns false.
+
+ The additional fields pkgnum and svcpart (see the
+ FS::cust_svc manpage) should be defined. An FS::cust_svc
+ record will be created and inserted.
+
+ delete
+ Deletes this account from the database. If there is an
+ error, returns the error, otherwise returns false.
+
+ The corresponding FS::cust_svc record will be deleted as
+ well.
+
+ setfixed
+ Sets any fixed fields for this service (see the FS::part_svc
+ manpage). If there is an error, returns the error, otherwise
+ returns the FS::part_svc object (use ref() to test the
+ return). Usually called by the check method.
+
+ setdefault
+ Sets all fields to their defaults (see the FS::part_svc
+ manpage), overriding their current values. If there is an
+ error, returns the error, otherwise returns the FS::part_svc
+ object (use ref() to test the return).
+
+ suspend
+ unsuspend
+ cancel
+ 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 the FS::cust_pkg manpage).
+
+VERSION
+ $Id: svc_Common.txt,v 1.1 1999-04-08 13:39:32 ivan Exp $
+
+BUGS
+ The setfixed method return value.
+
+ The new method should set defaults from part_svc (like the check
+ method sets fixed values)?
+
+SEE ALSO
+ the FS::Record manpage, the FS::cust_svc manpage, the
+ FS::part_svc manpage, the FS::cust_pkg manpage, schema.html from
+ the base documentation.
+
+HISTORY
+ $Log: svc_Common.txt,v $
+ Revision 1.1 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.3 1999/03/25 13:31:29 ivan
+ added setdefault method (generalized setfixed method to setx
+ method)
+
+ Revision 1.2 1999/01/25 12:26:14 ivan yet more mod_perl stuff
+
+ Revision 1.1 1998/12/30 00:30:45 ivan svc_ stuff is more
+ properly OO - has a common superclass FS::svc_Common
+
diff --git a/htdocs/docs/man/svc_acct.txt b/htdocs/docs/man/svc_acct.txt
index 1c9caf5fb..7eb5be47b 100644
--- a/htdocs/docs/man/svc_acct.txt
+++ b/htdocs/docs/man/svc_acct.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::svc_acct;
- $record = create FS::svc_acct \%hash;
- $record = create FS::svc_acct { 'column' => 'value' };
+ $record = new FS::svc_acct \%hash;
+ $record = new FS::svc_acct { 'column' => 'value' };
$error = $record->insert;
@@ -23,7 +23,7 @@ SYNOPSIS
DESCRIPTION
An FS::svc_acct object represents an account. FS::svc_acct
- inherits from FS::Record. The following fields are currently
+ inherits from FS::svc_Common. The following fields are currently
supported:
svcnum - primary key (assigned automatcially for new accounts)
@@ -39,7 +39,7 @@ DESCRIPTION
slipip - IP address
radius_*Radius_Attribute* - *Radius-Attribute*
METHODS
- create HASHREF
+ new HASHREF
Creates a new account. To add the account to the database,
see the section on "insert".
@@ -126,19 +126,22 @@ METHODS
Sets any fixed values; see the FS::part_svc manpage.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: svc_acct.txt,v 1.4 1999-04-08 13:39:32 ivan Exp $
+BUGS
The remote commands should be configurable.
- The create method should set defaults from part_svc (like the
- check method sets fixed values).
+ The bits which ssh should fork before doing so.
+
+ The $recref stuff in sub check should be cleaned up.
SEE ALSO
- the FS::Record manpage, the FS::Conf manpage, the FS::cust_svc
- manpage, the FS::part_svc manpage, the FS::cust_pkg manpage, the
- FS::SSH manpage, the ssh manpage, the FS::svc_acct_pop manpage,
- schema.html from the base documentation.
+ the FS::svc_Common manpage, the FS::Record manpage, the FS::Conf
+ manpage, the FS::cust_svc manpage, the FS::part_svc manpage, the
+ FS::cust_pkg manpage, the FS::SSH manpage, the ssh manpage, the
+ FS::svc_acct_pop manpage, schema.html from the base
+ documentation.
HISTORY
ivan@voicenet.com 97-jul-16 - 21
@@ -166,3 +169,21 @@ HISTORY
pod and FS::conf ivan@sisd.com 98-sep-22
+ $Log: svc_acct.txt,v $
+ Revision 1.4 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.7 1999/04/07 14:37:37 ivan use
+ FS::part_svc and FS::svc_acct_pop to avoid warnings
+
+ Revision 1.6 1999/01/25 12:26:15 ivan yet more mod_perl stuff
+
+ Revision 1.5 1999/01/18 21:58:09 ivan esthetic: eq and ne were
+ used in a few places instead of == and !=
+
+ Revision 1.4 1998/12/30 00:30:45 ivan svc_ stuff is more
+ properly OO - has a common superclass FS::svc_Common
+
+ Revision 1.2 1998/11/13 09:56:55 ivan change configuration file
+ layout to support multiple distinct databases (with own set of
+ config files, export, etc.)
+
diff --git a/htdocs/docs/man/svc_acct_pop.txt b/htdocs/docs/man/svc_acct_pop.txt
index ac0965413..e8629fd47 100644
--- a/htdocs/docs/man/svc_acct_pop.txt
+++ b/htdocs/docs/man/svc_acct_pop.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::svc_acct_pop;
- $record = create FS::svc_acct_pop \%hash;
- $record = create FS::svc_acct_pop { 'column' => 'value' };
+ $record = new FS::svc_acct_pop \%hash;
+ $record = new FS::svc_acct_pop { 'column' => 'value' };
$error = $record->insert;
@@ -26,17 +26,17 @@ DESCRIPTION
ac - area code
exch - exchange
METHODS
- create HASHREF
+ new HASHREF
Creates a new point of presence (if only it were that
easy!). To add the point of presence to the database, see
the section on "insert".
insert
- Adds this point of presence to the databaes. If there is an
+ Adds this point of presence to the database. If there is an
error, returns the error, otherwise returns false.
delete
- Currently unimplemented.
+ Removes this point of presence from the database.
replace OLD_RECORD
Replaces OLD_RECORD with this one in the database. If there
@@ -47,9 +47,10 @@ METHODS
presence. If there is an error, returns the error, otherwise
returns false. Called by the insert and replace methods.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: svc_acct_pop.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $
+BUGS
It should be renamed to part_pop.
SEE ALSO
@@ -63,3 +64,9 @@ HISTORY
pod ivan@sisd.com 98-sep-23
+ $Log: svc_acct_pop.txt,v $
+ Revision 1.3 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.2 1998/12/29 11:59:53 ivan
+ mostly properly OO, some work still to be done with svc_ stuff
+
diff --git a/htdocs/docs/man/svc_acct_sm.txt b/htdocs/docs/man/svc_acct_sm.txt
index e9940af9a..dc0773f0f 100644
--- a/htdocs/docs/man/svc_acct_sm.txt
+++ b/htdocs/docs/man/svc_acct_sm.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::svc_acct_sm;
- $record = create FS::svc_acct_sm \%hash;
- $record = create FS::svc_acct_sm { 'column' => 'value' };
+ $record = new FS::svc_acct_sm \%hash;
+ $record = new FS::svc_acct_sm { 'column' => 'value' };
$error = $record->insert;
@@ -31,7 +31,7 @@ DESCRIPTION
domuid - uid of the target account (see the FS::svc_acct manpage)
domuser - virtual username
METHODS
- create HASHREF
+ new HASHREF
Creates a new virtual mail alias. To add the virtual mail
alias to the database, see the section on "insert".
@@ -93,11 +93,14 @@ METHODS
Sets any fixed values; see the FS::part_svc manpage.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: svc_acct_sm.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $
+BUGS
The remote commands should be configurable.
+ The $recref stuff in sub check should be cleaned up.
+
SEE ALSO
the FS::Record manpage, the FS::Conf manpage, the FS::cust_svc
manpage, the FS::part_svc manpage, the FS::cust_pkg manpage, the
diff --git a/htdocs/docs/man/svc_domain.txt b/htdocs/docs/man/svc_domain.txt
index 03d3dbc27..939a940ac 100644
--- a/htdocs/docs/man/svc_domain.txt
+++ b/htdocs/docs/man/svc_domain.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::svc_domain;
- $record = create FS::svc_domain \%hash;
- $record = create FS::svc_domain { 'column' => 'value' };
+ $record = new FS::svc_domain \%hash;
+ $record = new FS::svc_domain { 'column' => 'value' };
$error = $record->insert;
@@ -23,13 +23,13 @@ SYNOPSIS
DESCRIPTION
An FS::svc_domain object represents a domain. FS::svc_domain
- inherits from FS::Record. The following fields are currently
+ inherits from FS::svc_Common. The following fields are currently
supported:
svcnum - primary key (assigned automatically for new accounts)
domain
METHODS
- create HASHREF
+ new HASHREF
Creates a new domain. To add the domain to the database, see
the section on "insert".
@@ -47,6 +47,13 @@ METHODS
A registration or transfer email will be submitted unless
$FS::svc_domain::whois_hack is true.
+ The additional field *email* can be used to manually set the
+ admin contact email address on this email. Otherwise, the
+ svc_acct records for this package (see the FS::cust_pkg
+ manpage) are searched. If there is exactly one svc_acct
+ record in the same package, it is automatically used.
+ Otherwise an error is returned.
+
delete
Deletes this domain from the database. If there is an error,
returns the error, otherwise returns false.
@@ -96,23 +103,26 @@ METHODS
submit_internic
Submits a registration email for this domain.
-BUGS
- It doesn't properly override FS::Record yet.
+VERSION
+ $Id: svc_domain.txt,v 1.4 1999-04-08 13:39:32 ivan Exp $
+BUGS
All BIND/DNS fields should be included (and exported).
- All registries should be supported.
+ Delete doesn't send a registration template.
- Not all configuration access is through FS::Conf!
+ All registries should be supported.
Should change action to a real field.
+ The $recref stuff in sub check should be cleaned up.
+
SEE ALSO
- the FS::Record manpage, the FS::Conf manpage, the FS::cust_svc
- manpage, the FS::part_svc manpage, the FS::cust_pkg manpage, the
- FS::SSH manpage, the ssh manpage, the dot-qmail manpage,
- schema.html from the base documentation, config.html from the
- base documentation.
+ the FS::svc_Common manpage, the FS::Record manpage, the FS::Conf
+ manpage, the FS::cust_svc manpage, the FS::part_svc manpage, the
+ FS::cust_pkg manpage, the FS::SSH manpage, the ssh manpage, the
+ dot-qmail manpage, schema.html from the base documentation,
+ config.html from the base documentation.
HISTORY
ivan@voicenet.com 97-jul-21
@@ -129,3 +139,21 @@ HISTORY
pod, some FS::Conf (not complete) ivan@sisd.com 98-sep-23
+ $Log: svc_domain.txt,v $
+ Revision 1.4 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.7 1999/04/07 14:40:15 ivan
+ use all stuff that's qsearch'ed to avoid warnings
+
+ Revision 1.6 1999/01/25 12:26:17 ivan yet more mod_perl stuff
+
+ Revision 1.5 1998/12/30 00:30:47 ivan svc_ stuff is more
+ properly OO - has a common superclass FS::svc_Common
+
+ Revision 1.3 1998/11/13 09:56:57 ivan change configuration file
+ layout to support multiple distinct databases (with own set of
+ config files, export, etc.)
+
+ Revision 1.2 1998/10/14 08:18:21 ivan More informative error
+ messages and better doc for admin contact email stuff
+
diff --git a/htdocs/docs/man/type_pkgs.txt b/htdocs/docs/man/type_pkgs.txt
index 9822b4802..f575e2041 100644
--- a/htdocs/docs/man/type_pkgs.txt
+++ b/htdocs/docs/man/type_pkgs.txt
@@ -4,8 +4,8 @@ NAME
SYNOPSIS
use FS::type_pkgs;
- $record = create FS::type_pkgs \%hash;
- $record = create FS::type_pkgs { 'column' => 'value' };
+ $record = new FS::type_pkgs \%hash;
+ $record = new FS::type_pkgs { 'column' => 'value' };
$error = $record->insert;
@@ -24,7 +24,7 @@ DESCRIPTION
typenum - Agent type, see the FS::agent_type manpage
pkgpart - Billing item definition, see the FS::part_pkg manpage
METHODS
- create HASHREF
+ new HASHREF
Create a new record. To add the record to the database, see
the section on "insert".
@@ -45,6 +45,14 @@ METHODS
there is an error, returns the error, otherwise returns
false. Called by the insert and replace methods.
+VERSION
+ $Id: type_pkgs.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $
+
+BUGS
+SEE ALSO
+ the FS::Record manpage, the FS::agent_type manpage, the
+ FS::part_pkgs manpage, schema.html from the base documentation.
+
HISTORY
Defines the relation between agent types and pkgparts (Which
pkgparts can the different [types of] agents sell?)
@@ -53,3 +61,9 @@ HISTORY
change to ut_ FS::Record, fixed bugs ivan@sisd.com 97-dec-10
+ $Log: type_pkgs.txt,v $
+ Revision 1.3 1999-04-08 13:39:32 ivan
+ convert from pod for 1.2.0 release
+ Revision 1.2 1998/12/29 11:59:58 ivan
+ mostly properly OO, some work still to be done with svc_ stuff
+
diff --git a/htdocs/docs/postgresql.html b/htdocs/docs/postgresql.html
new file mode 100755
index 000000000..151081176
--- /dev/null
+++ b/htdocs/docs/postgresql.html
@@ -0,0 +1,23 @@
+<head>
+ <title>PostgreSQL notes</title>
+</head>
+<body>
+ <h1>PostgreSQL notes</h1>
+<p>
+PostgreSQL ships by default with a maximum of 31 character column names. If
+you use arbitrary RADIUS attributes longer than 9 characters, fs-setup will
+fail with `duplicate column' errors (in the part_svc table).
+Solution: use a different database
+engine, or recompile PostgreSQL with 64 character column names.
+</p>
+Future versions of Freeside will keep all column names under 31 characters to
+avoid this problem.
+</p>
+<p>
+( I've personally been unable to get PostgreSQL working with larger column names,
+though the process does look like it should be straightforward. If anyone is
+interested in assisting me with this, please get in touch.
+ -Ivan <a href="mailto:ivan@sisd.com">&lt;ivan@sisd.com</a>&gt; )
+</p>
+</body>
+
diff --git a/htdocs/docs/schema.html b/htdocs/docs/schema.html
index 5a296ec83..f50525183 100644
--- a/htdocs/docs/schema.html
+++ b/htdocs/docs/schema.html
@@ -50,7 +50,9 @@
<li>custnum - primary key
<li>agentnum - <a href="#agent">agent</a>
<li>refnum - <a href="#part_referral">referral</a>
+ <li>titlenum - <a href="#part_title">title</a>
<li>first - name
+ <li>middle - name
<li>last - name
<li>ss - social security number
<li>company
@@ -70,11 +72,18 @@
<li>tax - tax exempt, Y or null
<li>otaker - order taker
</ul>
+ <li><a name="cust_main_invoice">cust_main_invoice</a> - Invoice destinations for email invoices
+ <ul>
+ <li>destnum - primary key
+ <li>custnum - <a href="#cust_main">customer</a>
+ <li>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)
+ </ul>
<li><a name="cust_main_county">cust_main_county</a> - Tax rates
<ul>
<li>taxnum - primary key
<li>state
<li>county
+ <li>country
<li>tax - % rate
</ul>
<li><a name="cust_pay">cust_pay</a> - Payments
@@ -155,6 +164,11 @@
<li><i>table</i>__<i>field</i> - Default or fixed value for <i>field</i> in <i>table</i>
<li><i>table</i>__<i>field</i>_flag - null, D or F
</ul>
+ <li><a name="part_title">part_title</a> - Personal titles
+ <ul>
+ <li>titlenum - primary key
+ <li>title - personal title (`Dr.' or `Mr.')
+ </ul>
<li><a name="pkg_svc">pkg_svc</a>
<ul>
<li>pkgpart - <a href="#part_pkg">Package definition</a>
diff --git a/htdocs/docs/trouble.html b/htdocs/docs/trouble.html
index 2cf6d4e71..c918138c8 100644
--- a/htdocs/docs/trouble.html
+++ b/htdocs/docs/trouble.html
@@ -5,7 +5,7 @@
<h1>Troubleshooting</h1>
<ul>
<li>When troubleshooting the web interface, helpful information is often in your web server's error log.
- <li>Internet Explorer will not work with Freeside's HTML interface.
+ <li>Internet Explorer will not work with Freeside's HTML interface. <b>This may be fixed in >1.2, please report your experiences!</b>
<a HREF="http://www.netscape.com">Netscape</a>,
<a HREF="http://lynx.browser.org">Lynx</a>, and
<a HREF="http://www.cs.indiana.edu/elisp/w3/docs.html">Emacs/W3</a>,
@@ -17,7 +17,7 @@ Ambiguous use of value => resolved to "value" =>
at /usr/lib/perl5/site_perl/File/CounterFile.pm line 132.
</pre>
This clutters up your log files but is otherwise harmless. Upgrade to the latest File::CounterFile.
- <li>If you get an Internal Server Error when adding or editing, but find that the update has occured, and you get something like the following in your web server's error log:
+ <li><b>(No longer applicable in >1.2!)</b> If you get an Internal Server Error when adding or editing, but find that the update has occured, and you get something like the following in your web server's error log:
<pre>
access to <i>/your/path</i>/edit/process/<i>some_table</i>.cgi failed for
<i>machine.domain.tld</i>, reason: malformed header from script.
@@ -31,11 +31,8 @@ at <i>/your/path</i>/site_perl/FS/UID.pm line 26.
BEGIN failed--compilation aborted at
<i>/your/path</i>/edit/process/part_svc.cgi line 15.
</pre>
- Then the scripts are not running setuid freeside. If you were editing
-the files, it is possible you inadvertantly removed the setuid bit.
-As mentioned in the <a href="install.html">New Installation</a> section of the documentation, set ownership and permissions for the web interface. Your system should support secure setuid scripts or Perl's emulation, see <a href="http://www.perl.com/CPAN-local/doc/manual/html/pod/perlsec.html#Security_Bugs">perlsec: Security Bugs</a> for information and workarounds.
-<pre>cd /usr/local/apache/htdocs/freeside
-chown -R freeside .
-chmod 4755 browse/*.cgi edit/*.cgi edit/process/*.cgi misc/*.cgi misc/process/*.cgi search/*.cgi view/*.cgi</pre>
+ Then the scripts are not running as the freeside freeside user. See
+the <a href="install.html">New Installation</a> section of the documentation.
+ <li>If you receive `can not connect to server' errors using MySQL on a system that doesn't support native threading, you may need to specify the full hostname in your DBI datasource. See the <a href="http://www.mysql.com/Manual_chapter/manual_Problems.html#Can_not_connect_to_server">MySQL documentation</a>, DBI manpage and the DBD::mysql manpage for details.
</ul>
</body>
diff --git a/htdocs/docs/upgrade2.html b/htdocs/docs/upgrade2.html
index 4bf7ea45a..7acae48f7 100644
--- a/htdocs/docs/upgrade2.html
+++ b/htdocs/docs/upgrade2.html
@@ -1,8 +1,8 @@
<head>
- <title>Upgrading to 1.1.3</title>
+ <title>Upgrading to 1.1.4</title>
</head>
<body>
-<h1>Upgrading to 1.1.3 from 1.1.x</h1>
+<h1>Upgrading to 1.1.4 from 1.1.x</h1>
<ul>
<li>If migrating from 1.0.0, see these <a href="upgrade.html">instructions</a> first.
<li>Back up your data and current Freeside installation.
diff --git a/htdocs/docs/upgrade3.html b/htdocs/docs/upgrade3.html
new file mode 100644
index 000000000..815652aaf
--- /dev/null
+++ b/htdocs/docs/upgrade3.html
@@ -0,0 +1,40 @@
+<head>
+ <title>Upgrading to 1.2.x</title>
+</head>
+<body>
+<h1>Upgrading to 1.1.x from 1.2.x</h1>
+<ul>
+ <li>If migrating from 1.0.0, see these <a href="upgrade.html">instructions</a> first.
+ <li>If migrating from less than 1.1.4, see these <a href="upgrade2.html">instructions</a> first.
+ <li>Back up your data and current Freeside installation.
+ <li>Install the Perl module <a href="http://www.perl.com/CPAN/modules/by-module/String/">String-Approx</a>
+ <li><a href="config.html">Configuration file</a> location has changed!
+ <li>Move /var/spool/freeside/dbdef.<i>datasrc</i> to /usr/local/etc/freeside/dbdef.<i>datasrc</i>.
+ <li>Move /var/spool/freeside/counters to /usr/local/etc/freeside/counters.<i>datasrc</i>.
+ <li>Move /var/spool/freeside/export to /usr/local/etc/freeside/export.<i>datasrc</i>.
+ <li>Apply the following changes to your database:
+<pre>
+<!-- ALTER TABLE cust_main ADD middle varchar(80) NULL;
+ALTER TABLE cust_main ADD titlenum int NULL;
+-->ALTER TABLE cust_main CHANGE state state varchar(80) NULL;
+ALTER TABLE cust_main_county CHANGE state state varchar(80) NULL;
+ALTER TABLE cust_main_county ADD country char(2);
+ALTER TABLE cust_main CHANGE paydate paydate varchar(10);
+UPDATE cust_main SET country = "US" where country IS NULL OR country = '';
+UPDATE cust_main_county SET country = "US" where country IS NULL OR country = "";
+<!--CREATE TABLE part_title (
+ titlenum int NOT NULL,
+ title varchar(80) NOT NULL,
+ PRIMARY KEY (titlenum)
+);
+-->CREATE TABLE cust_main_invoice (
+ destnum int NOT NULL,
+ custnum int NOT NULL,
+ dest varchar(80) NOT NULL,
+ PRIMARY KEY (destnum),
+ INDEX ( custnum )
+);
+</pre>
+ <li>Run bin/dbdef-create. This file uses MySQL-specific syntax. If you are running a different database engine you will need to modify it slightly.
+ <li>Copy or symlink htdocs and site_perl to the new copies.
+</body>