X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fdetail_format.pm;h=be84680f9c805f1079f6d5314bd0474a499da306;hb=5773eb8d8b4168213482a7e61aa37e0dd05c69da;hp=c90d313063ee06a45fc2c50e4d9db7d3e0f6831d;hpb=c0afff8c23e18fc39e60219b2b48dcdde14bd5d8;p=freeside.git diff --git a/FS/FS/detail_format.pm b/FS/FS/detail_format.pm index c90d31306..be84680f9 100644 --- a/FS/FS/detail_format.pm +++ b/FS/FS/detail_format.pm @@ -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 objects), @@ -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 +acctid => acctid +rated_price => amount +rated_classnum => classnum +rated_seconds => duration +rated_regionname => regionname +accountcode => accountcode +startdate => startdate -=item rated_price => amount - -=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 value set on the formatter +object. It then calls C 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, }); }