X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fquotation_pkg_discount.pm;h=15b1bfeb8607ca490423de35c02ca52254c1cdf3;hp=34e13a61082819a745e44524619138b6e0629029;hb=d46254f9b36873e457424eefdcf3610b71ef889d;hpb=b2d79135127e961869a05b936b9d33b1bef135df diff --git a/FS/FS/quotation_pkg_discount.pm b/FS/FS/quotation_pkg_discount.pm index 34e13a610..15b1bfeb8 100644 --- a/FS/FS/quotation_pkg_discount.pm +++ b/FS/FS/quotation_pkg_discount.pm @@ -3,6 +3,7 @@ package FS::quotation_pkg_discount; use strict; use base qw( FS::Record ); use FS::Record qw( qsearch qsearchs ); +use FS::Maketext 'mt'; =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 setup_amount + +Amount that will be discounted from setup fees, per package quantity. + +=item recur_amount + +Amount that will be discounted from recurring fees in the first billing +cycle, per package quantity. =back @@ -108,6 +118,8 @@ sub check { $self->ut_numbern('quotationpkgdiscountnum') || $self->ut_foreign_key('quotationpkgnum', 'quotation_pkg', 'quotationpkgnum' ) || $self->ut_foreign_key('discountnum', 'discount', 'discountnum' ) + || $self->ut_moneyn('setup_amount') + || $self->ut_moneyn('recur_amount') ; return $error if $error; @@ -116,6 +128,39 @@ sub check { =back +=item amount + +Returns the total amount of this discount (setup + recur), for compatibility +with L. + +=cut + +sub amount { + my $self = shift; + return $self->get('setup_amount') + $self->get('recur_amount'); +} + +=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