X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Flib%2FRT%2FMigrate%2FImporter.pm;fp=rt%2Flib%2FRT%2FMigrate%2FImporter.pm;h=c0faadecb93f98fbe57f7f0309dfde9893e59491;hp=7897434931becee8d21536a6c202ba906517532c;hb=de9d037528895f7151a9aead6724ce2df95f9586;hpb=b226bc6bd81f999176cdbfa53a799033ff0a0307 diff --git a/rt/lib/RT/Migrate/Importer.pm b/rt/lib/RT/Migrate/Importer.pm index 789743493..c0faadecb 100644 --- a/rt/lib/RT/Migrate/Importer.pm +++ b/rt/lib/RT/Migrate/Importer.pm @@ -2,7 +2,7 @@ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) @@ -65,17 +65,20 @@ sub new { sub Init { my $self = shift; my %args = ( - OriginalId => undef, - Progress => undef, - Statefile => undef, - DumpObjects => undef, - HandleError => undef, + OriginalId => undef, + Progress => undef, + Statefile => undef, + DumpObjects => undef, + HandleError => undef, + ExcludeOrganization => undef, @_, ); # Should we attempt to preserve record IDs as they are created? $self->{OriginalId} = $args{OriginalId}; + $self->{ExcludeOrganization} = $args{ExcludeOrganization}; + $self->{Progress} = $args{Progress}; $self->{HandleError} = sub { 0 }; @@ -179,6 +182,9 @@ sub Resolve { Field => $ref->{uri}, Value => $self->LookupObj($uid)->URI, ) if defined $ref->{uri}; + if (my $method = $ref->{method}) { + $obj->$method($self, $ref, $class, $id); + } } delete $self->{Pending}{$uid}; } @@ -291,6 +297,7 @@ sub Qualify { my ($string) = @_; return $string if $self->{Clone}; return $string if not defined $self->{Organization}; + return $string if $self->{ExcludeOrganization}; return $string if $self->{Organization} eq $RT::Organization; return $self->{Organization}.": $string"; } @@ -332,7 +339,7 @@ sub Create { # Load it back to get real values into the columns $obj = $class->new( RT->SystemUser ); $obj->Load( $id ); - $obj->PostInflate( $self ); + $obj->PostInflate( $self, $uid ); return $obj; } @@ -399,9 +406,13 @@ sub ReadStream { # If it's a ticket, we might need to create a # TicketCustomField for the previous ID if ($class eq "RT::Ticket" and $self->{OriginalId}) { + my $value = $self->{ExcludeOrganization} + ? $origid + : $self->Organization . ":$origid"; + my ($id, $msg) = $obj->AddCustomFieldValue( Field => $self->{OriginalId}, - Value => $self->Organization . ":$origid", + Value => $value, RecordTransaction => 0, ); warn "Failed to add custom field to $uid: $msg"