fix otaker upgrade for cust_attachment & cust_main_note, hopefully
authorivan <ivan>
Sun, 4 Apr 2010 23:18:23 +0000 (23:18 +0000)
committerivan <ivan>
Sun, 4 Apr 2010 23:18:23 +0000 (23:18 +0000)
FS/FS/cust_attachment.pm
FS/FS/cust_main_note.pm

index 8a39883..c5acab0 100644 (file)
@@ -128,7 +128,7 @@ sub check {
     $self->ut_numbern('attachnum')
     || $self->ut_number('custnum')
     || $self->ut_numbern('_date')
-    || $self->ut_alphan('otaker')
+    || $self->ut_textn('otaker')
     || $self->ut_text('filename')
     || $self->ut_text('mime_type')
     || $self->ut_numbern('disabled')
@@ -154,6 +154,28 @@ sub size {
   return length($self->body);
 }
 
+#false laziness w/otaker_Mixin & cust_main_note
+sub otaker {
+  my $self = shift;
+  if ( scalar(@_) ) { #set
+    my $otaker = shift;
+    my($l,$f) = (split(', ', $otaker));
+    my $access_user =  qsearchs('access_user', { 'username'=>$otaker }     )
+                    || qsearchs('access_user', { 'first'=>$f, 'last'=>$l } )
+      or croak "can't set otaker: $otaker not found!"; #confess?
+    $self->usernum( $access_user->usernum );
+    $otaker; #not sure return is used anywhere, but just in case
+  } else { #get
+    if ( $self->usernum ) {
+      $self->access_user->username;
+    } elsif ( length($self->get('otaker')) ) {
+      $self->get('otaker');
+    } else {
+      '';
+    }
+  }
+}
+
 # Used by FS::Upgrade to migrate to a new database.
 sub _upgrade_data {  # class method
   my ($class, %opts) = @_;
index 118ccd4..0798825 100644 (file)
@@ -114,6 +114,28 @@ sub check {
   $self->SUPER::check;
 }
 
+#false laziness w/otaker_Mixin & cust_attachment
+sub otaker {
+  my $self = shift;
+  if ( scalar(@_) ) { #set
+    my $otaker = shift;
+    my($l,$f) = (split(', ', $otaker));
+    my $access_user =  qsearchs('access_user', { 'username'=>$otaker }     )
+                    || qsearchs('access_user', { 'first'=>$f, 'last'=>$l } )
+      or croak "can't set otaker: $otaker not found!"; #confess?
+    $self->usernum( $access_user->usernum );
+    $otaker; #not sure return is used anywhere, but just in case
+  } else { #get
+    if ( $self->usernum ) {
+      $self->access_user->username;
+    } elsif ( length($self->get('otaker')) ) {
+      $self->get('otaker');
+    } else {
+      '';
+    }
+  }
+}
+
 # Used by FS::Upgrade to migrate to a new database.
 sub _upgrade_data {  # class method
   my ($class, %opts) = @_;