X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fflat.pm;h=0bc3860a322a56028f2eaf453b3975bd2f338327;hp=6fd9c7d0857eb7c428b4a18f5638fcd587bb3f69;hb=babcdb7e84d1d9ee1537b47e16c4e182f426f07b;hpb=b1ff95e68f17199e2289e1515e3a3b836cd195c8 diff --git a/FS/FS/part_pkg/flat.pm b/FS/FS/part_pkg/flat.pm index 6fd9c7d08..0bc3860a3 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 {