RT# 83450 - fixed rateplan export
[freeside.git] / FS / FS / part_export / radiator.pm
index 869c033..669e3d4 100644 (file)
@@ -3,6 +3,7 @@ package FS::part_export::radiator;
 use vars qw(@ISA %info $radusers);
 use Tie::IxHash;
 use FS::part_export::sqlradius;
+use FS::DBI;
 
 tie my %options, 'Tie::IxHash', %FS::part_export::sqlradius::options;
 
@@ -11,6 +12,8 @@ tie my %options, 'Tie::IxHash', %FS::part_export::sqlradius::options;
   'desc'     => 'Real-time export to RADIATOR',
   'options'  => \%options,
   'nodomain' => '',
+  'no_machine' => 1,
+  'default_svc_class' => 'Internet',
   'notes' => <<'END',
 Real-time export of the <b>radusers</b> table to any SQL database in
 <a href="http://www.open.com.au/radiator/">Radiator</a>-native format.
@@ -68,7 +71,7 @@ sub _radiator_hash {
   my( $self, $svc_acct ) = @_;
   my %hash = (
     'username'  => $self->export_username($svc_acct),
-    'pass_word' => $svc_acct->_password,
+    'pass_word' => $svc_acct->crypt_password,
     'fullname'  => $svc_acct->finger,
     map { my $method = "radius_$_"; $_ => $svc_acct->$method(); }
         qw( framed_filter_id framed_mtu framed_netmask framed_protocol
@@ -81,8 +84,8 @@ sub _radiator_hash {
 
   $hash{'servicename'} = ( $svc_acct->radius_groups )[0];
 
-  my $cust_pkg = $self->cust_svc->cust_pkg;
-  $hash{validto} = $cust_pkg->bill
+  my $cust_pkg = $svc_acct->cust_svc->cust_pkg;
+  $hash{'validto'} = $cust_pkg->bill
     if $cust_pkg && $cust_pkg->part_pkg->is_prepaid && $cust_pkg->bill;
 
   #some other random stuff, should probably be attributes or virtual fields
@@ -93,6 +96,8 @@ sub _radiator_hash {
     if $cust_pkg && $cust_pkg->setup;
   $hash{'validfrom'} = $cust_pkg->last_bill || $cust_pkg->setup
     if $cust_pkg &&  ( $cust_pkg->last_bill || $cust_pkg->setup );
+  $hash{'state'} = $cust_pkg->susp ? 1 : 0
+    if $cust_pkg;
 
   %hash;
 }
@@ -159,7 +164,7 @@ sub radiator_delete { #subroutine, not method
 sub radiator_connect {
   #my($datasrc, $username, $password) = @_;
   #DBI->connect($datasrc, $username, $password) or die $DBI::errstr;
-  DBI->connect(@_) or die $DBI::errstr;
+  FS::DBI->connect(@_) or die $FS::DBI::errstr;
 }
 
 1;