adding export to read mailbox status information, RT#15987
[freeside.git] / FS / FS / part_export / domain_sql.pm
index 3dcb7a2..3010338 100644 (file)
@@ -25,13 +25,13 @@ tie my %options, 'Tie::IxHash',
   'primary_key'        => { label => 'Database primary key' },
 ;
 
-tie my %postfix_transport_map, 
+tie my %postfix_transport_map, 'Tie::IxHash', 
   'domain' => 'domain'
 ;
 my $postfix_transport_map = 
   join('\n', map "$_ $postfix_transport_map{$_}",
                  keys %postfix_transport_map      );
-tie my %postfix_transport_static,
+tie my %postfix_transport_static, 'Tie::IxHash',
   'transport' => 'virtual:',
 ;
 my $postfix_transport_static = 
@@ -74,8 +74,13 @@ sub _export_insert {
   my %schema = $self->_schema_map;
   my %static = $self->_static_map;
 
-  my %record = ( map { $_ => $static{$_}       } keys %static ),
-               ( map { $_ => $svc_domain->$_() } keys %schema );
+  my %record = ( ( map { $_ => $static{$_}       } keys %static ),
+                 ( map { my $method = $schema{$_};
+                      $_ => $svc_domain->$method();
+                      }
+                      keys %schema
+                )
+              );
 
   my $err_or_queue = 
     $self->domain_sql_queue(
@@ -94,6 +99,7 @@ sub _export_replace {
 
   my %schema = $self->_schema_map;
   my %static = $self->_static_map;
+  #my %map = (%schema, %static);
 
   my @primary_key = ();
   if ( $self->option('primary_key') =~ /,/ ) {
@@ -102,12 +108,18 @@ sub _export_replace {
       push @primary_key, $old->$keymap();
     }
   } else {
+    my %map = (%schema, %static);
     my $keymap = $map{$self->option('primary_key')};
     push @primary_key, $old->$keymap();
   }
 
-  my %record = ( map { $_ => $static{$_}       } keys %static ),
-               ( map { $_ => $svc_domain->$_() } keys %schema );
+  my %record = ( ( map { $_ => $static{$_}       } keys %static ),
+                 ( map { my $method = $schema{$_};
+                        $_ => $new->$method();
+                      }
+                      keys %schema
+                )
+              );
 
   my $err_or_queue = $self->domain_sql_queue(
     $new->svcnum,
@@ -125,6 +137,7 @@ sub _export_delete {
 
   my %schema = $self->_schema_map;
   my %static = $self->_static_map;
+  my %map = (%schema, %static);
 
   my %primary_key = ();
   if ( $self->option('primary_key') =~ /,/ ) {