quotations, RT#16996
authorIvan Kohler <ivan@freeside.biz>
Thu, 5 Jul 2012 02:09:26 +0000 (19:09 -0700)
committerIvan Kohler <ivan@freeside.biz>
Thu, 5 Jul 2012 02:09:26 +0000 (19:09 -0700)
FS/FS/quotation_pkg.pm

index 48d5906..3d40bb0 100644 (file)
@@ -2,7 +2,7 @@ package FS::quotation_pkg;
 
 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;
 
@@ -119,6 +119,39 @@ sub check {
   $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