flatten_to_form: auch department_1, department_2 und ustid berücksichtigen.
[kivitendo-erp.git] / SL / DB / Helper / TranslatedAttributes.pm
index b0b1c2e..2c3857c 100644 (file)
@@ -12,13 +12,16 @@ use Carp;
 sub translated_attribute {
   my ($self, $attribute, $language_id, $verbatim) = @_;
 
-  $language_id      = _check($self, $attribute, $language_id, $verbatim);
-  my $translation   = _find_translation($self, $attribute, $language_id, 0);
-  $translation    ||= _find_translation($self, $attribute, undef,        0) unless $verbatim;
+  $language_id        = _check($self, $attribute, $language_id, $verbatim);
+  my $translation_obj = _find_translation($self, $attribute, $language_id, 0);
+  my $translation     = $translation_obj ? $translation_obj->translation : '';
 
-  return $translation ? $translation->translation
-       : $verbatim    ? undef
-       :                $self->$attribute;
+  return $translation if $verbatim || $translation;
+
+  $translation_obj = _find_translation($self, $attribute, undef, 0);
+  $translation     = $translation_obj ? $translation_obj->translation : '';
+
+  return $translation || $self->$attribute;
 }
 
 sub save_attribute_translation {
@@ -35,7 +38,7 @@ sub _check {
   croak "Invalid attribute '${attribute}'" unless $self->can($attribute);
   croak "Object has not been saved yet"    unless $self->id || $verbatim;
 
-  return ref($language_id) eq 'SL::DB::Language' ? $language_id->id : $language_id;
+  return (ref($language_id) eq 'SL::DB::Language' ? $language_id->id : $language_id) || undef;
 }
 
 sub _find_translation {