X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Flib%2FRT%2FURI%2Ffreeside%2FInternal.pm;h=5656a51d8a18e4ba9dda621f8380dbaa694b93e1;hb=e010976ba33c00bb2b97d677f610e4b19571feaf;hp=6d3adc2ef06f69950ee86b086a156a7956a2552b;hpb=09aa4ca78df448f73e440a25a024e44eaf00c827;p=freeside.git diff --git a/rt/lib/RT/URI/freeside/Internal.pm b/rt/lib/RT/URI/freeside/Internal.pm index 6d3adc2ef..5656a51d8 100644 --- a/rt/lib/RT/URI/freeside/Internal.pm +++ b/rt/lib/RT/URI/freeside/Internal.pm @@ -33,11 +33,12 @@ no warnings qw(redefine); use FS; use FS::UID qw(dbh); use FS::CGI qw(popurl); -use FS::UI::Web::small_custview qw(small_custview); +use FS::UI::Web::small_custview; use FS::Conf; use FS::Record qw(qsearchs qsearch dbdef); use FS::cust_main; use FS::cust_svc; +use FS::payby; =head1 NAME @@ -142,29 +143,31 @@ sub _FreesideURILabelLong { } -sub AgentName { +# no need to have a separate wrapper method for every one of these things +sub CustomerInfo { my $self = shift; my $rec = $self->_FreesideGetRecord() or return; - my $agent = $rec->{'_object'}->agent or return; - return $agent->agentnum . ': ' . $agent->agent; -} - -sub CustomerClass { - my $self = shift; - my $rec = $self->_FreesideGetRecord() or return; - my $cust_class = $rec->{'_object'}->cust_class or return; - return $cust_class->classname; -} - -sub CustomerTags { - my $self = shift; - my $rec = $self->_FreesideGetRecord() or return; - my @part_tag = $rec->{'_object'}->part_tag; - return map { - { 'name' => $_->tagname, - 'desc' => $_->tagdesc, - 'color' => $_->tagcolor } - } @part_tag; + my $cust_main = $rec->{'_object'}; + my $agent = $cust_main->agent; + my $class = $cust_main->cust_class; + my $referral = qsearchs('part_referral', { refnum => $cust_main->refnum }); + my @part_tags = $cust_main->part_tag; + + return $self->{CustomerInfo} ||= { + $cust_main->hash, + + AgentName => ($agent ? ($agent->agentnum.': '.$agent->agent) : ''), + CustomerClass => ($class ? $class->classname : ''), + CustomerTags => [ + sort { $a->{'name'} <=> $b->{'name'} } + map { + { name => $_->tagname, desc => $_->tagdesc, color => $_->tagcolor } + } @part_tags + ], + Referral => ($referral ? $referral->referral : ''), + InvoiceEmail => $cust_main->invoicing_list_emailonly_scalar, + BillingType => FS::payby->longname($cust_main->payby), + } } 1;