use strict;
use vars qw( @ISA );
-use FS::Record qw( qsearch dbh );
+use FS::Record qw( qsearch qsearchs dbh );
use FS::pkg_svc;
use FS::agent_type;
use FS::type_pkgs;
=item recurtax - Recurring fee tax exempt flag, empty or `Y'
-=item taxclass - Texas tax class flag, empty or "none", "access", or "hosting"
+=item taxclass - Tax class flag
=item plan - Price plan
}
+ if ($self->def_svcpart and my @pkg_svc = $self->pkg_svc) {
+ unless (grep { $_->svcpart == $self->def_svcpart } @pkg_svc) {
+ return "no svcparts for this package match def_svcpart ".$self->def_svcpart;
+ }
+ }
+
$self->ut_numbern('pkgpart')
|| $self->ut_text('pkg')
|| $self->ut_text('comment')
|| $self->ut_anything('plandata')
|| $self->ut_enum('setuptax', [ '', 'Y' ] )
|| $self->ut_enum('recurtax', [ '', 'Y' ] )
- || $self->ut_enum('texastax', [ '', 'none', 'access', 'hosting' ] )
+ || $self->ut_textn('taxclass')
|| $self->ut_enum('disabled', [ '', 'Y' ] )
;
}
false if there not exactly one service definition with quantity 1, or if
SVCDB is specified and does not match the svcdb of the service definition,
+If the part_pkg has a nonzero def_svcpart, it takes precedence, even if it has
+quantity > 1 and/or there are other service definitions, UNLESS SVCDB is specified
+and doesn't match the svcdb of the def_svcpart.
+
=cut
sub svcpart {
my $self = shift;
my $svcdb = shift;
+
+ if ($self->def_svcpart) {
+ if ((not $svcdb) or qsearchs('part_svc', { svcpart => $self->def_svcpart,
+ svcdb => $svcdb })) {
+ return $self->def_svcpart;
+ }
+ }
+
my @pkg_svc = $self->pkg_svc;
return '' if scalar(@pkg_svc) != 1
|| $pkg_svc[0]->quantity != 1
=head1 VERSION
-$Id: part_pkg.pm,v 1.12 2002-04-25 10:37:08 ivan Exp $
+$Id: part_pkg.pm,v 1.15 2002-06-08 07:48:36 khoff Exp $
=head1 BUGS