use strict;
use base qw( FS::TemplateItem_Mixin FS::Record );
-use FS::Record qw( qsearchs dbh ); #qsearch
+use FS::Record qw( qsearch qsearchs dbh );
use FS::part_pkg;
use FS::cust_location;
use FS::quotation;
if ( $self->waive_setup eq 'Y' || $self->{'_NO_SETUP_KLUDGE'} ) {
$unitsetup = '0.00';
} else {
- $unitsetup = $part_pkg->base_setup;
+ $unitsetup = $part_pkg->option('setup_fee',1) || '0.00'; # XXX 3.x only
}
if ( $self->{'_NO_RECUR_KLUDGE'} ) {
$unitrecur = '0.00';
# XXX the order of applying discounts is ill-defined, which matters
# if there are percentage and amount discounts on the same package.
+ #
+ # but right now there can only be one discount on any package, so
+ # it doesn't matter
foreach my $pkg_discount ($self->quotation_pkg_discount) {
my $discount = $pkg_discount->discount;
#my ($self, %options) = @_;
my $self = shift;
- my $cust_pkg_discount = FS::quotation_pkg_discount->new( {
+ my $quotation_pkg_discount = FS::quotation_pkg_discount->new( {
'quotationpkgnum' => $self->quotationpkgnum,
'discountnum' => $self->discountnum,
#for the create a new discount case
'setup' => $self->discountnum_setup,
} );
- $cust_pkg_discount->insert;
+ $quotation_pkg_discount->insert;
}
sub _item_discount {
push @ext, $pkg_discount->description;
$d->{setup_amount} -= $pkg_discount->setup_amount;
$d->{recur_amount} -= $pkg_discount->recur_amount;
- }
+ }
$d->{setup_amount} *= $self->quantity || 1;
$d->{recur_amount} *= $self->quantity || 1;
$d->{amount} = $d->{setup_amount} + $d->{recur_amount};
$quotation->cust_main;
}
+#stub for 3.x
+
+sub quotation {
+ my $self = shift;
+ FS::quotation->by_key($self->quotationnum);
+}
+
+sub quotation_pkg_discount {
+ my $self = shift;
+ qsearch('quotation_pkg_discount', { quotationpkgnum => $self->quotationpkgnum });
+}
+
=back
=head1 BUGS