use strict;
use base qw( FS::otaker_Mixin FS::Record );
+use Carp;
use FS::Record qw( qsearch qsearchs );
+use FS::cust_note_class;
+use FS::Conf;
=head1 NAME
=item custnum
+=item classnum
+
=item _date
=item usernum
my $error =
$self->ut_numbern('notenum')
|| $self->ut_number('custnum')
+ || $self->ut_foreign_keyn('classnum', 'cust_note_class', 'classnum')
|| $self->ut_numbern('_date')
- || $self->ut_alphan('otaker')
+ || $self->ut_textn('otaker')
|| $self->ut_anything('comments')
+ || $self->ut_numbern('sticky')
;
return $error if $error;
+ if (!$self->classnum) {
+ my $conf = new FS::Conf;
+ return 'Note class is required'
+ if $conf->exists('cust_main_note-require_class');
+ }
+
$self->SUPER::check;
}
+=item cust_note_class
+
+Returns the customer note class, as an FS::cust_note_class object, or the empty
+string if there is no note class.
+
+=cut
+
+sub cust_note_class {
+ my $self = shift;
+ if ( $self->classnum ) {
+ qsearchs('cust_note_class', { 'classnum' => $self->classnum } );
+ } else {
+ return '';
+ }
+}
+
+=item classname
+
+Returns the customer note class name, or the empty string if there is no
+customer note class.
+
+=cut
+
+sub classname {
+ my $self = shift;
+ my $cust_note_class = $self->cust_note_class;
+ $cust_note_class ? $cust_note_class->classname : '';
+}
+
+
+#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) = @_;