summaryrefslogtreecommitdiff
path: root/FS/FS/part_pkg
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2018-04-20 12:08:43 -0400
committerChristopher Burger <burgerc@freeside.biz>2018-05-04 12:43:58 -0400
commitb8aea2bf8dcebf7a6b9a217ee78114e42404fe68 (patch)
tree36ef497612f597699f8d52809cc35ec725c0b82d /FS/FS/part_pkg
parentf394ef58c444b753ea9508a02593ce38f012e5d4 (diff)
RT# 77964 - fixed so deferring date now works when waive setup fee is set
Diffstat (limited to 'FS/FS/part_pkg')
-rw-r--r--FS/FS/part_pkg/flat.pm23
1 files changed, 14 insertions, 9 deletions
diff --git a/FS/FS/part_pkg/flat.pm b/FS/FS/part_pkg/flat.pm
index 6fd9c7d..0bc3860 100644
--- a/FS/FS/part_pkg/flat.pm
+++ b/FS/FS/part_pkg/flat.pm
@@ -118,22 +118,27 @@ sub calc_setup {
return 0 if $self->prorate_setup($cust_pkg, $sdate);
- my $i = 0;
- my $count = $self->option( 'additional_count', 'quiet' ) || 0;
- while ($i < $count) {
- push @$details, $self->option( 'additional_info' . $i++ );
- }
+ if (!$cust_pkg->waive_setup) {
+ my $i = 0;
+ my $count = $self->option( 'additional_count', 'quiet' ) || 0;
+ while ($i < $count) {
+ push @$details, $self->option( 'additional_info' . $i++ );
+ }
- my $charge = $self->base_setup($cust_pkg, $sdate, $details);
+ my $charge = $self->base_setup($cust_pkg, $sdate, $details);
- my $discount = 0;
- if ( $charge > 0 ) {
+ my $discount = 0;
+ if ( $charge > 0 ) {
$param->{'setup_charge'} = $charge;
$discount = $self->calc_discount($cust_pkg, $sdate, $details, $param);
delete $param->{'setup_charge'};
+ }
+
+ return sprintf( '%.2f', ($cust_pkg->quantity || 1) * ($charge - $discount) );
}
- sprintf( '%.2f', ($cust_pkg->quantity || 1) * ($charge - $discount) );
+ return;
+
}
sub base_setup {