projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f77e374
)
fix quotations w/ packages w/ add-on packages in v3, RT#74045
author
Ivan Kohler
<ivan@freeside.biz>
Fri, 24 Feb 2017 21:58:19 +0000
(13:58 -0800)
committer
Ivan Kohler
<ivan@freeside.biz>
Fri, 24 Feb 2017 21:58:19 +0000
(13:58 -0800)
FS/FS/quotation_pkg.pm
patch
|
blob
|
history
diff --git
a/FS/FS/quotation_pkg.pm
b/FS/FS/quotation_pkg.pm
index
f4d5d5d
..
5607b9c
100644
(file)
--- a/
FS/FS/quotation_pkg.pm
+++ b/
FS/FS/quotation_pkg.pm
@@
-258,25
+258,20
@@
on failure.
sub estimate {
my $self = shift;
sub estimate {
my $self = shift;
- my $part_pkg = $self->part_pkg;
- my $quantity = $self->quantity || 1;
- my ($unitsetup, $unitrecur);
- # calculate base fees
- if ( $self->waive_setup eq 'Y' || $self->{'_NO_SETUP_KLUDGE'} ) {
- $unitsetup = '0.00';
- } else {
- $unitsetup = $part_pkg->option('setup_fee',1) || '0.00'; # XXX 3.x only
- }
- if ( $self->{'_NO_RECUR_KLUDGE'} ) {
- $unitrecur = '0.00';
- } else {
- $unitrecur = $part_pkg->base_recur;
- }
- #XXX add-on packages
+ my( $unitsetup, $unitrecur ) = (0, 0);
+ foreach my $part_pkg ( $self->part_pkg->self_and_bill_linked ) {
+
+ $unitsetup += $part_pkg->option('setup_fee',1) || '0' # 3.x only
+ unless $self->waive_setup eq 'Y' || $self->{'_NO_SETUP_KLUDGE'};
+
+ $unitrecur += $part_pkg->base_recur
+ unless $self->{'_NO_RECUR_KLUDGE'};
+
+ }
- $self->set('unitsetup',
$unitsetup
);
- $self->set('unitrecur',
$unitrecur
);
+ $self->set('unitsetup',
sprintf('%.2f', $unitsetup)
);
+ $self->set('unitrecur',
sprintf('%.2f', $unitrecur)
);
my $error = $self->replace;
return $error if $error;
my $error = $self->replace;
return $error if $error;