X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fdiscount.pm;h=4f42c5b72d3149265cb9f0f6067dd373d04712c4;hb=bc03d12fffd22153b5035bc021450387bacc17b8;hp=6771510d0c249c415e2adfe62b943e0afb012cd6;hpb=4cacb3fa439b56fc7c9a742b69ec3f6ffd660433;p=freeside.git diff --git a/FS/FS/discount.pm b/FS/FS/discount.pm index 6771510d0..4f42c5b72 100644 --- a/FS/FS/discount.pm +++ b/FS/FS/discount.pm @@ -113,6 +113,16 @@ and replace methods. 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') @@ -123,6 +133,17 @@ sub check { ; return $error if $error; + #discourage non-integer months for package discounts + if ($self->discountnum) { + my $sql = + "SELECT count(*) FROM part_pkg_discount WHERE part_pkg_discount.discountnum = ". + $self->discountnum; + + my $count = $self->scalar_sql($sql); + return "months must be integers greater than 1" + if ( $count && ($self->ut_number('months') || $self->months < 2) ); + } + $self->SUPER::check; }