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;
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;
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', } } )
];
}
#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
=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