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;
  $tax_amount = $record->tax;
  @lines = $cust_bill->print_text;
  @lines = $cust_bill->print_text $time;


DESCRIPTION

An FS::cust_bill object represents an invoice; a declaration that a customer owes you money. The specific charges are itemized as cust_bill_pkg records (see the FS::cust_bill_pkg manpage). 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 perlfunc/``time''. Also see the Time::Local manpage and the Date::Parse manpage for conversion functions.
charged - amount of this invoice
printed - how many times this invoice has been printed automatically (see collect in the FS::cust_main manpage).
closed - books closed flag, empty or `Y'


METHODS

new HASHREF
Creates a new invoice. To add the invoice to the database, see 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.

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 printed may be changed. 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
Depreciated. See the cust_credited method.
 #Returns a list consisting of the total previous credited (see
 #L<FS::cust_credit>) and unapplied for this customer, followed by the previous
 #outstanding credits (FS::cust_credit objects).

cust_pay
Depreciated. See the cust_bill_pay method.

#Returns all payments (see the FS::cust_pay manpage) for this invoice.

cust_bill_pay
Returns all payment applications (see the FS::cust_bill_pay manpage) for this invoice.

cust_credited
Returns all applied credits (see the FS::cust_credit_bill manpage) for this invoice.

tax
Returns the tax amount (see the FS::cust_bill_pkg manpage) for this invoice.

owed
Returns the amount owed (still outstanding) on this invoice, which is charged minus all payment applications (see the FS::cust_bill_pay manpage) and credit applications (see the FS::cust_credit_bill manpage).

print_text [TIME];
Returns an text 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 perlfunc/``time''. Also see the Time::Local manpage and the Date::Parse manpage for conversion functions.


VERSION

$Id: cust_bill.html,v 1.3 2002-01-29 17:42:46 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_bill_pay manpage, FS:;cust_pay, the FS::cust_bill_pkg manpage, the FS::cust_bill_credit manpage, schema.html from the base documentation.