service and package disable!
[freeside.git] / FS / FS / part_pkg.pm
index 863e962..be2ad93 100644 (file)
@@ -46,11 +46,21 @@ inherits from FS::Record.  The following fields are currently supported:
 
 =item comment - Text name of this billing item definition (non-customer-viewable)
 
-=item setup - Setup fee
+=item setup - Setup fee expression
 
 =item freq - Frequency of recurring fee
 
-=item recur - Recurring fee
+=item recur - Recurring fee expression
+
+=item setuptax - Setup fee tax exempt flag, empty or `Y'
+
+=item recurtax - Recurring fee tax exempt flag, empty or `Y'
+
+=item plan - Price plan
+
+=item plandata - Price plan data
+
+=item disabled - Disabled flag, empty or `Y'
 
 =back
 
@@ -122,25 +132,39 @@ insert and replace methods.
 sub check {
   my $self = shift;
 
-  $self->ut_numbern('pkgpart')
+  my $error = $self->ut_numbern('pkgpart')
     || $self->ut_text('pkg')
     || $self->ut_text('comment')
     || $self->ut_anything('setup')
     || $self->ut_number('freq')
     || $self->ut_anything('recur')
+    || $self->ut_alphan('plan')
+    || $self->ut_anything('plandata')
   ;
+  return $error if $error;
+
+  $self->setuptax =~ /^(Y?)$/ or return "Illegal setuptax: ". $self->setuptax;
+  $self->setuptax($1);
+
+  $self->recurtax =~ /^(Y?)$/ or return "Illegal recrutax: ". $self->recurtax;
+  $self->recurtax($1);
+
+  $self->disabled =~ /^(Y?)$/ or return "Illegal disabled: ". $self->disabled;
+  $self->disabled($1);
+
+  '';
 }
 
 =item pkg_svc
 
 Returns all FS::pkg_svc objects (see L<FS::pkg_svc>) for this package
-definition.
+definition (with non-zero quantity).
 
 =cut
 
 sub pkg_svc {
   my $self = shift;
-  qsearch( 'pkg_svc', { 'pkgpart' => $self->pkgpart } );
+  grep { $_->quantity } qsearch( 'pkg_svc', { 'pkgpart' => $self->pkgpart } );
 }
 
 =item svcpart [ SVCDB ]
@@ -166,7 +190,7 @@ sub svcpart {
 
 =head1 VERSION
 
-$Id: part_pkg.pm,v 1.1 1999-08-04 09:03:53 ivan Exp $
+$Id: part_pkg.pm,v 1.5 2001-12-27 09:26:13 ivan Exp $
 
 =head1 BUGS