customer classification, RT#6376
[freeside.git] / FS / FS.pm
1 package FS;
2
3 use strict;
4 use vars qw($VERSION);
5
6 $VERSION = '%%%VERSION%%%';
7
8 #find missing entries in this file with:
9 # for a in `ls *pm | cut -d. -f1`; do grep 'L<FS::'$a'>' ../FS.pm >/dev/null || echo "missing $a" ; done
10
11 1;
12 __END__
13
14 =head1 NAME
15
16 FS - Freeside Perl modules
17
18 =head1 SYNOPSIS
19
20 Freeside perl modules and CLI utilities.
21
22 =head2 Utility classes
23
24 L<FS::Schema> - Freeside database schema
25
26 L<FS::Setup> - Setup subroutines
27
28 L<FS::Upgrade> - Upgrade subroutines
29
30 L<FS::Conf> - Freeside configuration values
31
32 L<FS::ConfItem> - Freeside configuration option meta-data.
33
34 L<FS::ConfDefaults> - Freeside configuration default and available values
35
36 L<FS::UID> - User class (not yet OO)
37
38 L<FS::CurrentUser> -  Package representing the current user
39
40 L<FS::CGI> - Non OO-subroutines for the web interface.
41
42 L<FS::Msgcat> - Message catalog
43
44 L<FS::SearchCache> - Search cache
45
46 L<FS::AccessRight> - Access control rights.
47
48 L<FS::Report> - Report data objects
49
50 L<FS::Report::Table> - Report data objects
51
52 L<FS::Report::Table::Monthly> - Report data objects
53
54 L<FS::XMLRPC> - Backend XML::RPC server
55
56 L<FS::Misc> - Miscellaneous subroutines
57
58 L<FS::payby> - Payment types
59
60 L<FS::ClientAPI_SessionCache> - ClientAPI session cache
61
62 L<FS::Pony> - A pony
63
64 L<FS::cust_main::Import> - Batch customer importing
65
66 =head2 Database record classes
67
68 L<FS::Record> - Database record base class
69
70 L<FS::m2m_Common> - Mixin class for classes in a many-to-many relationship
71
72 L<FS::m2name_Common> - Base class for tables with a related table listing names
73
74 L<FS::option_Common> - Base class for option sub-classes
75
76 L<FS::class_Common> - Base class for classification classes
77
78 L<FS::category_Common> - Base class for category (grooups of classifications) classes
79
80 L<FS::conf> - Configuration value class
81
82 L<FS::payinfo_Mixin>  - Mixin class for records in tables that contain payinfo.
83
84 L<FS::access_user> - Employees / internal users
85
86 L<FS::access_user_pref> - Employee preferences
87
88 L<FS::access_group> - Employee groups
89
90 L<FS::access_usergroup> - Employee group membership
91
92 L<FS::access_groupagent> - Group reseller access
93
94 L<FS::access_right> - Access rights
95
96 L<FS::svc_acct_pop> - POP (Point of Presence, not Post
97 Office Protocol) class
98
99 L<FS::part_pop_local> - Local calling area class
100
101 L<FS::part_referral> - Referral class
102
103 L<FS::pkg_referral> - Package referral class
104
105 L<FS::cust_main_county> - Locale (tax rate) class
106
107 L<FS::cust_tax_exempt> - Tax exemption record class
108
109 L<FS::cust_tax_adjustment> - Tax adjustment record class
110
111 L<FS::cust_tax_exempt_pkg> - Line-item specific tax exemption record class
112
113 L<FS::svc_Common> - Service base class
114
115 L<FS::svc_Parent_Mixin> - Mixin class for svc_ classes with a parent_svcnum field
116
117 L<FS::svc_acct> - Account (shell, RADIUS, POP3) class
118
119 L<FS::acct_snarf> - External mail account class
120
121 L<FS::acct_rt_transaction> - Time worked application to account class
122
123 L<FS::radius_usergroup> - RADIUS groups
124
125 L<FS::svc_domain> - Domain class
126
127 L<FS::domain_record> - DNS zone entries
128
129 L<FS::registrar> - Domain registrar class
130
131 L<FS::svc_forward> - Mail forwarding class
132
133 L<FS::svc_www> - Web virtual host class.
134
135 L<FS::svc_broadband> - DSL, wireless and other broadband class.
136
137 L<FS::addr_block> - Address block class
138
139 L<FS::router> - Router class
140
141 L<FS::part_virtual_field> - Broadband virtual field class
142
143 L<FS::svc_phone> - Phone service class
144
145 L<FS::phone_device> - Phone device class
146
147 L<FS::part_device> - Device definition class
148
149 L<FS::phone_avail> - Phone number availability cache
150
151 L<FS::cdr> - Call Detail Record class
152
153 L<FS::cdr_calltype> - CDR calltype class
154
155 L<FS::cdr_carrier> - CDR carrier class
156
157 L<FS::cdr_type> - CDR type class
158
159 L<FS::svc_external> - Externally tracked service class.
160
161 L<FS::inventory_class> - Inventory classes
162
163 L<FS::inventory_item> - Inventory items
164
165 L<FS::part_svc> - Service definition class
166
167 L<FS::part_svc_column> - Column constraint class
168
169 L<FS::export_svc> - Class linking service definitions (see L<FS::part_svc>)
170 with exports (see L<FS::part_export>)
171
172 L<FS::part_export> - External provisioning export class
173
174 L<FS::part_export_option> - Export option class
175
176 L<FS::pkg_category> - Package category class (invoice oriented)
177
178 L<FS::pkg_class> - Package class class
179
180 L<FS::part_pkg> - Package definition class
181
182 L<FS::part_pkg_link> - Package definition link class
183
184 L<FS::part_pkg_taxclass> - Tax class class
185
186 L<FS::part_pkg_option> - Package definition option class
187
188 L<FS::part_pkg_report_option> - Package reporting classification class
189
190 L<FS::pkg_svc> - Class linking package definitions (see L<FS::part_pkg>) with
191 service definitions (see L<FS::part_svc>)
192
193 L<FS::reg_code> - One-time registration codes
194
195 L<FS::reg_code_pkg> - Class linking registration codes (see L<FS::reg_code>) with package definitions (see L<FS::part_pkg>)
196
197 L<FS::rate> - Rate plans for call billing
198
199 L<FS::rate_region> - Rate regions for call billing
200
201 L<FS::rate_prefix> - Rate region prefixes for call billing
202
203 L<FS::rate_detail> - Rate plan detail for call billing
204
205 L<FS::usage_class> - Usage class class
206
207 L<FS::agent> - Agent (reseller) class
208
209 L<FS::agent_type> - Agent type class
210
211 L<FS::type_pkgs> - Class linking agent types (see L<FS::agent_type>) with package definitions (see L<FS::part_pkg>)
212
213 L<FS::payment_gateway> - Payment gateway class
214
215 L<FS::payment_gateway_option> - Payment gateway option class
216
217 L<FS::agent_payment_gateway> - Agent payment gateway class
218
219 L<FS::cust_svc> - Service class
220
221 L<FS::cust_pkg> - Customer package class
222
223 L<FS::cust_pkg_option> - Customer package option class
224
225 L<FS::cust_pkg_detail> - Customer package details class
226
227 L<FS::reason_type> - Reason type class
228
229 L<FS::reason> - Reason class
230
231 L<FS::cust_pkg_reason> - Package reason class
232
233 L<FS::cust_main> - Customer class
234
235 L<FS::cust_main_location> - Customer location class
236
237 L<FS::cust_main_Mixin> - Mixin class for records that contain fields from cust_main
238
239 L<FS::cust_main_invoice> - Invoice destination class
240
241 L<FS::cust_class> - Customer classification class
242
243 L<FS::cust_category> - Customer category class
244
245 L<FS::cust_main_exemption> - Customer tax exemption class
246
247 L<FS::cust_main_note> - Customer note class
248
249 L<FS::banned_pay> - Banned payment information class
250
251 L<FS::cust_bill> - Invoice class
252
253 L<FS::cust_statement> - Informational statement class
254
255 L<FS::cust_bill_pkg> - Invoice line item class
256
257 L<FS::cust_bill_pkg_detail> - Invoice line item detail class
258
259 L<FS::part_bill_event> - (Old) Invoice event definition class
260
261 L<FS::cust_bill_event> - (Old) Completed invoice event class
262
263 L<FS::part_event> - (New) Billing event definition class
264
265 L<FS::part_event_option> - (New) Billing event option class
266
267 L<FS::part_event::Condition> - (New) Billing event condition base class
268
269 L<FS::part_event::Action> - (New) Billing event action base class
270
271 L<FS::part_event_condition> - (New) Billing event condition class
272
273 L<FS::part_event_condition_option> - (New) Billing event condition option class
274
275 L<FS::part_event_condition_option_option> - (New) Billing event condition compound option class
276
277 L<FS::cust_event> - (New) Customer event class
278
279 L<FS::cust_bill_ApplicationCommon> - Base class for bill application classes
280
281 L<FS::cust_pay> - Payment class
282
283 L<FS::cust_pay_pending> - Pending payment class
284
285 L<FS::cust_pay_void> - Voided payment class
286
287 L<FS::cust_bill_pay> - Payment application class
288
289 L<FS::cust_bill_pay_pkg> - Line-item specific payment application class
290
291 L<FS::cust_bill_pay_batch> - Batch payment application class
292
293 L<FS::cust_credit> - Credit class
294
295 L<FS::cust_refund> - Refund class
296
297 L<FS::cust_credit_refund> - Refund application to credit class
298
299 L<FS::cust_credit_bill> - Credit application to invoice class
300
301 L<FS::cust_credit_bill_pkg> - Line-item specific credit application to invoice class
302
303 L<FS::cust_pay_refund> - Refund application to payment class
304
305 L<FS::pay_batch> - Credit card transaction queue class
306
307 L<FS::cust_pay_batch> - Credit card transaction member queue class
308
309 L<FS::prepay_credit> - Prepaid "calling card" credit class.
310
311 L<FS::nas> - Network Access Server class
312
313 L<FS::port> - NAS port class
314
315 L<FS::session> - User login session class
316
317 L<FS::queue> - Job queue
318
319 L<FS::queue_arg> - Job arguments
320
321 L<FS::queue_depend> - Job dependencies
322
323 L<FS::msgcat> - Message catalogs
324
325 L<FS::clientapi_session>
326
327 L<FS::clientapi_session_field>
328
329 =head2 Historical database record classes
330
331 L<FS::h_Common> - History table base class
332
333 L<FS::h_cust_pay> - Historical record of customer payment changes
334
335 L<FS::h_cust_credit> - Historical record of customer credit changes
336
337 L<FS::h_cust_bill> - Historical record of customer tax changes (old-style)
338
339 L<FS::h_cust_svc> - Object method for h_cust_svc objects
340
341 L<FS::h_cust_tax_exempt> - Historical record of customer tax changes (old-style)
342
343 L<FS::h_domain_record> - Historical DNS entry objects
344
345 L<FS::h_svc_acct> - Historical account objects
346
347 L<FS::h_svc_broadband> - Historical broadband connection objects
348
349 L<FS::h_svc_domain> - Historical domain objects
350
351 L<FS::h_svc_external> - Historical externally tracked service objects
352
353 L<FS::h_svc_forward> - Historical mail forwarding alias objects
354
355 L<FS::h_svc_phone> - Historical phone number objects
356
357 L<FS::h_svc_www> - Historical web virtual host objects
358
359 =head2 Remote API modules
360
361 L<FS::SelfService> - Self-service API
362
363 L<FS::SelfService::XMLRPC> - Self-service XML-RPC API
364
365 =head2 User Interface classes
366
367 L<FS::UI::Web> - Web user-interface class
368
369 L<FS::UI::bytecount> - Byte counter user-interface class
370
371 =head2 Command-line utilities
372
373 L<freeside-adduser> - Command line interface to add (freeside) users.
374
375 L<freeside-daily> - Run daily billing and collection events.
376
377 L<freeside-monthly> - Run monthly billing and invoice collection events.
378
379 L<freeside-dbdef-create> - Recreate database schema cache
380
381 L<freeside-deluser> - Command line interface to delete (freeside) users.
382
383 L<freeside-expiration-alerter> - Emails notifications of credit card expirations.
384
385 L<freeside-email> -  Prints email addresses of all users on STDOUT
386
387 L<freeside-fetch> - Send a freeside page to a list of employees.
388
389 L<freeside-prepaidd> - Real-time daemon for prepaid packages
390
391 L<freeside-prune-applications> - Removes stray applications of credit, payment to bills, refunds, etc.
392
393 L<freeside-queued> - Job queue daemon
394
395 L<freeside-radgroup> - Command line utility to manipulate radius groups
396
397 L<freeside-reexport> - Command line tool to re-trigger export jobs for existing services
398
399 L<freeside-reset-fixed> - Command line tool to set the fixed columns for existing services
400
401 L<freeside-sqlradius-dedup-group> - Command line tool to eliminate duplicate usergroup entries from radius tables
402
403 L<freeside-sqlradius-radacctd> - Real-time radacct import daemon
404
405 L<freeside-sqlradius-reset> - Command line interface to reset and recreate RADIUS SQL tables
406
407 L<freeside-sqlradius-seconds> - Command line time-online tool
408
409 L<freeside-upgrade> - Upgrades database schema for new freeside verisons.
410
411 =head1 Notes
412
413 To quote perl(1), "If you're intending to read these straight through for the
414 first time, the suggested order will tend to reduce the number of forward
415 references."
416
417 If you've never used OO modules before,
418 http://www.perl.com/doc/FMTEYEWTK/easy_objects.html might help you out.
419
420 =head1 DESCRIPTION
421
422 Freeside is a billing and administration package for wired and wireless ISPs,
423 VoIP, hosting, service and content providers and other online businesses.
424
425 The Freeside home page is at <http://www.sisd.com/freeside>.
426
427 The main documentation is at <http://www.sisd.com/mediawiki>.
428
429 =head1 SUPPORT
430
431 A mailing list for users is available.  Send a blank message to
432 <freeside-users-subscribe@sisd.com> to subscribe.
433
434 A mailing list for developers is available.  It is intended to be lower volume
435 and higher SNR than the users list.  Send a blank message to
436 <freeside-devel-subscribe@sisd.com> to subscribe.
437
438 Commercial support is available; see
439 <http://www.sisd.com/freeside/commercial.html>.
440
441 =head1 AUTHORS
442
443 Primarily Ivan Kohler, with help from many kind folks, including core
444 contributors Jeff Finucane, Kristian Hoffman, Jason Hall and Peter Bowen.
445
446 See the CREDITS file in the Freeside distribution for a (hopefully) complete
447 list and the individal files for details.
448
449 =head1 SEE ALSO
450
451 perl(1), main Freeside documentation at <http://www.sisd.com/mediawiki/>
452
453 =head1 BUGS
454
455 Those modules which would be useful separately should be pulled out, 
456 renamed appropriately and uploaded to CPAN.  So far: DBIx::DBSchema, Net::SSH
457 and Net::SCP...
458
459 =cut
460