texas tax!
[freeside.git] / FS / FS / cust_pkg.pm
index f858a99..a4256ea 100644 (file)
@@ -139,7 +139,13 @@ sub insert {
   my $error = $self->ut_number('custnum');
   return $error if $error;
 
-  return "Unknown customer ". $self->custnum unless $self->cust_main;
+  my $cust_main = $self->cust_main;
+  return "Unknown customer ". $self->custnum unless $cust_main;
+
+  my $agent = qsearchs( 'agent', { 'agentnum' => $cust_main->agentnum } );
+  my $pkgpart_href = $agent->pkgpart_hashref;
+  return "agent ". $agent->agentnum. " can't purchase pkgpart ". $self->pkgpart
+    unless $pkgpart_href->{ $self->pkgpart };
 
   $self->SUPER::insert;
 
@@ -219,7 +225,7 @@ sub check {
     return "Unknown customer ". $self->custnum unless $self->cust_main;
   }
 
-  return "Unknown pkgpart"
+  return "Unknown pkgpart: ". $self->pkgpart
     unless qsearchs( 'part_pkg', { 'pkgpart' => $self->pkgpart } );
 
   $self->otaker(getotaker) unless $self->otaker;
@@ -577,7 +583,9 @@ sub order {
     push @cust_svc, [
       map {
         ( $svcnum{$_} && @{ $svcnum{$_} } ) ? shift @{ $svcnum{$_} } : ();
-      } map { $_->svcpart } qsearch('pkg_svc', { 'pkgpart' => $pkgpart })
+      } map { $_->svcpart }
+          qsearch('pkg_svc', { pkgpart  => $pkgpart,
+                               quantity => { op=>'>', value=>'0', } } )
     ];
   }
 
@@ -597,7 +605,11 @@ sub order {
     #find an empty place to put one
     my $i = 0;
     foreach my $pkgpart ( @{$pkgparts} ) {
-      my @pkg_svc = qsearch('pkg_svc', { pkgpart=>$pkgpart } );
+      my @pkg_svc =
+        qsearch('pkg_svc', { pkgpart  => $pkgpart,
+                             quantity => { op=>'>', value=>'0', } } );
+      #my @pkg_svc =
+      #  grep { $_->quantity > 0 } qsearch('pkg_svc', { pkgpart=>$pkgpart } );
       if ( ! @{$cust_svc[$i]} #find an empty place to put them with 
            && grep { $svcdb eq $_->part_svc->svcdb } #with appropriate svcdb
                 @pkg_svc
@@ -689,7 +701,7 @@ sub order {
 
 =head1 VERSION
 
-$Id: cust_pkg.pm,v 1.17 2002-04-12 15:14:58 ivan Exp $
+$Id: cust_pkg.pm,v 1.21 2002-05-04 00:47:24 ivan Exp $
 
 =head1 BUGS