From e22bd5c0481ddce1d35c630abb338d10fac48425 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 2 Sep 2021 10:39:56 +0200 Subject: [PATCH] Fix better format address for jp in romaji --- htdocs/core/lib/functions.lib.php | 10 ++++++++-- test/phpunit/FunctionsLibTest.php | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 4334aa9a12d..9b3156f485c 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -2191,13 +2191,19 @@ function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs if (!empty($object->state)) { $ret .= "\n".$object->state; } + } elseif (isset($object->country_code) && in_array($object->country_code, array('JP'))) { + // JP: In romaji, title firstname name\n address lines \n [state,] town zip \n country + // See https://www.sljfaq.org/afaq/addresses.html + $town = ($extralangcode ? $object->array_languages['town'][$extralangcode] : (empty($object->town) ? '' : $object->town)); + $ret .= ($ret ? $sep : '').($object->state ? $object->state.', ' : '').$town.($object->zip ? ' ' : '').$object->zip; } elseif (isset($object->country_code) && in_array($object->country_code, array('IT'))) { - // IT: tile firstname name\n address lines \n zip (Code Departement) \n country + // IT: title firstname name\n address lines \n zip town state_code \n country $ret .= ($ret ? $sep : '').$object->zip; $town = ($extralangcode ? $object->array_languages['town'][$extralangcode] : (empty($object->town) ? '' : $object->town)); $ret .= ($town ? (($object->zip ? ' ' : '').$town) : ''); $ret .= (empty($object->state_code) ? '' : (' '.$object->state_code)); - } else { // Other: title firstname name \n address lines \n zip town \n country + } else { + // Other: title firstname name \n address lines \n zip town[, state] \n country $town = ($extralangcode ? $object->array_languages['town'][$extralangcode] : (empty($object->town) ? '' : $object->town)); $ret .= !empty($object->zip) ? (($ret ? $sep : '').$object->zip) : ''; $ret .= ($town ? (($object->zip ? ' ' : ($ret ? $sep : '')).$town) : ''); diff --git a/test/phpunit/FunctionsLibTest.php b/test/phpunit/FunctionsLibTest.php index d7855c381d4..32b6cceb2e9 100644 --- a/test/phpunit/FunctionsLibTest.php +++ b/test/phpunit/FunctionsLibTest.php @@ -951,6 +951,10 @@ class FunctionsLibTest extends PHPUnit\Framework\TestCase $object->country_code='AU'; $address=dol_format_address($object); $this->assertEquals("21 jump street\nMyTown, MyState, 99999", $address); + + $object->country_code='JP'; + $address=dol_format_address($object); + $this->assertEquals("21 jump street\nMyState, MyTown 99999", $address); }