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 FS::cust_main)
_date - specified as a UNIX timestamp; see perlfunc/"time". Also see Time::Local and Date::Parse for conversion functions.
charged - amount of this invoice
owed - amount still outstanding on this invoice, which is charged minus all payments (see FS::cust_pay).
printed - how many times this invoice has been printed automatically (see FS::cust_main/"collect").


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 FS::cust_main).

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 FS::cust_pay). Printed is normally updated by calling the collect method of a customer object (see FS::cust_main).

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 FS::cust_bill_pkg) for this invoice.

cust_credit

Returns a list consisting of the total previous credited (see FS::cust_credit) for this customer, followed by the previous outstanding credits (FS::cust_credit objects).

cust_pay

Returns all payments (see FS::cust_pay) 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 perlfunc. Also see Time::Local and Date::Parse for conversion functions.


VERSION

$Id: cust_bill.html,v 1.2 2000-03-03 18:22:42 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

FS::Record, FS::cust_main, FS::cust_pay, FS::cust_bill_pkg, FS::cust_credit, schema.html from the base documentation.