use FS::Conf;
use FS::Record qw( qsearch qsearchs fields dbh dbdef );
use FS::Msgcat qw(gettext);
-use FS::UI::Web; #for {display,parse}_bytecount... perhaps not the best place?
+use FS::UI::bytecount;
use FS::svc_Common;
use FS::cust_svc;
use FS::part_svc;
type => 'text',
disable_inventory => 1,
disable_select => 1,
- 'format' => \&FS::UI::Web::display_bytecount,
- 'parse' => \&FS::UI::Web::parse_bytecount,
+ 'format' => \&FS::UI::bytecount::display_bytecount,
+ 'parse' => \&FS::UI::bytecount::parse_bytecount,
},
'downbytes' => { label => 'Download',
type => 'text',
disable_inventory => 1,
disable_select => 1,
- 'format' => \&FS::UI::Web::display_bytecount,
- 'parse' => \&FS::UI::Web::parse_bytecount,
+ 'format' => \&FS::UI::bytecount::display_bytecount,
+ 'parse' => \&FS::UI::bytecount::parse_bytecount,
},
'totalbytes'=> { label => 'Total up and download',
type => 'text',
disable_inventory => 1,
disable_select => 1,
- 'format' => \&FS::UI::Web::display_bytecount,
- 'parse' => \&FS::UI::Web::parse_bytecount,
+ 'format' => \&FS::UI::bytecount::display_bytecount,
+ 'parse' => \&FS::UI::bytecount::parse_bytecount,
},
'seconds_threshold' => { label => 'Seconds',
type => 'text',
type => 'text',
disable_inventory => 1,
disable_select => 1,
- 'format' => \&FS::UI::Web::display_bytecount,
- 'parse' => \&FS::UI::Web::parse_bytecount,
+ 'format' => \&FS::UI::bytecount::display_bytecount,
+ 'parse' => \&FS::UI::bytecount::parse_bytecount,
},
'downbytes_threshold' => { label => 'Download',
type => 'text',
disable_inventory => 1,
disable_select => 1,
- 'format' => \&FS::UI::Web::display_bytecount,
- 'parse' => \&FS::UI::Web::parse_bytecount,
+ 'format' => \&FS::UI::bytecount::display_bytecount,
+ 'parse' => \&FS::UI::bytecount::parse_bytecount,
},
'totalbytes_threshold'=> { label => 'Total up and download',
type => 'text',
disable_inventory => 1,
disable_select => 1,
- 'format' => \&FS::UI::Web::display_bytecount,
- 'parse' => \&FS::UI::Web::parse_bytecount,
+ 'format' => \&FS::UI::bytecount::display_bytecount,
+ 'parse' => \&FS::UI::bytecount::parse_bytecount,
},
},
};
my $action = $op2action{$op};
- if ( &{$op2condition{$op}}($self, $column, $amount) ) {
+ if ( &{$op2condition{$op}}($self, $column, $amount) &&
+ ( $action eq 'suspend' && !$self->overlimit
+ || $action eq 'unsuspend' && $self->overlimit )
+ ) {
foreach my $part_export ( $self->cust_svc->part_svc->part_export ) {
if ($part_export->option('overlimit_groups')) {
my ($new,$old);
&& &{$op2condition{$op}}($self, $column, $amount) ) {
#my $error = $self->$action();
my $error = $self->cust_svc->cust_pkg->$action();
- $error ||= $self->overlimit($action);
+ # $error ||= $self->overlimit($action);
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
return "Error ${action}ing: $error";
if (scalar(keys %handyhash)) {
my $sth = $dbh->prepare( $sql )
or die "Error preparing $sql: ". $dbh->errstr;
- my $rv = $sth->execute((grep{$_} values %handyhash), $self->svcnum);
+ my $rv = $sth->execute((values %handyhash), $self->svcnum);
die "Error executing $sql: ". $sth->errstr
unless defined($rv);
die "Can't update usage for svcnum ". $self->svcnum
}
if ( $reset ) {
- my $error = $self->overlimit('unsuspend');
-
- foreach my $part_export ( $self->cust_svc->part_svc->part_export ) {
- if ($part_export->option('overlimit_groups')) {
- my $old = new FS::svc_acct $self->hashref;
- my $groups = &{ $self->_fieldhandlers->{'usergroup'} }
- ($self, $part_export->option('overlimit_groups'));
- $old->usergroup( $groups );
- $error ||= $part_export->export_replace($self, $old);
+ my $error;
+
+ if ($self->overlimit) {
+ $error = $self->overlimit('unsuspend');
+ foreach my $part_export ( $self->cust_svc->part_svc->part_export ) {
+ if ($part_export->option('overlimit_groups')) {
+ my $old = new FS::svc_acct $self->hashref;
+ my $groups = &{ $self->_fieldhandlers->{'usergroup'} }
+ ($self, $part_export->option('overlimit_groups'));
+ $old->usergroup( $groups );
+ $error ||= $part_export->export_replace($self, $old);
+ }
}
}
'last' => $cust_main->getfield('last'),
'pkg' => $cust_pkg->part_pkg->pkg,
'column' => $opt{'column'},
- 'amount' => $svc_acct->getfield($opt{'column'}),
- 'threshold' => $threshold,
+ 'amount' => $opt{'column'} =~/bytes/
+ ? FS::UI::bytecount::display_bytecount($svc_acct->getfield($opt{'column'}))
+ : $svc_acct->getfield($opt{'column'}),
+ 'threshold' => $opt{'column'} =~/bytes/
+ ? FS::UI::bytecount::display_bytecount($threshold)
+ : $threshold,
} );