projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
make invoice text mouse-accessible through watermark box, #24665
[freeside.git]
/
FS
/
FS
/
TemplateItem_Mixin.pm
diff --git
a/FS/FS/TemplateItem_Mixin.pm
b/FS/FS/TemplateItem_Mixin.pm
index
bf857a9
..
dcd7ab3
100644
(file)
--- a/
FS/FS/TemplateItem_Mixin.pm
+++ b/
FS/FS/TemplateItem_Mixin.pm
@@
-45,7
+45,31
@@
sub part_pkg {
$part_pkg = $cust_pkg->part_pkg if $cust_pkg;
$part_pkg;
}
$part_pkg = $cust_pkg->part_pkg if $cust_pkg;
$part_pkg;
}
+}
+
+=item part_fee
+
+Returns the fee definition for this line item, if there is one.
+
+=cut
+
+sub part_fee {
+ my $self = shift;
+ $self->feepart
+ ? FS::part_fee->by_key($self->feepart)
+ : '';
+}
+=item part_X
+
+Returns L</part_pkg> or L</part_fee>, whichever is applicable (or nothing,
+if called on a tax line item).
+
+=cut
+
+sub part_X {
+ my $self = shift;
+ $self->part_pkg || $self->part_fee;
}
=item desc LOCALE
}
=item desc LOCALE
@@
-61,14
+85,19
@@
sub desc {
my( $self, $locale ) = @_;
if ( $self->pkgnum > 0 ) {
my( $self, $locale ) = @_;
if ( $self->pkgnum > 0 ) {
- $self->itemdesc || $self->part_pkg->pkg_locale($locale);
+ return $self->itemdesc if $self->itemdesc;
+ my $part_pkg = $self->part_pkg or return 'UNKNOWN';
+ return $part_pkg->pkg_locale($locale);
+
} elsif ( $self->feepart ) {
} elsif ( $self->feepart ) {
- $self->part_fee->itemdesc_locale($locale);
+ 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/;
} 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
}
=item time_period_pretty PART_PKG, AGENTNUM
@@
-123,20
+152,21
@@
sub time_period_pretty {
Returns an array of detail information for the invoice line item.
Returns an array of detail information for the invoice line item.
-Currently available options are: I<format>, I<escape_function> and
-I<format_function>.
+Options may include:
-If I<format> is set to html or latex then the array members are improved
-for tabular appearance in those environments if possible.
+I<format>: set to 'html' or 'latex' to have the detail lines formatted for
+inclusion in an HTML table (wrapped in <tr> and <td> elements) or LaTeX table
+(delimited with & and \\ operators).
-I
f I<escape_function> is set then the array member
s are processed by this
+I
<escape_function>: if present, then the array element
s are processed by this
function before being returned.
function before being returned.
-I<format_function> 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<format_function>: overrides the normal HTML or LaTeX function for returning
+formatted CDRs.
- 'format_function' => sub { () },
+I<no_usage>: excludes call detail records. The method will still return
+some special-case records like prorate details, and manually created package
+details.
=cut
=cut
@@
-361,15
+391,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
=cut
-sub
cust_bill_
pkg_discount {
+sub pkg_discount {
my $self = shift;
my $self = shift;
- qsearch( $self->discount_table, { 'billpkgnum' => $self->billpkgnum } );
+ my $pkey = $self->primary_key;
+ qsearch( $self->discount_table, { $pkey => $self->get($pkey) } );
}
1;
}
1;