add skip_dcontext_suffix to skip CDRs with dcontext ending in a definable string...
[freeside.git] / FS / FS / detail_format.pm
index c90d313..d032100 100644 (file)
@@ -63,13 +63,13 @@ sub new {
   my %opt = @_;
 
   my $locale = $opt{'locale'} || '';
-  my $conf = FS::Conf->new(locale => $locale);
+  my $conf = FS::Conf->new({ locale => $locale });
   $locale ||= $conf->config('locale') || 'en_US';
 
   my %locale_info = FS::Locales->locale_info($locale);
   my $language_name = $locale_info{'name'};
 
-  my $self = { conf => FS::Conf->new(locale => $locale),
+  my $self = { conf => FS::Conf->new({ locale => $locale }),
                csv  => Text::CSV_XS->new({ binary => 1 }),
                inbound  => ($opt{'inbound'} ? 1 : 0),
                buffer   => ($opt{'buffer'} || []),
@@ -98,6 +98,19 @@ sub inbound {
   $self->{inbound};
 }
 
+=item phonenum VALUE
+
+Set/get the locally meaningful phone number.  This is used to tag call details
+for presentation on certain kinds of invoices.
+
+=cut
+
+sub phonenum {
+  my $self = shift;
+  $self->{phonenum} = shift if @_;
+  $self->{phonenum};
+}
+
 =item append CDRS
 
 Takes any number of call detail records (as L<FS::cdr> objects),
@@ -155,7 +168,7 @@ sub header {
   my $self = shift;
 
   FS::cust_bill_pkg_detail->new(
-    { 'format' => 'C', 'detail' => $self->mt($self->header_detail) }
+    { 'format' => 'C', 'detail' => $self->header_detail }
   )
 }
 
@@ -165,21 +178,16 @@ Takes a single CDR and returns an invoice detail to describe it.
 
 By default, this maps the following fields from the CDR:
 
-=over 4
-
-=item rated_price       => amount
+acctid            => acctid
+rated_price       => amount
+rated_classnum    => classnum
+rated_seconds     => duration
+rated_regionname  => regionname
+accountcode       => accountcode
+startdate         => startdate
 
-=item rated_classnum    => classnum
-
-=item rated_seconds     => duration
-
-=item rated_regionname  => regionname
-
-=item accountcode       => accountcode
-
-=item startdate         => startdate
-
-=back
+'phonenum' is set to the internal C<phonenum> value set on the formatter
+object.
 
 It then calls C<columns> on the CDR to obtain a list of detail
 columns, formats them as a CSV string, and stores that in the 
@@ -201,6 +209,7 @@ sub single_detail {
   $price = 0 if $cdr->freesidestatus eq 'no-charge';
 
   FS::cust_bill_pkg_detail->new( {
+      'acctid'      => $cdr->acctid,
       'amount'      => $price,
       'classnum'    => $cdr->rated_classnum,
       'duration'    => $cdr->rated_seconds,
@@ -209,6 +218,7 @@ sub single_detail {
       'startdate'   => $cdr->startdate,
       'format'      => 'C',
       'detail'      => $self->csv->string,
+      'phonenum'    => $self->phonenum,
   });
 }
 
@@ -260,10 +270,7 @@ sub time2str_local {
   $self->{_dh}->time2str(@_);
 }
 
-sub mt {
-  my $self = shift;
-  $self->{_lh}->maketext(@_);
-}
+# header strings are now localized in FS::TemplateItem_Mixin::detail
 
 #imitate previous behavior for now