X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fsvc_acct.pm;h=a04789bad8a6eebc9c4a4bf6a946a311adeb6e04;hp=de9199da40f2fe113012a923cdbdcd0aed7099f9;hb=a1b53bf2e2af68085228b73c9da980fc49b1d393;hpb=197f613bac6c3f9a4bd7d1ea5fbf4769aea4ce1a diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index de9199da4..a04789bad 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -329,6 +329,15 @@ sub table_info { disable_select => 1, #UI wonky, pry works otherwise }, 'sectornum' => 'Tower sector', + 'routernum' => 'Router/block', + 'blocknum' => { + 'label' => 'Address block', + 'type' => 'select', + 'select_table' => 'addr_block', + 'select_key' => 'blocknum', + 'select_label' => 'cidr', + 'disable_inventory' => 1, + }, 'usergroup' => { label => 'RADIUS groups', type => 'select-radius_group.html', @@ -341,7 +350,7 @@ sub table_info { type => 'text', disable_inventory => 1, disable_select => 1, - disable_part_svc_column => 1, + #disable_part_svc_column => 1, }, 'upbytes' => { label => 'Upload', type => 'text', @@ -1971,6 +1980,9 @@ sub _op_usage { return '' unless $amount; + return '' + if $self->cust_svc->part_svc->part_svc_column($column)->columnflag eq 'F'; + local $SIG{HUP} = 'IGNORE'; local $SIG{INT} = 'IGNORE'; local $SIG{QUIT} = 'IGNORE'; @@ -1996,14 +2008,19 @@ sub _op_usage { die "Can't update $column for svcnum". $self->svcnum if $rv == 0; - #$self->snapshot; #not necessary, we retain the old values - #create an object with the updated usage values - my $new = qsearchs('svc_acct', { 'svcnum' => $self->svcnum }); - #call exports - my $error = $new->replace($self); - if ( $error ) { - $dbh->rollback if $oldAutoCommit; - return "Error replacing: $error"; + if ( $conf->exists('radius-chillispot-max') + || scalar($conf->config('support_packages')) + ) + { + #$self->snapshot; #not necessary, we retain the old values + #create an object with the updated usage values + my $new = qsearchs('svc_acct', { 'svcnum' => $self->svcnum }); + #call exports + my $error = $new->replace($self); + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return "Error replacing: $error"; + } } #overlimit_action eq 'cancel' handling @@ -2193,15 +2210,17 @@ sub set_usage { die "Can't update usage for svcnum ". $self->svcnum if $rv == 0; } - - #$self->snapshot; #not necessary, we retain the old values - #create an object with the updated usage values - my $new = qsearchs('svc_acct', { 'svcnum' => $self->svcnum }); - local($FS::Record::nowarn_identical) = 1; - my $error = $new->replace($self); #call exports - if ( $error ) { - $dbh->rollback if $oldAutoCommit; - return "Error replacing: $error"; + + if ( $conf->exists('radius-chillispot-max') ) { + #$self->snapshot; #not necessary, we retain the old values + #create an object with the updated usage values + my $new = qsearchs('svc_acct', { 'svcnum' => $self->svcnum }); + local($FS::Record::nowarn_identical) = 1; + my $error = $new->replace($self); #call exports + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return "Error replacing: $error"; + } } if ( $reset ) { @@ -2278,7 +2297,7 @@ sub is_rechargable { =item seconds_since TIMESTAMP Returns the number of seconds this account has been online since TIMESTAMP, -according to the session monitor (see L). +according to the session monitor (see L). TIMESTAMP is specified as a UNIX timestamp; see L. Also see L and L for conversion functions.