# }
# }
+ #trigger a pkg_change export on pkgnum changes
+ if ( $new->pkgnum != $old->pkgnum ) {
+ my $error = $new->svc_x->export('pkg_change', $new->cust_pkg,
+ $old->cust_pkg,
+ );
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error if $error;
+ }
+ }
+
#my $error = $new->SUPER::replace($old, @_);
my $error = $new->SUPER::replace($old);
if ( $error ) {
my $part_svc = qsearchs( 'part_svc', { 'svcpart' => $self->svcpart } );
return "Unknown svcpart" unless $part_svc;
- if ( $self->pkgnum ) {
+ if ( $self->pkgnum && ! $ignore_quantity ) {
my $cust_pkg = qsearchs( 'cust_pkg', { 'pkgnum' => $self->pkgnum } );
return "Unknown pkgnum" unless $cust_pkg;
($part_svc) = grep { $_->svcpart == $self->svcpart } $cust_pkg->part_svc;
return "No svcpart ". $self->svcpart.
" services in pkgpart ". $cust_pkg->pkgpart
- unless $part_svc;
+ unless $part_svc || $ignore_quantity;
return "Already ". $part_svc->get('num_cust_svc'). " ". $part_svc->svc.
" services for pkgnum ". $self->pkgnum
- if $part_svc->get('num_avail') == 0 and !$ignore_quantity;
+ if !$ignore_quantity && $part_svc->get('num_avail') <= 0 ;
}
$self->SUPER::check;
sub _svc_label {
my( $self, $method, $svc_x ) = ( shift, shift, shift );
- my $identifier = $svc_x->$method(@_);
- $identifier = '['.$self->agent_svcid.']'. $identifier if $self->agent_svcid;
-
(
$self->part_svc->svc,
- $identifier,
+ $svc_x->$method(@_),
$self->part_svc->svcdb,
$self->svcnum
);