This commit was manufactured by cvs2svn to create tag 'freeside_2_1_0'.
[freeside.git] / rt / lib / RT / Record.pm
index b2e1e71..bee9442 100755 (executable)
@@ -67,6 +67,7 @@ use strict;
 use warnings;
 
 use RT::Date;
+use RT::I18N;
 use RT::User;
 use RT::Attributes;
 use Encode qw();
@@ -803,6 +804,7 @@ sub _DecodeLOB {
     elsif ( $ContentEncoding && $ContentEncoding ne 'none' ) {
         return ( $self->loc( "Unknown ContentEncoding [_1]", $ContentEncoding ) );
     }
+
     if ( RT::I18N::IsTextualContentType($ContentType) ) {
        $Content = Encode::decode_utf8($Content) unless Encode::is_utf8($Content);
     }
@@ -1171,8 +1173,37 @@ sub DependsOn {
 
 # }}}
 
+# {{{ Customers
+
+=head2 Customers
+
+  This returns an RT::Links object which references all the customers that this object is a member of.
+
+=cut
+
+sub Customers {
+    my( $self, %opt ) = @_;
+    my $Debug = $opt{'Debug'};
+
+    unless ( $self->{'Customers'} ) {
 
+      $self->{'Customers'} = $self->MemberOf->Clone;
 
+      $self->{'Customers'}->Limit(
+                                   FIELD    => 'Target',
+                                   OPERATOR => 'STARTSWITH',
+                                   VALUE    => 'freeside://freeside/cust_main/',
+                                 );
+    }
+
+    warn "->Customers method called on $self; returning ".
+         ref($self->{'Customers'}). ' object'
+      if $Debug;
+
+    return $self->{'Customers'};
+}
+
+# }}}
 
 # {{{ sub _Links 
 
@@ -1531,6 +1562,7 @@ sub CustomFields {
     $cfs->LimitToGlobalOrObjectId(
         $self->_LookupId( $self->CustomFieldLookupType )
     );
+    $cfs->ApplySortOrder;
 
     return $cfs;
 }