package FS::cust_svc;
use strict;
-use vars qw( @ISA );
+use vars qw( @ISA $ignore_quantity );
use Carp qw( cluck );
use FS::Record qw( qsearch qsearchs dbh );
use FS::cust_pkg;
use FS::svc_acct;
use FS::svc_domain;
use FS::svc_forward;
+use FS::svc_broadband;
use FS::domain_record;
use FS::part_export;
@ISA = qw( FS::Record );
+$ignore_quantity = 0;
+
sub _cache {
my $self = shift;
my ( $hashref, $cache ) = @_;
# 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,
});
return "Already ". scalar(@cust_svc). " ". $part_svc->svc.
" services for pkgnum ". $self->pkgnum
- if scalar(@cust_svc) >= $pkg_svc->quantity;
+ if scalar(@cust_svc) >= $quantity && (!$ignore_quantity || !$quantity);
}
- ''; #no error
+ $self->SUPER::check;
}
=item part_svc
$tag = $svc_x->getfield('domain');
} elsif ( $svcdb eq 'svc_www' ) {
my $domain = qsearchs( 'domain_record', { 'recnum' => $svc_x->recnum } );
- $tag = $domain->reczone;
+ $tag = $domain->zone;
} elsif ( $svcdb eq 'svc_broadband' ) {
- $tag = $svc_x->ip_addr . '/' . $svc_x->ip_netmask;
+ $tag = $svc_x->ip_addr;
} else {
cluck "warning: asked for label of unsupported svcdb; using svcnum";
$tag = $svc_x->getfield('svcnum');
FROM radacct
WHERE UserName = ?
AND $str2time AcctStartTime ) >= ?
+ AND $str2time AcctStartTime ) < ?
AND ( ? - $str2time AcctStartTime ) ) < 86400
AND ( $str2time AcctStopTime ) = 0
OR AcctStopTime IS NULL )";
$sth = $dbh->prepare($query) or die $dbh->errstr;
- $sth->execute($end, $username, $start, $end)
+ $sth->execute($end, $username, $start, $end, $end)
or die $sth->errstr. " executing query $query";
my $start_during = $sth->fetchrow_arrayref->[0];