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
|
NAME
FS::cust_pkg - Object methods for cust_pkg objects
SYNOPSIS
use FS::cust_pkg;
$record = create FS::cust_pkg \%hash;
$record = create FS::cust_pkg { 'column' => 'value' };
$error = $record->insert;
$error = $new_record->replace($old_record);
$error = $record->delete;
$error = $record->check;
$error = $record->cancel;
$error = $record->suspend;
$error = $record->unsuspend;
$error = FS::cust_pkg::order( $custnum, \@pkgparts );
$error = FS::cust_pkg::order( $custnum, \@pkgparts, \@remove_pkgnums ] );
DESCRIPTION
An FS::cust_pkg object represents a customer billing item.
FS::cust_pkg inherits from FS::Record. The following fields are
currently supported:
pkgnum - primary key (assigned automatically for new billing items)
custnum - Customer (see the FS::cust_main manpage)
pkgpart - Billing item definition (see the FS::part_pkg manpage)
setup - date
bill - date
susp - date
expire - date
cancel - date
otaker - order taker (assigned automatically if null, see the FS::UID manpage)
Note: setup, bill, susp, expire and cancel are specified as UNIX
timestamps; see the section on "time" in the perlfunc manpage.
Also see the Time::Local manpage and the Date::Parse manpage for
conversion functions.
METHODS
create HASHREF
Create a new billing item. To add the item to the database,
see the section on "insert".
insert
Adds this billing item to the database ("Orders" the item).
If there is an error, returns the error, otherwise returns
false.
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
false.
Currently, custnum, setup, bill, susp, expire, and cancel
may be changed.
pkgpart may not be changed, but 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).
suspend is normally updated by the suspend and unsuspend
methods.
cancel is normally updated by the cancel method (and also
the order subroutine in some cases).
check
Checks all fields to make sure this is a valid billing item.
If there is an error, returns the error, otherwise returns
false. Called by the insert and replace methods.
cancel
Cancels and removes all services (see the FS::cust_svc
manpage and the FS::part_svc manpage) in this package, then
cancels the package itself (sets the cancel field to now).
If there is an error, returns the error, otherwise returns
false.
suspend
Suspends all services (see the FS::cust_svc manpage and the
FS::part_svc manpage) in this package, then suspends the
package itself (sets the susp field to now).
If there is an error, returns the error, otherwise returns
false.
unsuspend
Unsuspends all services (see the FS::cust_svc manpage and
the FS::part_svc manpage) in this package, then unsuspends
the package itself (clears the susp field).
If there is an error, returns the error, otherwise returns
false.
SUBROUTINES
order CUSTNUM, PKGPARTS_ARYREF, [ REMOVE_PKGNUMS_ARYREF ]
CUSTNUM is a customer (see the FS::cust_main manpage)
PKGPARTS is a list of pkgparts specifying the the billing
item definitions (see the FS::part_pkg manpage) to order for
this customer. Duplicates are of course permitted.
REMOVE_PKGNUMS is an optional list of pkgnums specifying the
billing items to remove for this customer. The services (see
the FS::cust_svc manpage) are moved to the new billing
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.
sub order is not OO. Perhaps it should be moved to FS::cust_main
and made so?
In sub order, the @pkgparts array (passed by reference) is
clobbered.
Also in sub order, no money is adjusted. Once FS::part_pkg
defines a standard method to pass dates to the recur_prog
expression, it should do so.
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
manpage, schema.html from the base documentation
HISTORY
ivan@voicenet.com 97-jul-1 - 21
fixed for new agent->agent_type->type_pkgs in &order
ivan@sisd.com 98-mar-7
pod ivan@sisd.com 98-sep-21
|