freeside-upgrade: add'l documentation & turn on DBIx::DBSchema::Index debugging too
[freeside.git] / FS / bin / freeside-sqlradius-reset
index 95b7ef2..a2da745 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -Tw
+#!/usr/bin/perl -w
 
 use strict;
 use FS::UID qw(adminsuidsetup);
@@ -13,8 +13,8 @@ adminsuidsetup $user;
 #my $machine = shift or die &usage;
 
 my @exports = ();
-if ( @_ ) {
-  foreach my $exportnum ( @_ ) {
+if ( @ARGV ) {
+  foreach my $exportnum ( @ARGV ) {
     foreach my $exporttype (qw( sqlradius sqlradius_withdomain )) {
     push @exports, qsearch('part_export', { exportnum  => $exportnum,
                                             exporttype => $exporttype, } );
@@ -39,6 +39,7 @@ foreach my $export ( @exports ) {
 foreach my $export ( @exports ) {
 
   #my @svcparts = map { $_->svcpart } $export->export_svc;
+  my $overlimit_groups = $export->option('overlimit_groups');
 
   my @svc_acct =
     map { qsearchs('svc_acct', { 'svcnum' => $_->svcnum } ) }
@@ -48,6 +49,15 @@ foreach my $export ( @exports ) {
 
   foreach my $svc_acct ( @svc_acct ) {
 
+    $svc_acct->check; #set any fixed usergroup so it'll export even if all
+                      #svc_acct records don't have the group yet
+
+    if ($overlimit_groups && $svc_acct->overlimit) {
+      $svc_acct->usergroup( &{ $svc_acct->_fieldhandlers->{'usergroup'} }
+                            ($svc_acct, $overlimit_groups)
+                          );
+    }
+
     #false laziness with FS::svc_acct::insert (like it matters)
     my $error = $export->export_insert($svc_acct);
     die $error if $error;