RT# 76181 Invoice date format can set locale from Freeside conf
authorMitch Jackson <mitch@freeside.biz>
Wed, 30 Jan 2019 12:06:01 +0000 (07:06 -0500)
committerMitch Jackson <mitch@freeside.biz>
Wed, 30 Jan 2019 12:06:01 +0000 (07:06 -0500)
Invoice date formatting chooses localization from
* invoice customer record $cust_main->locale
* or FS::Conf 'locale'
* or fallback en_US

FS/FS/cust_main_Mixin.pm

index 6a2e905..c36b79a 100644 (file)
@@ -660,13 +660,13 @@ sub time2str_local {
 
   $self->{_date_format} ||= {};
   if (!exists($self->{_dh})) {
-    my $cust_main = $self->cust_main;
-    my $locale = $cust_main->locale  if $cust_main;
-    $locale ||= 'en_US';
+    my $locale = $self->cust_main->locale if $self->cust_main;
+    $locale ||= FS::Conf->new->config('locale') || 'en_US';
+
     my %info = FS::Locales->locale_info($locale);
-    my $dh = eval { Date::Language->new($info{'name'}) } ||
-             Date::Language->new(); # fall back to English
-    $self->{_dh} = $dh;
+
+    $self->{_dh} = eval { Date::Language->new($info{'name'}) }
+      || Date::Language->new(); # fall back to English
   }
 
   if ($format eq 'short') {