use strict;
use base qw( FS::Record );
-use FS::Record; # qw( qsearch qsearchs );
+use FS::Record qw( qsearchs ); #qsearch
use FS::part_pkg;
use FS::cust_location;
$self->SUPER::check;
}
+sub part_pkg {
+ my $self = shift;
+ qsearchs('part_pkg', { 'pkgpart' => $self->pkgpart } );
+}
+
+sub desc {
+ my $self = shift;
+ $self->part_pkg->pkg;
+}
+
+sub setup {
+ my $self = shift;
+ return '0.00' if $self->waive_setup eq 'Y';
+ my $part_pkg = $self->part_pkg;
+ #my $setup = $part_pkg->can('base_setup') ? $part_pkg->base_setup
+ # : $part_pkg->option('setup_fee');
+ my $setup = $part_pkg->option('setup_fee');
+ #XXX discounts
+ $setup *= $self->quantity if $self->quantity;
+ sprintf('%.2f', $setup);
+
+}
+
+sub recur {
+ my $self = shift;
+ my $part_pkg = $self->part_pkg;
+ my $recur = $part_pkg->can('base_recur') ? $part_pkg->base_recur
+ : $part_pkg->option('recur_fee');
+ #XXX discounts
+ $recur *= $self->quantity if $self->quantity;
+ sprintf('%.2f', $recur);
+}
+
=back
=head1 BUGS