sprintf('%.2f', $recur);
}
+sub unitsetup {
+ my $self = shift;
+ return '0.00' if $self->waive_setup eq 'Y' || $self->{'_NO_SETUP_KLUDGE'};
+ my $part_pkg = $self->part_pkg;
+ my $setup = $part_pkg->option('setup_fee');
+
+ #XXX discounts
+ sprintf('%.2f', $setup);
+}
+
+sub unitrecur {
+ my $self = shift;
+ return '0.00' if $self->{'_NO_RECUR_KLUDGE'};
+ my $part_pkg = $self->part_pkg;
+ my $recur = $part_pkg->can('base_recur') ? $part_pkg->base_recur
+ : $part_pkg->option('recur_fee');
+ #XXX discounts
+ sprintf('%.2f', $recur);
+}
+
=item cust_bill_pkg_display [ type => TYPE ]
=cut
} elsif ( $type eq 'R' ) {
return ($recur);
} else {
- return ($setup, $recur);
+ #return ($setup, $recur);
+ return ($self);
}
}
}
+=item cust_main
+
+Returns the customer (L<FS::cust_main> object).
+
+=cut
+
+sub cust_main {
+ my $self = shift;
+ my $quotation = FS::quotation->by_key($self->quotationnum) or return '';
+ $quotation->cust_main;
+}
+
=back
=head1 BUGS