changes to support new invoice template features, #28080
[freeside.git] / FS / FS / cust_bill_pkg_detail.pm
index 7badaa3..d0cbdbe 100644 (file)
@@ -55,6 +55,10 @@ inherits from FS::Record.  The following fields are currently supported:
 
 =item phonenum -
 
 
 =item phonenum -
 
+=item accountcode - accountcode
+
+=item startdate - CDR startdate, if any
+
 =item detail - detail description
 
 =back
 =item detail - detail description
 
 =back
@@ -82,27 +86,15 @@ sub table { 'cust_bill_pkg_detail'; }
 Adds this record to the database.  If there is an error, returns the error,
 otherwise returns false.
 
 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.
 
 =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.
 
 =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
 =item check
 
 Checks all fields to make sure this is a valid line item detail.  If there is
@@ -137,9 +129,11 @@ sub check {
     || $self->ut_enum('format', [ '', 'C' ] )
     || $self->ut_numbern('duration')
     || $self->ut_textn('regionname')
     || $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_text('detail')
     || $self->ut_foreign_keyn('classnum', 'usage_class', 'classnum')
     || $self->$phonenum_check_method('phonenum')
+    || $self->ut_numbern('startdate')
     || $self->SUPER::check
     ;
 
     || $self->SUPER::check
     ;
 
@@ -158,11 +152,13 @@ for tabular appearance in those environments if possible.
 If I<escape_function> is set then the format is processed by this
 function before being returned.
 
 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
 
 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} || '';
 sub formatted {
   my ( $self, %opt ) = @_;
   my $format = $opt{format} || '';
@@ -230,6 +226,18 @@ sub formatted {
   ;
 }
 
   ;
 }
 
+=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
 
 # Used by FS::Upgrade to migrate to a new database schema
 sub _upgrade_schema { # class method