From e50c06b014a5727385087fac381f978603e227ad Mon Sep 17 00:00:00 2001 From: Jonathan Prykop Date: Tue, 26 Apr 2016 20:39:13 -0500 Subject: [PATCH] RT#39819: Packages with Show zero setup/recurring do not print on quotations [v3 only] --- FS/FS/Template_Mixin.pm | 4 ++-- FS/FS/quotation.pm | 18 ++++++++++++++---- 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), -- 2.11.0