=item phonenum -
+=item accountcode - accountcode
+
+=item startdate - CDR startdate, if any
+
=item detail - detail description
=back
Adds this record to the database. If there is an error, returns the error,
otherwise returns false.
-=cut
-
-# the insert method can be inherited from FS::Record
-
=item delete
Delete this record from the database.
-=cut
-
-# the delete method can be inherited from FS::Record
-
=item replace OLD_RECORD
Replaces the OLD_RECORD with this one in the database. If there is an error,
returns the error, otherwise returns false.
-=cut
-
-# the replace method can be inherited from FS::Record
-
=item check
Checks all fields to make sure this is a valid line item detail. If there is
|| $self->ut_enum('format', [ '', 'C' ] )
|| $self->ut_numbern('duration')
|| $self->ut_textn('regionname')
+ || $self->ut_textn('accountcode')
|| $self->ut_text('detail')
|| $self->ut_foreign_keyn('classnum', 'usage_class', 'classnum')
|| $self->$phonenum_check_method('phonenum')
+ || $self->ut_numbern('startdate')
|| $self->SUPER::check
;
If I<escape_function> is set then the format is processed by this
function before being returned.
+DEPRECATED? (mostly unused, expensive)
If I<format_function> is set then the detail is handed to this callback
for processing.
=cut
+#totally false laziness w/cust_bill_pkg->detail
sub formatted {
my ( $self, %opt ) = @_;
my $format = $opt{format} || '';
;
}
+=item cust_bill_pkg
+
+Returns the L<FS::cust_bill_pkg> object (the invoice line item) that
+this detail belongs to.
+
+=cut
+
+sub cust_bill_pkg {
+ my $self = shift;
+ my $billpkgnum = $self->billpkgnum or return '';
+ FS::cust_bill_pkg->by_key($billpkgnum);
+}
# Used by FS::Upgrade to migrate to a new database schema
sub _upgrade_schema { # class method