agent-virtualize credit card surcharge percentage, RT#72961
[freeside.git] / FS / FS / phone_device.pm
index ba765e0..2afad91 100644 (file)
@@ -1,11 +1,9 @@
 package FS::phone_device;
+use base qw( FS::MAC_Mixin FS::Record );
 
 use strict;
-use base qw( FS::Record );
 use Scalar::Util qw( blessed );
-use FS::Record qw( dbh qsearchs ); # qsearch );
-use FS::part_device;
-use FS::svc_phone;
+use FS::Record qw( dbh ); # qsearch qsearchs dbh );
 
 =head1 NAME
 
@@ -92,12 +90,12 @@ sub insert {
   my $dbh = dbh;
 
   my $error = $self->SUPER::insert;
+  $error ||= $self->export('device_insert');
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
     return $error;
   }
 
-  $self->export('device_insert');
 
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
   '';
@@ -124,9 +122,8 @@ sub delete {
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
 
-  $self->export('device_delete');
 
-  my $error = $self->SUPER::delete;
+  my $error = $self->export('device_delete') || $self->SUPER::delete;
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
     return $error;
@@ -161,13 +158,13 @@ sub replace {
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
 
-  my $error = $new->SUPER::replace($old);
+  my $error = $new->SUPER::replace($old)
+              || $new->export('device_replace', $old);
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
     return $error;
   }
 
-  $new->export('device_replace', $old);
 
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
   '';
@@ -208,25 +205,11 @@ sub check {
 Returns the device type record (see L<FS::part_device>) associated with this
 customer device.
 
-=cut
-
-sub part_device {
-  my $self = shift;
-  qsearchs( 'part_device', { 'devicepart' => $self->devicepart } );
-}
-
 =item svc_phone
 
 Returns the phone number (see L<FS::svc_phone>) associated with this customer
 device.
 
-=cut
-
-sub svc_phone {
-  my $self = shift;
-  qsearchs( 'svc_phone', { 'svcnum' => $self->svcnum } );
-}
-
 =item export HOOK [ EXPORT_ARGS ]
 
 Runs the provided export hook (i.e. "device_insert") for this service.