summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormark <mark>2011-01-08 05:23:06 +0000
committermark <mark>2011-01-08 05:23:06 +0000
commit724714c95e14267cab7c2b32d5e0319670c3971f (patch)
treeb37ea3bdaee296688ac497222c4e2b897e23845f
parent2eaadb3479c1ccf1a0c3e2fd9247ba8af5fdd563 (diff)
count available services correctly, RT#10340
-rw-r--r--FS/FS/cust_svc.pm19
1 files changed, 4 insertions, 15 deletions
diff --git a/FS/FS/cust_svc.pm b/FS/FS/cust_svc.pm
index 7b866fad3..06e1ef11d 100644
--- a/FS/FS/cust_svc.pm
+++ b/FS/FS/cust_svc.pm
@@ -300,22 +300,11 @@ sub check {
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;