X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg.pm;h=e788269f74e4eea7b0b62cd8913586d24ef0043c;hb=fd67c768f2f59f7883197889ef02bb3e1fb2b0c7;hp=efb1b59ab271d233e714658b9051fc5c626a79d0;hpb=546fd20829df7ab53dd60b6f7589058789acd77f;p=freeside.git diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm index efb1b59ab..e788269f7 100644 --- a/FS/FS/part_pkg.pm +++ b/FS/FS/part_pkg.pm @@ -1,7 +1,8 @@ package FS::part_pkg; +use base qw( FS::m2m_Common FS::o2m_Common FS::option_Common ); use strict; -use vars qw( @ISA %plans $DEBUG $setup_hack $skip_pkg_svc_hack ); +use vars qw( %plans $DEBUG $setup_hack $skip_pkg_svc_hack ); use Carp qw(carp cluck confess); use Scalar::Util qw( blessed ); use Time::Local qw( timelocal_nocheck ); @@ -25,7 +26,6 @@ use FS::part_pkg_discount; use FS::part_pkg_usage; use FS::part_pkg_vendor; -@ISA = qw( FS::m2m_Common FS::option_Common ); $DEBUG = 0; $setup_hack = 0; $skip_pkg_svc_hack = 0; @@ -719,19 +719,32 @@ sub propagate { =item pkg_locale LOCALE Returns a customer-viewable string representing this package for the given -locale, from the part_pkg_msgcat table. If no localized string is found, -returns the base pkg field. +locale, from the part_pkg_msgcat table. If the given locale is empty or no +localized string is found, returns the base pkg field. =cut sub pkg_locale { my( $self, $locale ) = @_; - my $part_pkg_msgcat = qsearchs( 'part_pkg_msgcat', { pkgpart=>$self->pkgpart, - locale =>$locale }) - or return $self->pkg; + return $self->pkg unless $locale; + my $part_pkg_msgcat = $self->part_pkg_msgcat($locale) or return $self->pkg; $part_pkg_msgcat->pkg; } +=item part_pkg_msgcat LOCALE + +Like pkg_locale, but returns the FS::part_pkg_msgcat object itself. + +=cut + +sub part_pkg_msgcat { + my( $self, $locale ) = @_; + qsearchs( 'part_pkg_msgcat', { + pkgpart => $self->pkgpart, + locale => $locale, + }); +} + =item pkg_comment [ OPTION => VALUE... ] Returns an (internal) string representing this package. Currently,