X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fdiscount.pm;h=13146a91b4fc1f58f7e80a4303faf3df7036e1d4;hp=e66d78cedee4f6112283e52be316a617d20dea00;hb=a36e0f8a0f69349dafaa16d1d2d57dfb6e5dbc85;hpb=df1ebf662a9fc3f89503036e0dbf6833c1b95f9e diff --git a/FS/FS/discount.pm b/FS/FS/discount.pm index e66d78ced..13146a91b 100644 --- a/FS/FS/discount.pm +++ b/FS/FS/discount.pm @@ -2,8 +2,6 @@ package FS::discount; use base qw( FS::Record ); use strict; -use FS::Record qw( qsearch qsearchs ); -use FS::discount_class; =head1 NAME @@ -121,12 +119,12 @@ sub check { if ( $self->_type eq 'Select discount type' ) { return 'Please select a discount type'; - } elsif ( $self->_type eq 'Amount' ) { - $self->percent('0'); - return 'Amount must be greater than 0' unless $self->amount > 0; - } elsif ( $self->_type eq 'Percentage' ) { - $self->amount('0.00'); - return 'Percentage must be greater than 0' unless $self->percent > 0; + } elsif ( $self->amount > 0 ) { + $self->set('percent', '0'); + } elsif ( $self->percent > 0 ) { + $self->set('amount', '0.00'); + } else { + return "Discount amount or percentage must be > 0"; } my $error = @@ -175,13 +173,18 @@ sub description_short { my $conf = new FS::Conf; my $money_char = $conf->config('money_char') || '$'; - my $desc = $self->name ? $self->name.': ' : ''; - $desc .= $money_char. sprintf('%.2f/month ', $self->amount) + my $desc; + if ( $self->name ) { + $desc = $self->name . ': '; + } else { + $desc = 'Discount of '; + } + $desc .= $money_char. sprintf('%.2f/month', $self->amount) if $self->amount > 0; ( my $percent = $self->percent ) =~ s/\.0+$//; $percent =~ s/(\.\d*[1-9])0+$/$1/; - $desc .= $percent. '% ' + $desc .= $percent. '%' if $self->percent > 0; $desc; @@ -193,7 +196,13 @@ sub description { ( my $months = $self->months ) =~ s/\.0+$//; $months =~ s/(\.\d*[1-9])0+$/$1/; - $desc .= " for $months months" if $months; + if ($months) { + if ($months == 1) { + $desc .= " for 1 month"; + } else { + $desc .= " for $months months"; + } + } $desc .= ', applies to setup' if $self->setup; @@ -206,12 +215,6 @@ sub classname { $discount_class ? $discount_class->classname : '(none)'; } -sub discount_class { - my $self = shift; - qsearchs('discount_class', { 'classnum' => $self->classnum }); -} - - =back =head1 BUGS