eliminate some false laziness in FS::Misc::send_email vs. msg_template/email.pm send_...
[freeside.git] / FS / FS / class_Common.pm
index 5ee8208..01048ec 100644 (file)
@@ -68,7 +68,7 @@ returns the error, otherwise returns false.
 
 =item check
 
 
 =item check
 
-Checks all fields to make sure this is a valid package classification.  If
+Checks all fields to make sure this is a valid classification.  If
 there is an error, returns the error, otherwise returns false.  Called by the
 insert and replace methods.
 
 there is an error, returns the error, otherwise returns false.  Called by the
 insert and replace methods.
 
@@ -122,14 +122,15 @@ sub _target_table {
 
 sub _target_column { 'classnum'; }
 
 
 sub _target_column { 'classnum'; }
 
-use vars qw( $_category_table );
+use vars qw( %_category_table );
 sub _category_table {
 sub _category_table {
-  return $_category_table if $_category_table;
   my $self = shift;
   my $self = shift;
-  $_category_table = $self->table;
-  $_category_table =~ s/class/category/ # s/_class$/_category/
-    or die "can't determine an automatic category table for $_category_table";
-  $_category_table;
+  return $_category_table{ ref $self } ||= do {
+    my $category_table = $self->table;
+    $category_table =~ s/class/category/ # s/_class$/_category/
+      or die "can't determine an automatic category table for $category_table";
+    $category_table;
+  }
 }
 
 =head1 BUGS
 }
 
 =head1 BUGS