X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main_exemption.pm;h=dcbfb8ff866d7ea624843a1f2435e29e60a5051f;hb=b05ecb709b4ff5cd10a4df93af3e1ca9b79732e2;hp=06d22b7e0ae64bd392db8e737ec60578338dac6e;hpb=b5c4237a34aef94976bc343c8d9e138664fc3984;p=freeside.git diff --git a/FS/FS/cust_main_exemption.pm b/FS/FS/cust_main_exemption.pm index 06d22b7e0..dcbfb8ff8 100644 --- a/FS/FS/cust_main_exemption.pm +++ b/FS/FS/cust_main_exemption.pm @@ -1,8 +1,9 @@ package FS::cust_main_exemption; +use base qw( FS::Record ); use strict; -use base qw( FS::Record ); -use FS::Record qw( qsearch qsearchs ); +use FS::Record qw( qsearchs ); +use FS::Conf; use FS::cust_main; =head1 NAME @@ -44,6 +45,9 @@ Customer (see L) taxname +=item exempt_number + +Exemption number =back @@ -108,12 +112,32 @@ sub check { $self->ut_numbern('exemptionnum') || $self->ut_foreign_key('custnum', 'cust_main', 'custnum') || $self->ut_text('taxname') + || $self->ut_textn('exempt_number') ; return $error if $error; + my $conf = new FS::Conf; + return 'Tax exemption number required for '. $self->taxname. ' exemption' + if ! $self->exempt_number + && ( $conf->exists('tax-cust_exempt-groups-require_individual_nums') + || $conf->config('tax-cust_exempt-groups-num_req') eq 'all' + || ( $conf->config('tax-cust_exempt-groups-num_req') eq 'residential' + && ! $self->cust_main->company + ) + ); + $self->SUPER::check; } +=item cust_main + +=cut + +sub cust_main { + my $self = shift; + qsearchs('cust_main', { custnum=>$self->custnum } ); +} + =back =head1 BUGS