NAME FS::cust_bill - Object methods for cust_bill records SYNOPSIS use FS::cust_bill; $record = new FS::cust_bill \%hash; $record = new FS::cust_bill { 'column' => 'value' }; $error = $record->insert; $error = $new_record->replace($old_record); $error = $record->delete; $error = $record->check; ( $total_previous_balance, @previous_cust_bill ) = $record->previous; @cust_bill_pkg_objects = $cust_bill->cust_bill_pkg; ( $total_previous_credits, @previous_cust_credit ) = $record->cust_credit; @cust_pay_objects = $cust_bill->cust_pay; @lines = $cust_bill->print_text; @lines = $cust_bill->print_text $time; DESCRIPTION An FS::cust_bill object represents an invoice. FS::cust_bill inherits from FS::Record. The following fields are currently supported: invnum - primary key (assigned automatically for new invoices) custnum - customer (see the FS::cust_main manpage) _date - specified as a UNIX timestamp; see the section on "time" in the perlfunc manpage. Also see the Time::Local manpage and the Date::Parse manpage for conversion functions. charged - amount of this invoice owed - amount still outstanding on this invoice, which is charged minus all payments (see the FS::cust_pay manpage). printed - how many times this invoice has been printed automatically (see the section on "collect" in the FS::cust_main manpage). METHODS 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 FS::cust_main manpage). insert Adds this invoice to the database ("Posts" the invoice). If there is an error, returns the error, otherwise returns false. When adding new invoices, owed must be charged (or null, in which case it is automatically set to charged). delete Currently unimplemented. I don't remove invoices because there would then be no record you ever posted this invoice (which is bad, no?) replace OLD_RECORD Replaces the OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns false. Only owed and printed may be changed. Owed is normally updated by creating and inserting a payment (see the FS::cust_pay manpage). Printed is normally updated by calling the collect method of a customer object (see the FS::cust_main manpage). check Checks all fields to make sure this is a valid invoice. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods. previous Returns a list consisting of the total previous balance for this customer, followed by the previous outstanding invoices (as FS::cust_bill objects also). cust_bill_pkg Returns the line items (see the FS::cust_bill_pkg manpage) for this invoice. cust_credit Returns a list consisting of the total previous credited (see the FS::cust_credit manpage) for this customer, followed by the previous outstanding credits (FS::cust_credit objects). cust_pay Returns all payments (see the FS::cust_pay manpage) for this invoice. print_text [TIME]; Returns an ASCII invoice, as a list of lines. TIME an optional value used to control the printing of overdue messages. The default is now. It isn't the date of the invoice; that's the `_date' field. It is specified as a UNIX timestamp; see the section on "time" in the perlfunc 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. 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?) SEE ALSO the FS::Record manpage, the FS::cust_main manpage, the FS::cust_pay manpage, the FS::cust_bill_pkg manpage, the FS::cust_credit manpage, schema.html from the base documentation. HISTORY ivan@voicenet.com 97-jul-1 small fix for new API ivan@sisd.com 98-mar-14 charges can be negative ivan@sisd.com 98-jul-13 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