sub check {
my $self = shift;
+ 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;
+ }
+
my $error =
$self->ut_numbern('discountnum')
|| $self->ut_textn('name')
$self->SUPER::check;
}
+=item description_short
+
=item description
Returns a text description incorporating the amount, percent and months fields.
+description_short omits term information
+
=cut
-sub description {
+sub description_short {
my $self = shift;
my $conf = new FS::Conf;
my $money_char = $conf->config('money_char') || '$';
- my $desc = '';
+ my $desc = $self->name ? $self->name.': ' : '';
$desc .= $money_char. sprintf('%.2f/month ', $self->amount)
if $self->amount > 0;
$desc .= $self->percent. '% '
if $self->percent > 0;
- $desc .= 'for '. $self->months. ' months' if $self->months;
$desc;
}
+sub description {
+ my $self = shift;
+ my $desc = $self->description_short;
+ $desc .= ' for '. $self->months. ' months' if $self->months;
+ $desc;
+}
+
=back
=head1 BUGS