package FS::quotation_pkg_discount;
+use base qw( FS::pkg_discount_Mixin FS::Record );
+use FS::Maketext 'mt'; # XXX not really correct
+
use strict;
-use base qw( FS::Record );
-use FS::Record qw( qsearch qsearchs );
=head1 NAME
=item quotationpkgnum
-quotationpkgnum
+quotationpkgnum of the L<FS::quotation_pkg> record that this discount is
+for.
=item discountnum
-discountnum
+discountnum (L<FS::discount>)
+
+=item setuprecur
+
+Whether this is a setup or recur discount.
+=item amount
+
+Amount that will be discounted from either setup or recur fees, per package
+quantity.
=back
Adds this record to the database. If there is an error, returns the error,
otherwise returns false.
-=cut
-
-# the insert method can be inherited from FS::Record
-
=item delete
Delete this record from the database.
-=cut
-
-# the delete method can be inherited from FS::Record
-
=item replace OLD_RECORD
Replaces the OLD_RECORD with this one in the database. If there is an error,
returns the error, otherwise returns false.
-=cut
-
-# the replace method can be inherited from FS::Record
-
=item check
Checks all fields to make sure this is a valid quotation package discount.
$self->ut_numbern('quotationpkgdiscountnum')
|| $self->ut_foreign_key('quotationpkgnum', 'quotation_pkg', 'quotationpkgnum' )
|| $self->ut_foreign_key('discountnum', 'discount', 'discountnum' )
+ || $self->ut_enum('setuprecur', ['setup', 'recur'])
+ || $self->ut_moneyn('amount')
;
return $error if $error;
=back
+=item description
+
+Returns a string describing the discount (for use on the quotation).
+
+=cut
+
+sub description {
+ my $self = shift;
+ my $discount = $self->discount;
+ my $desc = $discount->description_short;
+ # XXX localize to prospect language, once prospects get languages
+ $desc .= mt(' each') if $self->quotation_pkg->quantity > 1;
+
+ if ($discount->months) {
+ # unlike cust_bill_pkg_discount, there are no "months remaining"; it
+ # hasn't started yet.
+ $desc .= mt(' (for [quant,_1,month])', $discount->months);
+ }
+ return $desc;
+}
+
=head1 BUGS
=head1 SEE ALSO