add customer fields option with agent, display_custnum, status and name, RT#73721
[freeside.git] / FS / FS / cust_main_exemption.pm
index 06d22b7..4fe6b71 100644 (file)
@@ -1,9 +1,8 @@
 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::cust_main;
+use FS::Conf;
 
 =head1 NAME
 
@@ -44,6 +43,9 @@ Customer (see L<FS::cust_main>)
 
 taxname
 
+=item exempt_number
+
+Exemption number
 
 =back
 
@@ -108,9 +110,20 @@ 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;
 }