=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
=back
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);
+
+ '';
}
=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 ]
=head1 VERSION
-$Id: part_pkg.pm,v 1.1 1999-08-04 09:03:53 ivan Exp $
+$Id: part_pkg.pm,v 1.4 2001-10-20 12:17:59 ivan Exp $
=head1 BUGS