fix: normalize telephone data for JSON

This commit is contained in:
mahdahar 2026-03-15 13:50:09 +07:00
parent 09a1c6715f
commit 008ca712ff

View File

@ -33,6 +33,7 @@ class RequestsController extends BaseController
$row['COLLECTIONDATE'] = date('Y-m-d H:i', strtotime($row['COLLECTIONDATE'])); $row['COLLECTIONDATE'] = date('Y-m-d H:i', strtotime($row['COLLECTIONDATE']));
$row['ODR_DDATE'] = date('Y-m-d H:i', strtotime($row['ODR_DDATE'])); $row['ODR_DDATE'] = date('Y-m-d H:i', strtotime($row['ODR_DDATE']));
$row['REQDATE'] = date('Y-m-d H:i', strtotime($row['REQDATE'])); $row['REQDATE'] = date('Y-m-d H:i', strtotime($row['REQDATE']));
$this->normalizeTelephoneFields($row);
} }
$data['data'] = $rows; $data['data'] = $rows;
return $this->response->setJSON($data); return $this->response->setJSON($data);
@ -135,6 +136,28 @@ class RequestsController extends BaseController
return $this->response->setJSON($data); return $this->response->setJSON($data);
} }
private function normalizeTelephoneFields(array &$row): void
{
foreach (['TELEPHON', 'TELEPHONE'] as $field) {
if (isset($row[$field]) && is_string($row[$field])) {
$row[$field] = $this->ensureUtf8($row[$field]);
}
}
}
private function ensureUtf8(string $value): string
{
if (mb_check_encoding($value, 'UTF-8')) {
return $value;
}
$encoding = mb_detect_encoding($value, ['UTF-8', 'CP1252', 'ISO-8859-1'], true);
return $encoding
? mb_convert_encoding($value, 'UTF-8', $encoding)
: mb_convert_encoding($value, 'UTF-8', 'CP1252');
}
public function setEngLanguage($accessnumber) public function setEngLanguage($accessnumber)
{ {
$userid = session('userid'); $userid = session('userid');