X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Flib%2FRT%2FURI%2Ffreeside.pm;h=6194fd0cb338b5821d2b287ecaa447260f2b8739;hb=7b125e587a4d1ee0aca692e23ea7897f671855ae;hp=ff1d38d21f317b23812fe599b6ff5a8ff7690fe2;hpb=c648976f0b7975f2328ebd7ba8c711fad0ca4195;p=freeside.git diff --git a/rt/lib/RT/URI/freeside.pm b/rt/lib/RT/URI/freeside.pm index ff1d38d21..6194fd0cb 100644 --- a/rt/lib/RT/URI/freeside.pm +++ b/rt/lib/RT/URI/freeside.pm @@ -26,10 +26,10 @@ # END LICENSE BLOCK package RT::URI::freeside; -use RT::URI::base; +use base qw( RT::URI::base ); use strict; -use vars qw(@ISA $IntegrationType $URL); -@ISA = qw/RT::URI::base/; +use vars qw( $IntegrationType $URL ); +use Carp qw( cluck ); =head1 NAME @@ -38,8 +38,8 @@ RT::URI::freeside =head1 DESCRIPTION -URI handler for freeside URIs. See http://www.sisd.com/freeside/ for -more information on freeside. +URI handler for Freeside URIs. See http://www.freeside.biz/ for more +information on Freeside. =head1 Public subroutines @@ -132,7 +132,7 @@ sub _FreesideURILabel { my $self = shift; - $RT::Logger->debug("Called _FreesideURILabel()"); + #$RT::Logger->debug("Called _FreesideURILabel()"); return unless (exists($self->{'fstable'}) and exists($self->{'fspkey'})); @@ -140,17 +140,21 @@ sub _FreesideURILabel { my $label; my ($table, $pkey) = ($self->{'fstable'}, $self->{'fspkey'}); - if ($table ne 'cust_main') { - warn "FS::${table} not currently supported"; - return; - } + #if ($table ne 'cust_main') { + # warn "FS::${table} not currently supported"; + # return; + #} my $rec = $self->_FreesideGetRecord(); - if (ref($rec) eq 'HASH' and $table eq 'cust_main') { + if (ref($rec) eq 'HASH' && $table eq 'cust_main') { my $name = $rec->{'last'} . ', ' . $rec->{'first'}; $name = $rec->{'company'} . " ($name)" if $rec->{'company'}; $label = "$pkey: $name"; + } elsif ( $table eq 'cust_svc' && ref($rec) && $rec->{'_object'} ) { + #Internal only + my($l,$v) = $rec->{'_object'}->label; + $label = "$l: $v"; } else { $label = "$pkey: $table"; } @@ -192,10 +196,18 @@ sub ParseURI { my ($table, $pkey); my $uriprefix = $self->_FreesideURIPrefix; - if ($uri =~ /^$uriprefix\/(\w+)\/(\d+)$/) { + if ($uri =~ /^$uriprefix\/(\w+)\/(\d*)$/) { + $table = $1; $pkey = $2; + + unless ( $pkey ) { + cluck "bad URL $uri"; + return(undef); + } + $self->{'scheme'} = $self->Scheme; + } else { return(undef); }