if ( $self->pkgnum ) {
my $cust_pkg = qsearchs( 'cust_pkg', { 'pkgnum' => $self->pkgnum } );
return "Unknown pkgnum" unless $cust_pkg;
- my $pkg_svc = qsearchs( 'pkg_svc', {
- 'pkgpart' => $cust_pkg->pkgpart,
- 'svcpart' => $self->svcpart,
- });
- # or new FS::pkg_svc ( { 'pkgpart' => $cust_pkg->pkgpart,
- # 'svcpart' => $self->svcpart,
- # 'quantity' => 0 } );
- my $quantity = $pkg_svc ? $pkg_svc->quantity : 0;
-
- my @cust_svc = qsearch('cust_svc', {
- 'pkgnum' => $self->pkgnum,
- 'svcpart' => $self->svcpart,
- });
- return "Already ". scalar(@cust_svc). " ". $part_svc->svc.
+ ($part_svc) = grep { $_->svcpart == $self->svcpart } $cust_pkg->part_svc;
+
+ return "Already ". $part_svc->get('num_cust_svc'). " ". $part_svc->svc.
" services for pkgnum ". $self->pkgnum
- if scalar(@cust_svc) >= $quantity && !$ignore_quantity;
+ if $part_svc->get('num_avail') == 0 and !$ignore_quantity;
}
$self->SUPER::check;
=cut
-#note: implementation here, POD in FS::svc_acct
-sub seconds_since {
- my($self, $since) = @_;
- my $dbh = dbh;
- my $sth = $dbh->prepare(' SELECT SUM(logout-login) FROM session
- WHERE svcnum = ?
- AND login >= ?
- AND logout IS NOT NULL'
- ) or die $dbh->errstr;
- $sth->execute($self->svcnum, $since) or die $sth->errstr;
- $sth->fetchrow_arrayref->[0];
-}
+#internal session db deprecated (or at least on hold)
+sub seconds_since { 'internal session db deprecated'; };
+##note: implementation here, POD in FS::svc_acct
+#sub seconds_since {
+# my($self, $since) = @_;
+# my $dbh = dbh;
+# my $sth = $dbh->prepare(' SELECT SUM(logout-login) FROM session
+# WHERE svcnum = ?
+# AND login >= ?
+# AND logout IS NOT NULL'
+# ) or die $dbh->errstr;
+# $sth->execute($self->svcnum, $since) or die $sth->errstr;
+# $sth->fetchrow_arrayref->[0];
+#}
=item seconds_since_sqlradacct TIMESTAMP_START TIMESTAMP_END