ignore problams calling ->overlimit during sqlradius-reset, wtf?! RT#5868
authorivan <ivan>
Tue, 4 Aug 2009 22:05:00 +0000 (22:05 +0000)
committerivan <ivan>
Tue, 4 Aug 2009 22:05:00 +0000 (22:05 +0000)
FS/FS/svc_Common.pm
FS/bin/freeside-sqlradius-reset

index f8a8581..1d200b0 100644 (file)
@@ -1,8 +1,9 @@
 package FS::svc_Common;
 
 use strict;
-use vars qw( @ISA $noexport_hack $DEBUG $me );
-use Carp qw( cluck carp croak ); #specify cluck have to specify them all..
+use vars qw( @ISA $noexport_hack $DEBUG $me
+             $overlimit_missing_cust_svc_nonfatal_kludge );
+use Carp qw( cluck carp croak confess ); #specify cluck have to specify them all
 use FS::Record qw( qsearch qsearchs fields dbh );
 use FS::cust_main_Mixin;
 use FS::cust_svc;
@@ -17,6 +18,8 @@ use FS::inventory_class;
 $me = '[FS::svc_Common]';
 $DEBUG = 0;
 
+$overlimit_missing_cust_svc_nonfatal_kludge = 0;
+
 =head1 NAME
 
 FS::svc_Common - Object method for all svc_ records
@@ -755,7 +758,19 @@ Sets or retrieves overlimit date.
 
 sub overlimit {
   my $self = shift;
-  $self->cust_svc->overlimit(@_);
+  #$self->cust_svc->overlimit(@_);
+  my $cust_svc = $self->cust_svc;
+  unless ( $cust_svc ) { #wtf?
+    my $error = "$me overlimit: missing cust_svc record for svc_acct svcnum ".
+                $self->svcnum;
+    if ( $overlimit_missing_cust_svc_nonfatal_kludge ) {
+      cluck "$error; continuing anyway as requested";
+      return '';
+    } else {
+      confess $error;
+    }
+  }
+  $cust_svc->overlimit(@_);
 }
 
 =item cancel
index 94fa68a..b97c9fd 100755 (executable)
@@ -42,6 +42,10 @@ unless ( $opt_n ) {
   }
 }
 
+use FS::svc_Common;
+$FS::svc_Common::overlimit_missing_cust_svc_nonfatal_kludge = 1;
+$FS::svc_Common::overlimit_missing_cust_svc_nonfatal_kludge = 1;
+
 foreach my $export ( @exports ) {
 
   #my @svcparts = map { $_->svcpart } $export->export_svc;