From f4cff6248e3340d2321e9d761fec9ea12b28f781 Mon Sep 17 00:00:00 2001 From: ivan Date: Sun, 4 Apr 2010 23:18:23 +0000 Subject: [PATCH] fix otaker upgrade for cust_attachment & cust_main_note, hopefully --- FS/FS/cust_attachment.pm | 24 +++++++++++++++++++++++- FS/FS/cust_main_note.pm | 22 ++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/FS/FS/cust_attachment.pm b/FS/FS/cust_attachment.pm index 8a3988379..c5acab0e7 100644 --- a/FS/FS/cust_attachment.pm +++ b/FS/FS/cust_attachment.pm @@ -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) = @_; diff --git a/FS/FS/cust_main_note.pm b/FS/FS/cust_main_note.pm index 118ccd4b2..0798825ac 100644 --- a/FS/FS/cust_main_note.pm +++ b/FS/FS/cust_main_note.pm @@ -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) = @_; -- 2.11.0