X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fquotation_pkg_discount.pm;h=1815294ef90a295b95969eea9a7abda32f457d87;hp=19930ac64738636c43cbff0ab871871a89b2ce25;hb=57bb423fe457ba4e13726877f53bcdf944f828f8;hpb=32072dbf59a054529f5304574c0f56f9567d14d0 diff --git a/FS/FS/quotation_pkg_discount.pm b/FS/FS/quotation_pkg_discount.pm index 19930ac64..1815294ef 100644 --- a/FS/FS/quotation_pkg_discount.pm +++ b/FS/FS/quotation_pkg_discount.pm @@ -1,5 +1,7 @@ package FS::quotation_pkg_discount; -use base qw( FS::Record ); + +use base qw( FS::pkg_discount_Mixin FS::Record ); +use FS::Maketext 'mt'; # XXX not really correct use strict; @@ -36,12 +38,21 @@ primary key =item quotationpkgnum -quotationpkgnum +quotationpkgnum of the L record that this discount is +for. =item discountnum -discountnum +discountnum (L) + +=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 @@ -68,27 +79,15 @@ sub table { 'quotation_pkg_discount'; } 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. @@ -107,6 +106,8 @@ sub check { $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; @@ -115,6 +116,27 @@ sub check { =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