1 package FS::cust_bill_pkg_display;
5 use FS::Record qw( qsearch qsearchs );
11 FS::cust_bill_pkg_display - Object methods for cust_bill_pkg_display records
15 use FS::cust_bill_pkg_display;
17 $record = new FS::cust_bill_pkg_display \%hash;
18 $record = new FS::cust_bill_pkg_display { 'column' => 'value' };
20 $error = $record->insert;
22 $error = $new_record->replace($old_record);
24 $error = $record->delete;
26 $error = $record->check;
30 An FS::cust_bill_pkg_display object represents an instruction to display a
31 line item in a specific invoice section. FS::cust_bill_pkg_display inherits
32 from FS::Record and is many-to-one with FS::cust_bill_pkg (invoice line
35 The following fields are currently supported:
39 =item billpkgdisplaynum - primary key
41 =item billpkgnum - the line item number (L<FS::cust_bill_pkg> foreign key)
43 =item section - the section name where this item should be shown. Defaults
44 to the package category name, if there is one.
48 # actually it defaults to null, but then calling ->section will return the
51 my ( $self, $value ) = @_;
52 if ( defined($value) ) {
53 $self->setfield('section', $value);
55 my $section = $self->getfield('section');
57 my $cust_bill_pkg = $self->cust_bill_pkg;
58 if ( $cust_bill_pkg->pkgnum > 0 && !$cust_bill_pkg->hidden ) {
59 my $part_pkg = $cust_bill_pkg->part_pkg;
60 $section = $part_pkg->categoryname if $part_pkg;
67 =item post_total - 'Y' to have this item shown in a "late" section (below
70 =item type - Which portion of the item's charges to show in the specified
71 position. 'S' to show setup fees (including tax and one-time charge),
72 'R' to show the non-usage recurring charge, 'U' to show the usage charge,
73 null to show all three as a single amount.
75 =item summary - 'Y' to show a usage summary of this line item. This has
76 the following effects if type = 'U':
77 - The description will always be "Usage charges" rather than the package name.
78 - Service labels and usage details (CDRs) are hidden.
79 - It will only display on multisection invoices.
89 Creates a new line item display object. To add the record to the database,
92 Note that this stores the hash reference, not a distinct copy of the hash it
93 points to. You can ask the object for a copy with the I<hash> method.
97 sub table { 'cust_bill_pkg_display'; }
101 Adds this record to the database. If there is an error, returns the error,
102 otherwise returns false.
108 Delete this record from the database.
112 =item replace OLD_RECORD
114 Replaces the OLD_RECORD with this one in the database. If there is an error,
115 returns the error, otherwise returns false.
121 Checks all fields to make sure this is a valid line item display object.
122 If there is an error, returns the error, otherwise returns false. Called by
123 the insert and replace methods.
131 $self->ut_numbern('billpkgdisplaynum')
132 || $self->ut_number('billpkgnum')
133 || $self->ut_foreign_key('billpkgnum', 'cust_bill_pkg', 'billpkgnum')
134 || $self->ut_textn('section')
135 || $self->ut_enum('post_total', [ '', 'Y' ])
136 || $self->ut_enum('type', [ '', 'S', 'R', 'U' ])
137 || $self->ut_enum('summary', [ '', 'Y' ])
139 return $error if $error;
146 Returns the associated cust_bill_pkg (see L<FS::cust_bill_pkg>) for this
147 line item display object.
153 qsearchs( 'cust_bill_pkg', { 'billpkgnum' => $self->billpkgnum } ) ;
163 L<FS::Record>, L<FS::cust_bill_pkg>, schema.html from the base documentation.