summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Prykop <jonathan@freeside.biz>2016-04-26 20:39:13 -0500
committerJonathan Prykop <jonathan@freeside.biz>2016-04-26 20:39:13 -0500
commite50c06b014a5727385087fac381f978603e227ad (patch)
tree167244952d185472c9de687fe5ba67218c59abea
parent08d94428f0807c3ae2921b5c1f4fe40b5631365f (diff)
RT#39819: Packages with Show zero setup/recurring do not print on quotations [v3 only]
-rw-r--r--FS/FS/Template_Mixin.pm4
-rw-r--r--FS/FS/quotation.pm18
2 files changed, 16 insertions, 6 deletions
diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm
index 031c1f25c..5e79ae18b 100644
--- a/FS/FS/Template_Mixin.pm
+++ b/FS/FS/Template_Mixin.pm
@@ -3285,7 +3285,7 @@ sub _items_cust_bill_pkg {
my @details = $cust_bill_pkg->details;
# and I guess they're never bundled either?
- if ( $cust_bill_pkg->setup != 0 ) {
+ if (( $cust_bill_pkg->setup != 0 ) || ( $cust_bill_pkg->setup_show_zero )) {
my $description = $desc;
$description .= ' Setup'
if $cust_bill_pkg->recur != 0
@@ -3306,7 +3306,7 @@ sub _items_cust_bill_pkg {
),
};
}
- if ( $cust_bill_pkg->recur != 0 ) {
+ if (( $cust_bill_pkg->recur != 0 ) || ( $cust_bill_pkg->recur_show_zero )) {
#push @b, {
$r = {
'pkgnum' => $cust_bill_pkg->pkgpart, #so it displays in Ref
diff --git a/FS/FS/quotation.pm b/FS/FS/quotation.pm
index f828a3920..38b9cd2ed 100644
--- a/FS/FS/quotation.pm
+++ b/FS/FS/quotation.pm
@@ -313,6 +313,17 @@ sub _items_total {
});
my $total_setup = $self->total_setup;
+ my $total_recur = $self->total_recur;
+ my $setup_show = $total_setup > 0 ? 1 : 0;
+ my $recur_show = $total_recur > 0 ? 1 : 0;
+ unless ($setup_show && $recur_show) {
+ foreach my $quotation_pkg ($self->quotation_pkg) {
+ $setup_show = 1 if !$setup_show and $quotation_pkg->setup_show_zero;
+ $recur_show = 1 if !$recur_show and $quotation_pkg->recur_show_zero;
+ last if $setup_show && $recur_show;
+ }
+ }
+
foreach my $pkg_tax (@setup_tax) {
if ($pkg_tax->setup_amount > 0) {
$total_setup += $pkg_tax->setup_amount;
@@ -323,9 +334,9 @@ sub _items_total {
}
}
- if ( $total_setup > 0 ) {
+ if ( $setup_show ) {
push @items, {
- 'total_item' => $self->mt( $self->total_recur > 0 ? 'Total Setup' : 'Total' ),
+ 'total_item' => $self->mt( $recur_show ? 'Total Setup' : 'Total' ),
'total_amount' => sprintf('%.2f',$total_setup),
'break_after' => ( scalar(@recur_tax) ? 1 : 0 )
};
@@ -333,7 +344,6 @@ sub _items_total {
#could/should add up the different recurring frequencies on lines of their own
# but this will cover the 95% cases for now
- my $total_recur = $self->total_recur;
# label these with the frequency
foreach my $pkg_tax (@recur_tax) {
if ($pkg_tax->recur_amount > 0) {
@@ -348,7 +358,7 @@ sub _items_total {
}
}
- if ( $total_recur > 0 ) {
+ if ( $recur_show ) {
push @items, {
'total_item' => $self->mt('Total Recurring'),
'total_amount' => sprintf('%.2f',$total_recur),