# 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
my $self = shift;
- $RT::Logger->debug("Called _FreesideURILabel()");
+ #$RT::Logger->debug("Called _FreesideURILabel()");
return unless (exists($self->{'fstable'}) and
exists($self->{'fspkey'}));
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";
}
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);
}