communigate provisioning phase 2: Domain:Account Defaults:Settings: RulesAllowed...
[freeside.git] / FS / FS / cust_main_note.pm
index 4732d12..0a203a8 100644 (file)
@@ -1,11 +1,10 @@
 package FS::cust_main_note;
 
 use strict;
-use vars qw( @ISA );
+use base qw( FS::otaker_Mixin FS::Record );
+use Carp;
 use FS::Record qw( qsearch qsearchs );
 
-@ISA = qw(FS::Record);
-
 =head1 NAME
 
 FS::cust_main_note - Object methods for cust_main_note records
@@ -33,16 +32,17 @@ currently supported:
 
 =over 4
 
-=item notenum - primary key
+=item notenum
 
-=item custnum - 
+primary key
 
-=item _date - 
+=item custnum
 
-=item otaker - 
+=item _date
 
-=item comments - 
+=item usernum
 
+=item comments
 
 =back
 
@@ -107,7 +107,7 @@ sub check {
     $self->ut_numbern('notenum')
     || $self->ut_number('custnum')
     || $self->ut_numbern('_date')
-    || $self->ut_text('otaker')
+    || $self->ut_textn('otaker')
     || $self->ut_anything('comments')
   ;
   return $error if $error;
@@ -115,6 +115,34 @@ 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) = @_;
+  $class->_upgrade_otaker(%opts);
+}
+
 =back
 
 =head1 BUGS