1 package FS::quotation_pkg_discount;
3 use base qw( FS::pkg_discount_Mixin FS::Record );
4 use FS::Maketext 'mt'; # XXX not really correct
10 FS::quotation_pkg_discount - Object methods for quotation_pkg_discount records
14 use FS::quotation_pkg_discount;
16 $record = new FS::quotation_pkg_discount \%hash;
17 $record = new FS::quotation_pkg_discount { 'column' => 'value' };
19 $error = $record->insert;
21 $error = $new_record->replace($old_record);
23 $error = $record->delete;
25 $error = $record->check;
29 An FS::quotation_pkg_discount object represents a quotation package discount.
30 FS::quotation_pkg_discount inherits from FS::Record. The following fields are
35 =item quotationpkgdiscountnum
41 quotationpkgnum of the L<FS::quotation_pkg> record that this discount is
46 discountnum (L<FS::discount>)
50 Amount that will be discounted from setup fees, per package quantity.
54 Amount that will be discounted from recurring fees in the first billing
55 cycle, per package quantity.
65 Creates a new quotation package discount. To add the quotation package
66 discount to the database, see L<"insert">.
68 Note that this stores the hash reference, not a distinct copy of the hash it
69 points to. You can ask the object for a copy with the I<hash> method.
73 # the new method can be inherited from FS::Record, if a table method is defined
75 sub table { 'quotation_pkg_discount'; }
79 Adds this record to the database. If there is an error, returns the error,
80 otherwise returns false.
84 Delete this record from the database.
86 =item replace OLD_RECORD
88 Replaces the OLD_RECORD with this one in the database. If there is an error,
89 returns the error, otherwise returns false.
93 Checks all fields to make sure this is a valid quotation package discount.
94 If there is an error, returns the error, otherwise returns false.
95 Called by the insert and replace methods.
99 # the check method should currently be supplied - FS::Record contains some
100 # data checking routines
106 $self->ut_numbern('quotationpkgdiscountnum')
107 || $self->ut_foreign_key('quotationpkgnum', 'quotation_pkg', 'quotationpkgnum' )
108 || $self->ut_foreign_key('discountnum', 'discount', 'discountnum' )
109 || $self->ut_moneyn('setup_amount')
110 || $self->ut_moneyn('recur_amount')
112 return $error if $error;
121 Returns a string describing the discount (for use on the quotation).
127 my $discount = $self->discount;
128 my $desc = $discount->description_short;
129 # XXX localize to prospect language, once prospects get languages
130 $desc .= mt(' each') if $self->quotation_pkg->quantity > 1;
132 if ($discount->months) {
133 # unlike cust_bill_pkg_discount, there are no "months remaining"; it
134 # hasn't started yet.
135 $desc .= mt(' (for [quant,_1,month])', $discount->months);
144 L<FS::Record>, schema.html from the base documentation.