X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fquotation_pkg_discount.pm;h=1815294ef90a295b95969eea9a7abda32f457d87;hp=34e13a61082819a745e44524619138b6e0629029;hb=3adb46fccf9f631e188ea5383bd147b340477639;hpb=53fe471803155c11f32d7d1626960f6951b618bc diff --git a/FS/FS/quotation_pkg_discount.pm b/FS/FS/quotation_pkg_discount.pm index 34e13a610..1815294ef 100644 --- a/FS/FS/quotation_pkg_discount.pm +++ b/FS/FS/quotation_pkg_discount.pm @@ -1,8 +1,9 @@ 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 @@ -37,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 @@ -69,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. @@ -108,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; @@ -116,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