Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / FS / FS / part_pkg_usage_class.pm
1 package FS::part_pkg_usage_class;
2
3 use strict;
4 use base qw( FS::Record );
5 use FS::Record qw( qsearch qsearchs );
6
7 =head1 NAME
8
9 FS::part_pkg_usage_class - Object methods for part_pkg_usage_class records
10
11 =head1 SYNOPSIS
12
13   use FS::part_pkg_usage_class;
14
15   $record = new FS::part_pkg_usage_class \%hash;
16   $record = new FS::part_pkg_usage_class { 'column' => 'value' };
17
18   $error = $record->insert;
19
20   $error = $new_record->replace($old_record);
21
22   $error = $record->delete;
23
24   $error = $record->check;
25
26 =head1 DESCRIPTION
27
28 An FS::part_pkg_usage_class object is a link between a package usage stock
29 (L<FS::part_pkg_usage>) and a voice usage class (L<FS::usage_class)>.
30 FS::part_pkg_usage_class inherits from FS::Record.  The following fields 
31 are currently supported:
32
33 =over 4
34
35 =item num - primary key
36
37 =item pkgusagepart - L<FS::part_pkg_usage> key
38
39 =item classnum - L<FS::usage_class> key.  Set to null to allow this stock
40 to be used for calls that have no usage class.  To avoid confusion, you
41 should only do this if you don't use usage classes on your system.
42
43 =back
44
45 =head1 METHODS
46
47 =over 4
48
49 =item new HASHREF
50
51 Creates a new example.  To add the example to the database, see L<"insert">.
52
53 Note that this stores the hash reference, not a distinct copy of the hash it
54 points to.  You can ask the object for a copy with the I<hash> method.
55
56 =cut
57
58 # the new method can be inherited from FS::Record, if a table method is defined
59
60 sub table { 'part_pkg_usage_class'; }
61
62 =item insert
63
64 Adds this record to the database.  If there is an error, returns the error,
65 otherwise returns false.
66
67 =cut
68
69 # the insert method can be inherited from FS::Record
70
71 =item delete
72
73 Delete this record from the database.
74
75 =cut
76
77 # the delete method can be inherited from FS::Record
78
79 =item replace OLD_RECORD
80
81 Replaces the OLD_RECORD with this one in the database.  If there is an error,
82 returns the error, otherwise returns false.
83
84 =cut
85
86 # the replace method can be inherited from FS::Record
87
88 =item check
89
90 Checks all fields to make sure this is a valid record.  If there is
91 an error, returns the error, otherwise returns false.  Called by the insert
92 and replace methods.
93
94 =cut
95
96 # the check method should currently be supplied - FS::Record contains some
97 # data checking routines
98
99 sub check {
100   my $self = shift;
101
102   my $error = 
103     $self->ut_numbern('num')
104     || $self->ut_foreign_key('pkgusagepart', 'part_pkg_usage', 'pkgusagepart')
105     || $self->ut_foreign_keyn('classnum', 'usage_class', 'classnum')
106   ;
107   return $error if $error;
108
109   $self->SUPER::check;
110 }
111
112 =back
113
114 =head1 BUGS
115
116 The author forgot to customize this manpage.
117
118 =head1 SEE ALSO
119
120 L<FS::Record>, schema.html from the base documentation.
121
122 =cut
123
124 1;
125