1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
<HTML>
<HEAD>
<TITLE>FS::cust_bill - Object methods for cust_bill records</TITLE>
<LINK REV="made" HREF="mailto:perl@packages.debian.org">
</HEAD>
<BODY>
<A NAME="__index__"></A>
<!-- INDEX BEGIN -->
<UL>
<LI><A HREF="#name">NAME</A></LI>
<LI><A HREF="#synopsis">SYNOPSIS</A></LI>
<LI><A HREF="#description">DESCRIPTION</A></LI>
<LI><A HREF="#methods">METHODS</A></LI>
<LI><A HREF="#version">VERSION</A></LI>
<LI><A HREF="#bugs">BUGS</A></LI>
<LI><A HREF="#see also">SEE ALSO</A></LI>
</UL>
<!-- INDEX END -->
<HR>
<P>
<H1><A NAME="name">NAME</A></H1>
<P>FS::cust_bill - Object methods for cust_bill records</P>
<P>
<HR>
<H1><A NAME="synopsis">SYNOPSIS</A></H1>
<PRE>
use FS::cust_bill;</PRE>
<PRE>
$record = new FS::cust_bill \%hash;
$record = new FS::cust_bill { 'column' => 'value' };</PRE>
<PRE>
$error = $record->insert;</PRE>
<PRE>
$error = $new_record->replace($old_record);</PRE>
<PRE>
$error = $record->delete;</PRE>
<PRE>
$error = $record->check;</PRE>
<PRE>
( $total_previous_balance, @previous_cust_bill ) = $record->previous;</PRE>
<PRE>
@cust_bill_pkg_objects = $cust_bill->cust_bill_pkg;</PRE>
<PRE>
( $total_previous_credits, @previous_cust_credit ) = $record->cust_credit;</PRE>
<PRE>
@cust_pay_objects = $cust_bill->cust_pay;</PRE>
<PRE>
@lines = $cust_bill->print_text;
@lines = $cust_bill->print_text $time;</PRE>
<P>
<HR>
<H1><A NAME="description">DESCRIPTION</A></H1>
<P>An FS::cust_bill object represents an invoice; a declaration that a customer
owes you money. The specific charges are itemized as <STRONG>cust_bill_pkg</STRONG> records
(see <A HREF=".././FS/cust_bill_pkg.html">the FS::cust_bill_pkg manpage</A>). FS::cust_bill inherits from FS::Record. The
following fields are currently supported:</P>
<DL>
<DT><STRONG><A NAME="item_key">invnum - primary key (assigned automatically for new invoices)</A></STRONG><BR>
<DD>
<DT><STRONG><A NAME="item_customer">custnum - customer (see <A HREF=".././FS/cust_main.html">the FS::cust_main manpage</A>)</A></STRONG><BR>
<DD>
<DT><STRONG><A NAME="item__date_%2D_specified_as_a_UNIX_timestamp%3B_see_per">_date - specified as a UNIX timestamp; see <EM>perlfunc/``time''</EM>. Also see
<A HREF="../Time/Local.html">the Time::Local manpage</A> and <A HREF="../Date/Parse.html">the Date::Parse manpage</A> for conversion functions.</A></STRONG><BR>
<DD>
<DT><STRONG><A NAME="item_charged_%2D_amount_of_this_invoice">charged - amount of this invoice</A></STRONG><BR>
<DD>
<DT><STRONG><A NAME="item_automatically">printed - how many times this invoice has been printed automatically
(see <A HREF=".././FS/cust_main.html#collect">collect in the FS::cust_main manpage</A>).</A></STRONG><BR>
<DD>
</DL>
<P>
<HR>
<H1><A NAME="methods">METHODS</A></H1>
<DL>
<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><BR>
<DD>
Creates a new invoice. To add the invoice to the database, see <A HREF="#insert">insert</A>.
Invoices are normally created by calling the bill method of a customer object
(see <A HREF=".././FS/cust_main.html">the FS::cust_main manpage</A>).
<P></P>
<DT><STRONG><A NAME="item_insert">insert</A></STRONG><BR>
<DD>
Adds this invoice to the database (``Posts'' the invoice). If there is an error,
returns the error, otherwise returns false.
<P></P>
<DT><STRONG><A NAME="item_delete">delete</A></STRONG><BR>
<DD>
Currently unimplemented. I don't remove invoices because there would then be
no record you ever posted this invoice (which is bad, no?)
<P></P>
<DT><STRONG><A NAME="item_replace_OLD_RECORD">replace OLD_RECORD</A></STRONG><BR>
<DD>
Replaces the OLD_RECORD with this one in the database. If there is an error,
returns the error, otherwise returns false.
<P>Only printed may be changed. printed is normally updated by calling the
collect method of a customer object (see <A HREF=".././FS/cust_main.html">the FS::cust_main manpage</A>).</P>
<P></P>
<DT><STRONG><A NAME="item_check">check</A></STRONG><BR>
<DD>
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.
<P></P>
<DT><STRONG><A NAME="item_previous">previous</A></STRONG><BR>
<DD>
Returns a list consisting of the total previous balance for this customer,
followed by the previous outstanding invoices (as FS::cust_bill objects also).
<P></P>
<DT><STRONG><A NAME="item_cust_bill_pkg">cust_bill_pkg</A></STRONG><BR>
<DD>
Returns the line items (see <A HREF=".././FS/cust_bill_pkg.html">the FS::cust_bill_pkg manpage</A>) for this invoice.
<P></P>
<DT><STRONG><A NAME="item_cust_credit">cust_credit</A></STRONG><BR>
<DD>
Returns a list consisting of the total previous credited (see
<A HREF=".././FS/cust_credit.html">the FS::cust_credit manpage</A>) for this customer, followed by the previous outstanding
credits (FS::cust_credit objects).
<P></P>
<DT><STRONG><A NAME="item_cust_pay">cust_pay</A></STRONG><BR>
<DD>
Returns all payments (see <A HREF=".././FS/cust_pay.html">the FS::cust_pay manpage</A>) for this invoice.
<P></P>
<DT><STRONG><A NAME="item_owed">owed</A></STRONG><BR>
<DD>
Returns the amount owed (still outstanding) on this invoice, which is charged
minus all payments (see <A HREF=".././FS/cust_pay.html">the FS::cust_pay manpage</A>).
<P></P>
<DT><STRONG><A NAME="item_print_text_%5BTIME%5D%3B">print_text [TIME];</A></STRONG><BR>
<DD>
Returns an text invoice, as a list of lines.
<P>TIME an optional value used to control the printing of overdue messages. The
default is now. It isn't the date of the invoice; that's the `_date' field.
It is specified as a UNIX timestamp; see <EM>perlfunc/``time''</EM>. Also see
<A HREF="../Time/Local.html">the Time::Local manpage</A> and <A HREF="../Date/Parse.html">the Date::Parse manpage</A> for conversion functions.</P>
<P></P></DL>
<P>
<HR>
<H1><A NAME="version">VERSION</A></H1>
<P>$Id: cust_bill.html,v 1.1 2001-07-30 07:36:03 ivan Exp $</P>
<P>
<HR>
<H1><A NAME="bugs">BUGS</A></H1>
<P>The delete method.</P>
<P>print_text formatting (and some logic :/) is in source, but needs to be
slurped in from a file. Also number of lines ($=).</P>
<P>missing print_ps for a nice postscript copy (maybe HylaFAX-cover-page-style
or something similar so the look can be completely customized?)</P>
<P>
<HR>
<H1><A NAME="see also">SEE ALSO</A></H1>
<P><A HREF=".././FS/Record.html">the FS::Record manpage</A>, <A HREF=".././FS/cust_main.html">the FS::cust_main manpage</A>, <A HREF=".././FS/cust_pay.html">the FS::cust_pay manpage</A>, <A HREF=".././FS/cust_bill_pkg.html">the FS::cust_bill_pkg manpage</A>,
<A HREF=".././FS/cust_credit.html">the FS::cust_credit manpage</A>, schema.html from the base documentation.</P>
</BODY>
</HTML>
|