{
'name' => 'Account',
'longname_plural' => 'Access accounts and mailboxes',
- 'sorts' => [ 'username', 'uid', ],
+ 'sorts' => [ 'username', 'uid', 'seconds' ],
'display_weight' => 10,
'cancel_weight' => 50,
'fields' => {
disable_select => 1,
},
'seconds' => { label => 'Seconds',
+ label_sort => 'with Time Remaining',
type => 'text',
disable_inventory => 1,
disable_select => 1,
'format' => \&FS::UI::bytecount::display_bytecount,
'parse' => \&FS::UI::bytecount::parse_bytecount,
},
- 'seconds_threshold' => { label => 'Seconds',
+ 'seconds_threshold' => { label => 'Seconds threshold',
type => 'text',
disable_inventory => 1,
disable_select => 1,
},
- 'upbytes_threshold' => { label => 'Upload',
+ 'upbytes_threshold' => { label => 'Upload threshold',
type => 'text',
disable_inventory => 1,
disable_select => 1,
'format' => \&FS::UI::bytecount::display_bytecount,
'parse' => \&FS::UI::bytecount::parse_bytecount,
},
- 'downbytes_threshold' => { label => 'Download',
+ 'downbytes_threshold' => { label => 'Download threshold',
type => 'text',
disable_inventory => 1,
disable_select => 1,
'format' => \&FS::UI::bytecount::display_bytecount,
'parse' => \&FS::UI::bytecount::parse_bytecount,
},
- 'totalbytes_threshold'=> { label => 'Total up and download',
+ 'totalbytes_threshold'=> { label => 'Total up and download threshold',
type => 'text',
disable_inventory => 1,
disable_select => 1,
}
}
- $error = $new->SUPER::replace($old);
+ $error = $new->SUPER::replace($old, @_);
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
return $error if $error;
sub suspend {
my $self = shift;
return "can't suspend system account" if $self->_check_system;
- $self->SUPER::suspend;
+ $self->SUPER::suspend(@_);
}
=item unsuspend
return $error if $error;
}
- $self->SUPER::unsuspend;
+ $self->SUPER::unsuspend(@_);
}
=item cancel
}
}
- $self->SUPER::cancel;
+ $self->SUPER::cancel(@_);
}
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);
+ }
}
}
=cut
sub check_and_rebuild_fuzzyfiles {
- my $dir = $FS::UID::conf_dir. "cache.". $FS::UID::datasrc;
+ my $dir = $FS::UID::conf_dir. "/cache.". $FS::UID::datasrc;
-e "$dir/svc_acct.username"
or &rebuild_fuzzyfiles;
}
use Fcntl qw(:flock);
- my $dir = $FS::UID::conf_dir. "cache.". $FS::UID::datasrc;
+ my $dir = $FS::UID::conf_dir. "/cache.". $FS::UID::datasrc;
#username
=cut
sub all_username {
- my $dir = $FS::UID::conf_dir. "cache.". $FS::UID::datasrc;
+ my $dir = $FS::UID::conf_dir. "/cache.". $FS::UID::datasrc;
open(USERNAMECACHE,"<$dir/svc_acct.username")
or die "can't open $dir/svc_acct.username: $!";
my @array = map { chomp; $_; } <USERNAMECACHE>;
use Fcntl qw(:flock);
- my $dir = $FS::UID::conf_dir. "cache.". $FS::UID::datasrc;
+ my $dir = $FS::UID::conf_dir. "/cache.". $FS::UID::datasrc;
open(USERNAME,">>$dir/svc_acct.username")
or die "can't open $dir/svc_acct.username: $!";
'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,
} );