use strict;
use vars qw( @ISA );
-use FS::Record qw( qsearch qsearchs dbh );
+use FS::Record qw( qsearch dbh );
use FS::pkg_svc;
use FS::agent_type;
use FS::type_pkgs;
or $r =~ /^my \$min = \$cust_pkg\->seconds_since\(\$cust_pkg\->bill \|\| 0\) \/ 60 \- \s*\d*\.?\d*\s*; \$min = 0 if \$min < 0; \s*\d*\.?\d*\s* \+ \s*\d*\.?\d*\s* \* \$min;\s*$/
+ or $r =~ /^my \$last_bill = \$cust_pkg\->last_bill; my \$hours = \$cust_pkg\->seconds_since_sqlradacct\(\$last_bill, \$sdate \) \/ 3600 - \s*\d\.?\d*\s*; \$hours = 0 if \$hours < 0; my \$input = \$cust_pkg\->attribute_since_sqlradacct\(\$last_bill, \$sdate, "AcctInputOctets" \) \/ 1048576; my \$output = \$cust_pkg\->attribute_since_sqlradacct\(\$last_bill, \$sdate, "AcctOutputOctets" \) \/ 1048576; my \$total = \$input \+ \$output \- \s*\d\.?\d*\s*; \$total = 0 if \$total < 0; my \$input = \$input - \s*\d\.?\d*\s*; \$input = 0 if \$input < 0; my \$output = \$output - \s*\d\.?\d*\s*; \$output = 0 if \$output < 0; \s*\d\.?\d*\s* \+ \s*\d\.?\d*\s* \* \$hours \+ \s*\d\.?\d*\s* \* \$input \+ \s*\d\.?\d*\s* \* \$output \+ \s*\d\.?\d*\s* \* \$total *;\s*$/
+
or do {
#log!
return "illegal recur: $r";
}
- 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')
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
If the package has B<0> setup and B<0> recur, the single item B<BILL> is
returned, otherwise, the single item B<CARD> is returned.
+(CHEK? LEC? Probably shouldn't accept those by default, prone to abuse)
+
=cut
sub payby {
=back
-=head1 VERSION
-
-$Id: part_pkg.pm,v 1.15 2002-06-08 07:48:36 khoff Exp $
-
=head1 BUGS
The delete method is unimplemented.