X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FTemplateItem_Mixin.pm;h=27b8f1bdbd1a2c71cdb55aed09c5a5e17b1c9dd3;hb=d46254f9b36873e457424eefdcf3610b71ef889d;hp=664432975e4c966be306c779d2e2efc9fb1c1869;hpb=a119361314fa44afc1af3a5a89f0296cca16e20c;p=freeside.git diff --git a/FS/FS/TemplateItem_Mixin.pm b/FS/FS/TemplateItem_Mixin.pm index 664432975..27b8f1bdb 100644 --- a/FS/FS/TemplateItem_Mixin.pm +++ b/FS/FS/TemplateItem_Mixin.pm @@ -48,7 +48,7 @@ sub part_pkg { } -=item desc +=item desc LOCALE Returns a description for this line item. For typical line items, this is the I field of the corresponding B object (see L). @@ -61,12 +61,19 @@ sub desc { my( $self, $locale ) = @_; if ( $self->pkgnum > 0 ) { - $self->itemdesc || $self->part_pkg->pkg_locale($locale); - } else { + return $self->itemdesc if $self->itemdesc; + my $part_pkg = $self->part_pkg or return 'UNKNOWN'; + return $part_pkg->pkg_locale($locale); + + } elsif ( $self->feepart ) { + return $self->part_fee->itemdesc_locale($locale); + + } else { # by the process of elimination it must be a tax my $desc = $self->itemdesc || 'Tax'; $desc .= ' '. $self->itemcomment if $self->itemcomment =~ /\S/; - $desc; + return $desc; } + } =item time_period_pretty PART_PKG, AGENTNUM @@ -100,7 +107,7 @@ sub time_period_pretty { if ( defined($date_style) && $date_style eq 'month_of' ) { # (now watch, someone's going to make us do Chinese) $time_period = $self->mt('The month of [_1]', - $self->time2str_local('The month of %B', $self->sdate) + $self->time2str_local('%B', $self->sdate) ); } elsif ( defined($date_style) && $date_style eq 'X_month' ) { my $desc = $conf->config( 'cust_bill-line_item-date_description', @@ -121,20 +128,21 @@ sub time_period_pretty { Returns an array of detail information for the invoice line item. -Currently available options are: I, I and -I. +Options may include: -If I is set to html or latex then the array members are improved -for tabular appearance in those environments if possible. +I: set to 'html' or 'latex' to have the detail lines formatted for +inclusion in an HTML table (wrapped in and elements) or LaTeX table +(delimited with & and \\ operators). -If I is set then the array members are processed by this +I: if present, then the array elements are processed by this function before being returned. -I overrides the normal HTML or LaTeX function for returning -formatted CDRs. It can be set to a subroutine which returns an empty list -to skip usage detail: +I: overrides the normal HTML or LaTeX function for returning +formatted CDRs. - 'format_function' => sub { () }, +I: excludes call detail records. The method will still return +some special-case records like prorate details, and manually created package +details. =cut @@ -359,15 +367,17 @@ sub cust_bill_pkg_detail { } -=item cust_bill_pkg_discount +=item pkg_discount -Returns the list of associated cust_bill_pkg_discount objects. +Returns the list of associated cust_bill_pkg_discount or +quotation_pkg_discount objects. =cut -sub cust_bill_pkg_discount { +sub pkg_discount { my $self = shift; - qsearch( $self->discount_table, { 'billpkgnum' => $self->billpkgnum } ); + my $pkey = $self->primary_key; + qsearch( $self->discount_table, { $pkey => $self->get($pkey) } ); } 1;