X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main_note.pm;h=f637c356ff1fdc64a12b39b81dc6ca2d02527bb4;hb=d16d6fd5dea52c5b48abe6a3ccf44fd69645a875;hp=0a203a8f41424a13628d467e461f080db461e963;hpb=184f55e2a743f2305f70f5bc35961b2b92c946cb;p=freeside.git diff --git a/FS/FS/cust_main_note.pm b/FS/FS/cust_main_note.pm index 0a203a8f4..f637c356f 100644 --- a/FS/FS/cust_main_note.pm +++ b/FS/FS/cust_main_note.pm @@ -4,6 +4,8 @@ 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 @@ -38,6 +40,8 @@ primary key =item custnum +=item classnum + =item _date =item usernum @@ -106,15 +110,53 @@ sub check { 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_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;